filter query strings

This commit is contained in:
jmosrael@gmail.com
2024-05-24 18:07:31 -07:00
parent 32f5a7a1af
commit e62825a114
3 changed files with 18 additions and 8 deletions

View File

@@ -8,7 +8,7 @@ import ServerStats from '../vues/ServerStats.vue'
const root = { const root = {
path: '/', path: '/',
redirect: '/games' redirect: '/serverstats'
} }
const gameListRoute = { const gameListRoute = {

View File

@@ -70,12 +70,12 @@ async function loadData() {
} }
function setPage(targetPage: number) { function setPage(targetPage: number) {
router.replace({ query: { page: targetPage } }) router.replace({ query: { page: targetPage, filter: route.query.filter } })
} }
watch(route, (newValue, oldValue) => { watch(route, (newValue, oldValue) => {
if (!route.query.page) { if (!route.query.page) {
router.replace({ query: { page: 1 } }) router.replace({ query: { page: 1, filter: route.query.filter } })
page.value = 1 page.value = 1
} else { } else {
page.value = Number(route.query.page) page.value = Number(route.query.page)
@@ -88,7 +88,7 @@ let debounce = null
watch(filtervalue, (newFilter, oldFilter) => { watch(filtervalue, (newFilter, oldFilter) => {
debounce = clearTimeout(debounce) debounce = clearTimeout(debounce)
debounce = setTimeout(() => { debounce = setTimeout(() => {
loadData() router.replace({query: {page: route.query.page, filter: newFilter}})
}, 500) }, 500)
}) })
@@ -99,6 +99,9 @@ onMounted(async () => {
} else { } else {
page.value = Number(route.query.page) page.value = Number(route.query.page)
} }
if (route.query.filter) {
filtervalue.value = route.query.filter
}
loadData() loadData()
}) })
</script> </script>

View File

@@ -52,24 +52,28 @@ async function loadData() {
} }
function setPage(targetPage: number) { function setPage(targetPage: number) {
router.replace({ query: { page: targetPage } }) router.replace({ query: { page: targetPage, filter: route.query.filter} })
} }
watch(route, (newValue, oldValue) => { watch(route, (newValue, oldValue) => {
if (!route.query.page) { if (!route.query.page) {
router.replace({ query: { page: 1 } }) router.replace({ query: { page: 1, filter: route.query.filter } })
page.value = 1 page.value = 1
} else { } else {
page.value = Number(route.query.page) page.value = Number(route.query.page)
} }
if (route.query.filter) {
filtervalue.value = route.query.filter
}
loadData() loadData()
}) })
let debounce = null let debounce = null
watch(filtervalue, (oldFilter, newFilter) => { watch(filtervalue, (newFilter, oldFilter) => {
debounce = clearTimeout(debounce) debounce = clearTimeout(debounce)
debounce = setTimeout(() => { debounce = setTimeout(() => {
loadData() router.replace({query: {page: route.query.page, filter: newFilter}})
}, 500) }, 500)
}) })
@@ -80,6 +84,9 @@ onMounted(async () => {
} else { } else {
page.value = Number(route.query.page) page.value = Number(route.query.page)
} }
if (route.query.filter) {
filtervalue.value = route.query.filter
}
loadData() loadData()
}) })
</script> </script>