fix: lint & formatting

This commit is contained in:
kolaente 2022-11-09 14:27:26 +01:00
parent d47791b957
commit c2dd18edaa
Signed by untrusted user: konrad
GPG Key ID: F40E70337AB24C9B

View File

@ -1,16 +1,15 @@
import {computed, ref, watch, type Ref} from 'vue' import {computed, ref, watch, type Ref} from 'vue'
import {useRouter, type RouteLocationNormalized, type RouteLocationRaw} from 'vue-router' import {useRouter, type RouteLocationNormalized, type RouteLocationRaw} from 'vue-router'
import cloneDeep from 'lodash.clonedeep'
import equal from 'fast-deep-equal/es6' import equal from 'fast-deep-equal/es6'
export type Filters = Record<string, any> export type Filters = Record<string, any>
export function useRouteFilters<CurrentFilters extends Filters>( export function useRouteFilters<CurrentFilters extends Filters>(
route: Ref<RouteLocationNormalized>, route: Ref<RouteLocationNormalized>,
getDefaultFilters: (route: RouteLocationNormalized) => CurrentFilters, getDefaultFilters: (route: RouteLocationNormalized) => CurrentFilters,
routeToFilters: (route: RouteLocationNormalized) => CurrentFilters, routeToFilters: (route: RouteLocationNormalized) => CurrentFilters,
filtersToRoute: (filters: CurrentFilters) => RouteLocationRaw, filtersToRoute: (filters: CurrentFilters) => RouteLocationRaw,
) { ) {
const router = useRouter() const router = useRouter()
const filters = ref<CurrentFilters>(routeToFilters(route.value)) const filters = ref<CurrentFilters>(routeToFilters(route.value))
@ -22,22 +21,22 @@ export function useRouteFilters<CurrentFilters extends Filters>(
(route && oldRoute && typeof route.name !== 'undefined' && typeof oldRoute.name !== 'undefined' && route.name !== oldRoute.name) || (route && oldRoute && typeof route.name !== 'undefined' && typeof oldRoute.name !== 'undefined' && route.name !== oldRoute.name) ||
routeFromFiltersFullPath.value === route.fullPath routeFromFiltersFullPath.value === route.fullPath
) { ) {
return return
} }
filters.value = routeToFilters(route)
})
watch( filters.value = routeToFilters(route)
filters, })
async () => {
if (routeFromFiltersFullPath.value !== route.value.fullPath) { watch(
await router.push(routeFromFiltersFullPath.value) filters,
} async () => {
}, if (routeFromFiltersFullPath.value !== route.value.fullPath) {
// only apply new route after all filters have changed in component cycle await router.push(routeFromFiltersFullPath.value)
{flush: 'post'}, }
) },
// only apply new route after all filters have changed in component cycle
{flush: 'post'},
)
const hasDefaultFilters = computed(() => { const hasDefaultFilters = computed(() => {
return equal(filters.value, getDefaultFilters(route.value)) return equal(filters.value, getDefaultFilters(route.value))
@ -47,9 +46,9 @@ export function useRouteFilters<CurrentFilters extends Filters>(
filters.value = getDefaultFilters(route.value) filters.value = getDefaultFilters(route.value)
} }
return { return {
filters, filters,
hasDefaultFilters, hasDefaultFilters,
setDefaultFilters, setDefaultFilters,
} }
} }