From e62825a114e9474f7da5a17a0714b8f21bc9aabe Mon Sep 17 00:00:00 2001 From: "jmosrael@gmail.com" Date: Fri, 24 May 2024 18:07:31 -0700 Subject: [PATCH] filter query strings --- frontend/src/router/index.ts | 2 +- frontend/src/vues/CharacterList.vue | 9 ++++++--- frontend/src/vues/GameList.vue | 15 +++++++++++---- 3 files changed, 18 insertions(+), 8 deletions(-) diff --git a/frontend/src/router/index.ts b/frontend/src/router/index.ts index 2b4edaf..f5d159d 100644 --- a/frontend/src/router/index.ts +++ b/frontend/src/router/index.ts @@ -8,7 +8,7 @@ import ServerStats from '../vues/ServerStats.vue' const root = { path: '/', - redirect: '/games' + redirect: '/serverstats' } const gameListRoute = { diff --git a/frontend/src/vues/CharacterList.vue b/frontend/src/vues/CharacterList.vue index 22dd629..7d64d83 100644 --- a/frontend/src/vues/CharacterList.vue +++ b/frontend/src/vues/CharacterList.vue @@ -70,12 +70,12 @@ async function loadData() { } function setPage(targetPage: number) { - router.replace({ query: { page: targetPage } }) + router.replace({ query: { page: targetPage, filter: route.query.filter } }) } watch(route, (newValue, oldValue) => { if (!route.query.page) { - router.replace({ query: { page: 1 } }) + router.replace({ query: { page: 1, filter: route.query.filter } }) page.value = 1 } else { page.value = Number(route.query.page) @@ -88,7 +88,7 @@ let debounce = null watch(filtervalue, (newFilter, oldFilter) => { debounce = clearTimeout(debounce) debounce = setTimeout(() => { - loadData() + router.replace({query: {page: route.query.page, filter: newFilter}}) }, 500) }) @@ -99,6 +99,9 @@ onMounted(async () => { } else { page.value = Number(route.query.page) } + if (route.query.filter) { + filtervalue.value = route.query.filter + } loadData() }) diff --git a/frontend/src/vues/GameList.vue b/frontend/src/vues/GameList.vue index 993a77d..3851f34 100644 --- a/frontend/src/vues/GameList.vue +++ b/frontend/src/vues/GameList.vue @@ -52,24 +52,28 @@ async function loadData() { } function setPage(targetPage: number) { - router.replace({ query: { page: targetPage } }) + router.replace({ query: { page: targetPage, filter: route.query.filter} }) } watch(route, (newValue, oldValue) => { if (!route.query.page) { - router.replace({ query: { page: 1 } }) + router.replace({ query: { page: 1, filter: route.query.filter } }) page.value = 1 } else { page.value = Number(route.query.page) } + + if (route.query.filter) { + filtervalue.value = route.query.filter + } loadData() }) let debounce = null -watch(filtervalue, (oldFilter, newFilter) => { +watch(filtervalue, (newFilter, oldFilter) => { debounce = clearTimeout(debounce) debounce = setTimeout(() => { - loadData() + router.replace({query: {page: route.query.page, filter: newFilter}}) }, 500) }) @@ -80,6 +84,9 @@ onMounted(async () => { } else { page.value = Number(route.query.page) } + if (route.query.filter) { + filtervalue.value = route.query.filter + } loadData() })