diff --git a/next-ui/src/composables/useRouteQuerySchema.ts b/next-ui/src/composables/useRouteQuerySchema.ts index 3884663a..0fd533f6 100644 --- a/next-ui/src/composables/useRouteQuerySchema.ts +++ b/next-ui/src/composables/useRouteQuerySchema.ts @@ -36,6 +36,6 @@ export function useRouteQuerySchema(queryName: string }) return { - data: data as v.InferOutput, + data: data as Ref>, } } diff --git a/next-ui/src/functions/filter.ts b/next-ui/src/functions/filter.ts index 70906565..2b83902d 100644 --- a/next-ui/src/functions/filter.ts +++ b/next-ui/src/functions/filter.ts @@ -2,16 +2,16 @@ import type { SchemaFilterSeriesStatus } from '@/types/filter' import type { InferOutput } from 'valibot' export function schemaFilterSeriesStatusToConditions( - filter: MaybeRefOrGetter>, + filter: InferOutput, ) { - const list = toValue(filter).v.map((it) => ({ + const list = filter.v.map((it) => ({ seriesStatus: { operator: it.i === 'e' ? 'isNot' : 'is', value: it.v, }, })) - if (toValue(filter).m === 'allOf') + if (filter.m === 'allOf') return { allOf: list, } diff --git a/next-ui/src/pages/libraries/[id]/series.vue b/next-ui/src/pages/libraries/[id]/series.vue index ae3b1038..18232e73 100644 --- a/next-ui/src/pages/libraries/[id]/series.vue +++ b/next-ui/src/pages/libraries/[id]/series.vue @@ -114,7 +114,7 @@ import { useSelectionStore } from '@/stores/selection' import { useDisplay } from 'vuetify' import { schemaFilterSeriesStatusToConditions } from '@/functions/filter' import * as v from 'valibot' -import { SchemaFilterSeriesStatus } from '@/types/filter' +import { SchemaFilterSeriesStatus, SchemaSeriesStatus } from '@/types/filter' import { useRouteQuerySchema } from '@/composables/useRouteQuerySchema' const route = useRoute('/libraries/[id]/series') @@ -142,7 +142,7 @@ const { data: filter } = useRouteQuerySchema('status', SchemaFilterSeriesStatus) const conds = computed(() => ({ allOf: [ librariesCondition.value as components['schemas']['AnyOfSeries'], - schemaFilterSeriesStatusToConditions(filter), + schemaFilterSeriesStatusToConditions(filter.value), ], })) @@ -164,8 +164,8 @@ watch(series, (newSeries) => { const filterStatusItems: { title: string - value: v.InferOutput - valueExclude?: v.InferOutput + value: v.InferOutput + valueExclude?: v.InferOutput }[] = [ { title: 'Ended', value: { i: 'i', v: 'ENDED' }, valueExclude: { i: 'e', v: 'ENDED' } }, { title: 'Ongoing', value: { i: 'i', v: 'ONGOING' }, valueExclude: { i: 'e', v: 'ONGOING' } }, diff --git a/next-ui/src/types/filter.ts b/next-ui/src/types/filter.ts index 9ac305e4..05a0b99b 100644 --- a/next-ui/src/types/filter.ts +++ b/next-ui/src/types/filter.ts @@ -8,7 +8,7 @@ export const SchemaAnyAll = v.object({ const SchemaIncludeExclude = v.object({ i: v.optional(v.picklist(['i', 'e'])) }) -const SchemaSeriesStatus = v.object({ +export const SchemaSeriesStatus = v.object({ ...SchemaIncludeExclude.entries, v: v.optional(v.picklist(['ENDED', 'ONGOING', 'ABANDONED', 'HIATUS'])), })