diff --git a/app/pages/index.vue b/app/pages/index.vue index fdfd9ee..7a99fca 100644 --- a/app/pages/index.vue +++ b/app/pages/index.vue @@ -16,13 +16,22 @@ onMounted(async () => { // Timeout to avoid browser confusing sse as page load progress setTimeout(() => { - watch( - selectedOrg, - () => { - initSSE(); - }, - { immediate: true }, - ); + watch(selectedOrg, () => { + initSSE(); + + const queryCache = useQueryCache(); + + queryCache.setQueryData(["todos", "active"], []); + queryCache.setQueryData(["todos", "deleted"], []); + queryCache.setQueryData(["tags"], []); + queryCache.setQueryData(["categories"], []); + + queryCache.invalidateQueries({ key: ["categories"] }); + queryCache.invalidateQueries({ key: ["tags"] }); + queryCache.invalidateQueries({ key: ["todos"] }); + }); + + initSSE(); }, 1000); }); diff --git a/app/plugins/api.ts b/app/plugins/api.ts index 9a2c210..d16c75e 100644 --- a/app/plugins/api.ts +++ b/app/plugins/api.ts @@ -6,12 +6,6 @@ export default defineNuxtPlugin(async () => { const { getToken } = useAuthToken(); const selectedOrg = useSelectedOrg(); - watch(selectedOrg, () => { - const queryCache = useQueryCache(); - queryCache.invalidateQueries({ key: ["categories"] }); - queryCache.invalidateQueries({ key: ["tags"] }); - queryCache.invalidateQueries({ key: ["todos"] }); - }); const api = $fetch.create({ baseURL: config.public.apiBase,