diff --git a/src/@types/reactivity.d.ts b/src/@types/reactivity.d.ts new file mode 100644 index 0000000..e412f81 --- /dev/null +++ b/src/@types/reactivity.d.ts @@ -0,0 +1,7 @@ +import { Ref } from '@vue/reactivity' + +declare module '@vue/reactivity' { + export interface Ref extends Ref { + _rawValue: T + } +} diff --git a/src/App.vue b/src/App.vue index fe5a487..ff5c4bb 100644 --- a/src/App.vue +++ b/src/App.vue @@ -16,16 +16,11 @@ diff --git a/src/components/List/PlayerEntry.vue b/src/components/List/PlayerEntry.vue new file mode 100644 index 0000000..58f622e --- /dev/null +++ b/src/components/List/PlayerEntry.vue @@ -0,0 +1,23 @@ + + + + + diff --git a/src/components/List/VirtualList.vue b/src/components/List/VirtualList.vue new file mode 100644 index 0000000..ac09a29 --- /dev/null +++ b/src/components/List/VirtualList.vue @@ -0,0 +1,100 @@ + + + + + diff --git a/src/components/PlayerChart.vue b/src/components/PlayerChart.vue index 95568e8..bbb7164 100644 --- a/src/components/PlayerChart.vue +++ b/src/components/PlayerChart.vue @@ -22,7 +22,7 @@ import dataLabel from 'chartjs-plugin-datalabels' import { useKillStore, Player, Filters } from '@/stores/kill' import { Scatter } from 'vue-chartjs' -import { defineComponent, PropType, toRaw, unref } from 'vue' +import { defineComponent, PropType, Ref, toRaw, triggerRef, unref } from 'vue' import { ChartEvent } from 'chart.js/dist/core/core.plugins' import { _DeepPartialObject } from 'chart.js/dist/types/utils' @@ -74,7 +74,6 @@ export default defineComponent({ } return colors }, - chart () { const playerIndex = this.playerList.findIndex(e => e.id === this.$props.playerHighlighted) const defaultColor = this.colors.cyan @@ -132,6 +131,7 @@ 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 @@ -210,6 +210,11 @@ export default defineComponent({ } } } + /* methods: { + refreshChart () { + if (this.store.getPlayerList(this.filters || {}) !== undefined) triggerRef(this.store.getPlayerList(this.filters || {}) as unknown as Ref) + } + } */ }) @@ -217,7 +222,14 @@ export default defineComponent({ canvas { background: var(--accent); } - +.playerChart{ + position:relative; +} +#refreshChart{ + position:absolute; + top: 0; + left:0; +} @media only screen and (max-width: 922px) { canvas { display: none !important diff --git a/src/components/PlayerList.vue b/src/components/PlayerList.vue index d1fa48d..9e1ba3e 100644 --- a/src/components/PlayerList.vue +++ b/src/components/PlayerList.vue @@ -7,13 +7,14 @@ K D K/D - max distance + max + distance average distance -
+
- +} + diff --git a/src/components/WeaponChart.vue b/src/components/WeaponChart.vue index 9b9ff9f..c4a2cf2 100644 --- a/src/components/WeaponChart.vue +++ b/src/components/WeaponChart.vue @@ -9,7 +9,7 @@ import { Chart as ChartJS, ArcElement, Tooltip, Legend } from 'chart.js' import dataLabel from 'chartjs-plugin-datalabels' import { Weapon, Filters, useKillStore } from '@/stores/kill' import { Doughnut } from 'vue-chartjs' -import { defineComponent, PropType, Ref, unref } from 'vue' +import { defineComponent, PropType, Ref } from 'vue' import weapons from '../stores/weapons.json' ChartJS.register(ArcElement, Tooltip, Legend, dataLabel) diff --git a/src/main.ts b/src/main.ts index f832305..1f85e39 100644 --- a/src/main.ts +++ b/src/main.ts @@ -23,8 +23,10 @@ const websocketData = { host: 1 } +// dev stuff + const store = useKillStore() -setInterval(() => { +function registerWebSocketKill () { const allPlayerArrays = store.$state.players.filter((e) => { return ( (!e.value.filter.server || @@ -106,4 +108,4 @@ setInterval(() => { unref(e.value.data[websocketData.cause_of_death]).kills++ unref(e.value.data[websocketData.cause_of_death]).max_distance = Math.max(websocketData.distance, unref(e.value.data[websocketData.cause_of_death]).max_distance) }) -}, 100) +} diff --git a/src/views/PlayerView.vue b/src/views/PlayerView.vue index 25d21f1..258dc93 100644 --- a/src/views/PlayerView.vue +++ b/src/views/PlayerView.vue @@ -1,16 +1,5 @@