From 49c17d70ebb220ba774ee84594813cf46229a3db Mon Sep 17 00:00:00 2001 From: Torsten Dittmann Date: Fri, 14 Oct 2022 17:17:35 +0200 Subject: [PATCH] fix: account state --- src/lib/stores/user.ts | 4 ++++ src/routes/+layout.svelte | 10 +++++++++- src/routes/console/account/+layout.svelte | 3 --- src/routes/login/+page.svelte | 2 +- 4 files changed, 14 insertions(+), 5 deletions(-) diff --git a/src/lib/stores/user.ts b/src/lib/stores/user.ts index 9167be122..0e9f1ffa1 100644 --- a/src/lib/stores/user.ts +++ b/src/lib/stores/user.ts @@ -13,6 +13,10 @@ function createUserStore() { }, logout: async () => { await sdkForConsole.account.deleteSession('current'); + /** + * Clear cache. + */ + globalThis.sessionStorage.clear(); } }; } diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte index 430811845..b84c4747d 100644 --- a/src/routes/+layout.svelte +++ b/src/routes/+layout.svelte @@ -24,6 +24,8 @@ try { if (!$user) { await user.fetchUser(); + } else { + user.fetchUser(); } if (!$page.url.pathname.startsWith('/console')) { @@ -32,7 +34,13 @@ } catch (error) { if (acceptedRoutes.includes($page.url.pathname)) { await goto(`${base}${$page.url.pathname}${$page.url.search}`); - } else await goto(`${base}/login`); + } else { + /** + * Clear cache. + */ + window.sessionStorage.clear(); + await goto(`${base}/login`); + } } finally { loaded = true; } diff --git a/src/routes/console/account/+layout.svelte b/src/routes/console/account/+layout.svelte index d6b6d2ab4..3e1c93be7 100644 --- a/src/routes/console/account/+layout.svelte +++ b/src/routes/console/account/+layout.svelte @@ -10,9 +10,6 @@ afterNavigate(handle); async function handle(event = null) { - if (!$user) { - await user.fetchUser(); - } updateLayout({ navigate: event, title: $user?.name, diff --git a/src/routes/login/+page.svelte b/src/routes/login/+page.svelte index 757e32123..7e989ad9b 100644 --- a/src/routes/login/+page.svelte +++ b/src/routes/login/+page.svelte @@ -19,7 +19,7 @@ const login = async () => { try { await sdkForConsole.account.createEmailSession(mail, pass); - user.fetchUser(); + await user.fetchUser(); addNotification({ type: 'success', message: 'Successfully logged in.'