diff --git a/src/composables/useRouteFilters.ts b/src/composables/useRouteFilters.ts index 19b3995553..5d9bb891a5 100644 --- a/src/composables/useRouteFilters.ts +++ b/src/composables/useRouteFilters.ts @@ -1,16 +1,15 @@ import {computed, ref, watch, type Ref} from 'vue' import {useRouter, type RouteLocationNormalized, type RouteLocationRaw} from 'vue-router' -import cloneDeep from 'lodash.clonedeep' import equal from 'fast-deep-equal/es6' export type Filters = Record export function useRouteFilters( - route: Ref, - getDefaultFilters: (route: RouteLocationNormalized) => CurrentFilters, - routeToFilters: (route: RouteLocationNormalized) => CurrentFilters, - filtersToRoute: (filters: CurrentFilters) => RouteLocationRaw, - ) { + route: Ref, + getDefaultFilters: (route: RouteLocationNormalized) => CurrentFilters, + routeToFilters: (route: RouteLocationNormalized) => CurrentFilters, + filtersToRoute: (filters: CurrentFilters) => RouteLocationRaw, +) { const router = useRouter() const filters = ref(routeToFilters(route.value)) @@ -22,22 +21,22 @@ export function useRouteFilters( (route && oldRoute && typeof route.name !== 'undefined' && typeof oldRoute.name !== 'undefined' && route.name !== oldRoute.name) || routeFromFiltersFullPath.value === route.fullPath ) { - return - } - - filters.value = routeToFilters(route) - }) + return + } - watch( - filters, - async () => { - if (routeFromFiltersFullPath.value !== route.value.fullPath) { - await router.push(routeFromFiltersFullPath.value) - } - }, - // only apply new route after all filters have changed in component cycle - {flush: 'post'}, - ) + filters.value = routeToFilters(route) + }) + + watch( + filters, + async () => { + if (routeFromFiltersFullPath.value !== route.value.fullPath) { + await router.push(routeFromFiltersFullPath.value) + } + }, + // only apply new route after all filters have changed in component cycle + {flush: 'post'}, + ) const hasDefaultFilters = computed(() => { return equal(filters.value, getDefaultFilters(route.value)) @@ -47,9 +46,9 @@ export function useRouteFilters( filters.value = getDefaultFilters(route.value) } - return { - filters, - hasDefaultFilters, - setDefaultFilters, - } + return { + filters, + hasDefaultFilters, + setDefaultFilters, + } } \ No newline at end of file