diff options
Diffstat (limited to 'src/routes/+layout.svelte')
| -rw-r--r-- | src/routes/+layout.svelte | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte index 99cf8341..39a2e40b 100644 --- a/src/routes/+layout.svelte +++ b/src/routes/+layout.svelte @@ -112,11 +112,15 @@ onMount(async () => { settings.get(); - if (data.user !== undefined && $userIdentity.id === -2) - getUserIdentity(data.user).then((h) => userIdentity.set(h)); + const currentIdentity = data.user + ? await getUserIdentity(data.user) + : undefined; - if ($settings.settingsSync && $userIdentity.id !== -2) - fetch(root(`/api/configuration?id=${$userIdentity.id}`)).then( + if (currentIdentity) userIdentity.set(currentIdentity); + else if ($userIdentity.id !== -2) userIdentity.reset(); + + if ($settings.settingsSync && currentIdentity) + fetch(root(`/api/configuration?id=${currentIdentity.id}`)).then( (response) => { if (response.ok) response.json().then((data) => { @@ -135,14 +139,18 @@ onMount(async () => { await userDatabase.users.where("id").below(0).delete(); - if (!(await userDatabase.users.get($userIdentity.id)) && $userIdentity.id > 0) + if ( + currentIdentity && + !(await userDatabase.users.get(currentIdentity.id)) && + currentIdentity.id > 0 + ) await userDatabase.users.put({ - id: $userIdentity.id, + id: currentIdentity.id, user: data.user, lastNotificationID: null, }); - if ($settings.displayAniListNotifications && data.user !== undefined) + if ($settings.displayAniListNotifications && currentIdentity) if ("Notification" in window && navigator.serviceWorker) requestNotifications(); }); |