diff --git a/app/components/settings/GoogleLogin.vue b/app/components/settings/GoogleLogin.vue index 7d9dd42..dd7210e 100644 --- a/app/components/settings/GoogleLogin.vue +++ b/app/components/settings/GoogleLogin.vue @@ -28,6 +28,7 @@ async function handleLoginSuccess(response: ImplicitFlowSuccessResponse) { const res = await $fetch("/api/auth/", { method: "POST", body: { code }, + ...useFetchOptions(), }).catch(async (err) => { //todo - show in toast console.warn(err); diff --git a/app/pages/index.vue b/app/pages/index.vue index 8834817..3167784 100644 --- a/app/pages/index.vue +++ b/app/pages/index.vue @@ -2,44 +2,56 @@ import Todos from "~/components/todo/Todos.vue"; import { useLoginToken } from "~/composables/login/useLoginToken"; -const token = useLoginToken(); - const todoStore = useTodoStore(); const tagStore = useTagStore(); -function initSSE() { - todoStore.initSSE(); - tagStore.initSSE(); -} - -async function initData() { - await Promise.all([todoStore.fetch(), tagStore.fetch()]); -} - -async function init() { - initSSE(); - await initData(); -} +const Init = { + client() { + todoStore.initSSE(); + tagStore.initSSE(); + }, + async data() { + await Promise.all([todoStore.fetch(), tagStore.fetch()]); + }, + async all() { + Init.client(); + await Init.data(); + }, +}; function reset() { todoStore.reset(); tagStore.reset(); } -watch(token, async () => { - if (token.value) { - init(); - } else { - reset(); - } -}); +const token = useLoginToken(); -onMounted(() => { - if (token.value) initSSE(); +await callOnce(async () => { + if (token.value) await Init.data(); }); -await callOnce(async () => { - if (token.value) await initData(); +onMounted(async () => { + if (token.value) { + Init.client(); + + const fetch = useRequestFetch(); + const data = await fetch("/api/auth/renew", { ...useFetchOptions() }).catch( + async (err) => { + //todo - show in toast + console.warn(err); + return undefined; + }, + ); + + if (data) { + token.value = data.token; + } + } + + watch(token, async () => { + if (token.value) Init.all(); + else reset(); + }); });