fix(filters): persist filters in url
This allows us to keep the filters when navigating back from a task or other url.
This commit is contained in:
parent
ccb708a56f
commit
7bf2664e55
@ -30,21 +30,39 @@ import {computed, ref, watch} from 'vue'
|
|||||||
|
|
||||||
import Filters from '@/components/project/partials/filters.vue'
|
import Filters from '@/components/project/partials/filters.vue'
|
||||||
|
|
||||||
import {type TaskFilterParams} from '@/services/taskCollection'
|
import {getDefaultTaskFilterParams, type TaskFilterParams} from '@/services/taskCollection'
|
||||||
|
import {useRouteQuery} from '@vueuse/router'
|
||||||
|
|
||||||
const modelValue = defineModel<TaskFilterParams>({})
|
const modelValue = defineModel<TaskFilterParams>({})
|
||||||
|
|
||||||
const value = ref<TaskFilterParams>({})
|
const value = ref<TaskFilterParams>({})
|
||||||
|
const filter = useRouteQuery('filter')
|
||||||
|
|
||||||
watch(
|
watch(
|
||||||
() => modelValue.value,
|
() => modelValue.value,
|
||||||
(modelValue: TaskFilterParams) => {
|
(modelValue: TaskFilterParams) => {
|
||||||
value.value = modelValue
|
value.value = modelValue
|
||||||
|
if (value.value.filter !== '' && value.value.filter !== getDefaultTaskFilterParams().filter) {
|
||||||
|
filter.value = value.value.filter
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{immediate: true},
|
||||||
|
)
|
||||||
|
|
||||||
|
watch(
|
||||||
|
() => filter.value,
|
||||||
|
val => {
|
||||||
|
if (modelValue.value?.filter === val || typeof val === 'undefined') {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
modelValue.value.filter = val
|
||||||
},
|
},
|
||||||
{immediate: true},
|
{immediate: true},
|
||||||
)
|
)
|
||||||
|
|
||||||
function emitChanges(newValue: TaskFilterParams) {
|
function emitChanges(newValue: TaskFilterParams) {
|
||||||
|
filter.value = newValue.filter
|
||||||
if (modelValue.value?.filter === newValue.filter && modelValue.value?.s === newValue.s) {
|
if (modelValue.value?.filter === newValue.filter && modelValue.value?.s === newValue.s) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user