From 7d38564107d816627f50eb31a3e8454b1b5e01e3 Mon Sep 17 00:00:00 2001 From: legonzaur Date: Tue, 20 Jun 2023 20:46:14 +0200 Subject: [PATCH] cache into map --- .eslintrc.js | 4 +- src/components/HelloWorld.vue | 65 ------- src/components/PlayerChart.vue | 16 +- src/components/PlayerList.vue | 54 +++--- src/components/WeaponChart.vue | 27 +-- src/main.ts | 19 +- src/stores/kill.ts | 322 ++++++++++++++------------------- src/views/AboutView.vue | 5 - src/views/PlayerView.vue | 44 ++--- src/views/ServerView.vue | 4 +- 10 files changed, 216 insertions(+), 344 deletions(-) delete mode 100644 src/components/HelloWorld.vue delete mode 100644 src/views/AboutView.vue diff --git a/.eslintrc.js b/.eslintrc.js index f2b1bdb..cc35b25 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -14,8 +14,8 @@ module.exports = { rules: { 'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off', 'no-debugger': process.env.NODE_ENV === 'production' ? 'warn' : 'off', - indent: 'off', - '@typescript-eslint/indent': ['error', 2] + '@typescript-eslint/indent': ['error', 2], + camelcase: 0 } } diff --git a/src/components/HelloWorld.vue b/src/components/HelloWorld.vue deleted file mode 100644 index 69e803a..0000000 --- a/src/components/HelloWorld.vue +++ /dev/null @@ -1,65 +0,0 @@ - - - - - - diff --git a/src/components/PlayerChart.vue b/src/components/PlayerChart.vue index 1523ee3..34f6e3b 100644 --- a/src/components/PlayerChart.vue +++ b/src/components/PlayerChart.vue @@ -19,7 +19,7 @@ import { } from 'chart.js' import annotationPlugin, { AnnotationPluginOptions } from 'chartjs-plugin-annotation' import dataLabel from 'chartjs-plugin-datalabels' -import { useKillStore, Player, Filters } from '@/stores/kill' +import { useKillStore, Player, Filter } from '@/stores/kill' import { Scatter } from 'vue-chartjs' import { defineComponent, PropType, Ref, toRaw, triggerRef, unref } from 'vue' @@ -33,7 +33,7 @@ ChartJS.register(LinearScale, PointElement, LineElement, Tooltip, Legend, annota export default defineComponent({ name: 'PlayerChart', props: { - filters: Object as PropType, + filters: Object as PropType, playerHighlighted: String }, data: () => { @@ -53,14 +53,17 @@ export default defineComponent({ computed: { progress () { if (this.filters) { - const { player: _, ...withoutPlayer } = this.filters - return this.store.getPlayerList(withoutPlayer)?.value.progress + const filter = new Filter(this.filters) + delete filter.player + return this.store.getList('players', filter)?.value.progress } return 0 }, playerList (): (Player & {id:string})[] { - const data = this.store.getPlayerList(this.filters || {})?.value.data - if (!data) return Object.entries(this.store.fetchPlayers(this.filters || {}).value.data).map(e => ({ id: e[0], ...toRaw(e[1].value) })) + const filter = new Filter(this.filters) + delete filter.player + const data = unref(this.store.getList('players', filter))?.data + if (!data) return Object.entries(this.store.fetch('players', filter).value.data).map(e => ({ id: e[0], ...toRaw(e[1].value) })) const cut = Object.entries(data).map(e => ({ id: e[0], ...toRaw(e[1].value) })) cut.sort((a, b) => { return b.kills - a.kills @@ -140,7 +143,6 @@ export default defineComponent({ }, onClick: (e: ChartEvent, element: any) => { this.$emit('highlightPlayer', element.length > 0 ? this.playerList[element[0].index].id : undefined) - if (this.store.getPlayerList(this.filters || {}) !== undefined) triggerRef(this.store.getPlayerList(this.filters || {}) as unknown as Ref) }, onHover: (e: any, element: any) => { if (!e.native.target) return diff --git a/src/components/PlayerList.vue b/src/components/PlayerList.vue index 1e5bb84..0671865 100644 --- a/src/components/PlayerList.vue +++ b/src/components/PlayerList.vue @@ -28,15 +28,16 @@