From 7f9ac6d533f41ef6cb61bc32dd5534e75636680c Mon Sep 17 00:00:00 2001 From: tobinio Date: Mon, 27 Oct 2025 13:52:08 +0100 Subject: [PATCH] clear version setting on group change --- app/composables/useFilterItem.ts | 17 ++++++++++++++--- app/composables/useVersionRange.ts | 4 +--- app/pages/charts.vue | 11 ++++++++--- 3 files changed, 23 insertions(+), 9 deletions(-) diff --git a/app/composables/useFilterItem.ts b/app/composables/useFilterItem.ts index e816f36..7a4348f 100644 --- a/app/composables/useFilterItem.ts +++ b/app/composables/useFilterItem.ts @@ -1,4 +1,4 @@ -export function useFilterItem( +export function useFilterNullableItem( key: string, defaultValue: string | undefined | Ref, ) { @@ -8,11 +8,11 @@ export function useFilterItem( const defaultValueRef = toRef(defaultValue); const item = ref( - (route.query[key] ? route.query[key] : defaultValueRef.value) as string, + (route.query[key] ? route.query[key] as string : defaultValueRef.value), ); watch(defaultValueRef, () => { - item.value = defaultValueRef.value as string; + item.value = defaultValueRef.value; }); watch(item, async () => { @@ -26,3 +26,14 @@ export function useFilterItem( return item; } + +export function useFilterItem( + key: string, + defaultValue: string | undefined | Ref, +) { + const item = useFilterNullableItem(key, defaultValue); + return computed({ + get: () => item.value as string, + set: (value) => (item.value = value), + }); +} diff --git a/app/composables/useVersionRange.ts b/app/composables/useVersionRange.ts index ee880b5..39f5d62 100644 --- a/app/composables/useVersionRange.ts +++ b/app/composables/useVersionRange.ts @@ -1,7 +1,7 @@ import { useGameVersions } from "~/composables/useGameVersions"; export async function useVersionRange( - versionGroup: Ref, + versionGroup: Ref, versionTo: Ref, versionFrom: Ref, ) { @@ -13,7 +13,6 @@ export async function useVersionRange( } const index = versionNames.value.indexOf(versionFrom.value); - return versionNames.value.slice(index, versionNames.value.length); }); @@ -23,7 +22,6 @@ export async function useVersionRange( } const index = versionNames.value.indexOf(versionTo.value); - return versionNames.value.slice(0, index + 1); }); diff --git a/app/pages/charts.vue b/app/pages/charts.vue index e902812..ce75f33 100644 --- a/app/pages/charts.vue +++ b/app/pages/charts.vue @@ -28,14 +28,19 @@ const exclusive = useFilterItem("exclusive", "yes"); const exclusiveBool = computed(() => exclusive.value === "yes"); - const versionFrom = useFilterItem("version_from", undefined); - const versionTo = useFilterItem("version_to", undefined); + const versionFrom = useFilterNullableItem("version_from", undefined); + const versionTo = useFilterNullableItem("version_to", undefined); const { to, from } = await useVersionRange( versionGroup, versionTo, versionFrom, ); + watch([versionGroup], () => { + versionFrom.value = undefined; + versionTo.value = undefined; + }); + const gameVersions = await useGameVersions(versionGroup); const defaultVersion = computed(() => gameVersions.value[0] as string); const version = useFilterItem("version", defaultVersion); @@ -170,7 +175,7 @@ v-if=" ((isProjectStats && time != 'current') || !isProjectStats) && - projectType != 'revenue' + !isRevenueStats " v-model="aggregate" :options="['yes', 'no']" -- 2.51.2