From e8612618fb20f779ebe2e85edf32d71961d2f1d4 Mon Sep 17 00:00:00 2001 From: Fuwn Date: Thu, 12 Jun 2025 22:06:31 -0700 Subject: feat: Move remaining localStorage usages to localforage --- src/routes/+layout.svelte | 28 ++++++++++++++-------------- src/routes/user/+page.svelte | 26 +++++++++++++------------- src/routes/user/[user]/badges/+page.svelte | 7 ++++--- 3 files changed, 31 insertions(+), 30 deletions(-) (limited to 'src/routes') diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte index 1dd069a0..d9caca74 100644 --- a/src/routes/+layout.svelte +++ b/src/routes/+layout.svelte @@ -76,22 +76,22 @@ onMount(async () => { if (browser) { - if (localStorage.getItem('redirect')) { - window.location.href = localStorage.getItem('redirect') ?? '/'; + if (await localforage.getItem('redirect')) { + window.location.href = (await localforage.getItem('redirect')) ?? '/'; - localStorage.removeItem('redirect'); + await localforage.removeItem('redirect'); } window.addEventListener('scroll', handleScroll); - if (localStorage.getItem('commit') !== data.commit) { - localStorage.removeItem('identity'); - localStorage.removeItem('anime'); - localStorage.removeItem('manga'); + if ((await localforage.getItem('commit')) !== data.commit) { + await localforage.removeItem('identity'); await localforage.removeItem('anime'); await localforage.removeItem('manga'); - localStorage.removeItem('lastPruneTimes'); - localStorage.setItem('commit', data.commit); + await localforage.removeItem('anime'); + await localforage.removeItem('manga'); + await localforage.removeItem('lastPruneTimes'); + await localforage.setItem('commit', data.commit); } } @@ -213,9 +213,9 @@ name: $locale().navigation.logOut, url: '#', preventDefault: true, - onClick: () => { - localStorage.removeItem('identity'); - localStorage.removeItem('commit'); + onClick: async () => { + await localforage.removeItem('identity'); + await localforage.removeItem('commit'); document.cookie = 'user=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;'; @@ -235,8 +235,8 @@ { - localStorage.setItem( + on:click={async () => { + await localforage.setItem( 'redirect', window.location.origin + window.location.pathname + window.location.search ); diff --git a/src/routes/user/+page.svelte b/src/routes/user/+page.svelte index 29bd132b..eab089c6 100644 --- a/src/routes/user/+page.svelte +++ b/src/routes/user/+page.svelte @@ -7,23 +7,23 @@ import HeadTitle from '$lib/Home/HeadTitle.svelte'; import root from '$lib/Utility/root'; import { page } from '$app/stores'; + import localforage from 'localforage'; - const user = - browser && localStorage.getItem('identity') - ? (JSON.parse(localStorage.getItem('identity') || '') as UserIdentity).name - : null; + onMount(async () => { + if (browser) { + const user = ((await localforage.getItem('identity')) as UserIdentity).name; - onMount(() => { - if (user) { - if (browser && $page.url.searchParams.get('badges') !== null) { - goto(root(`/user/${user}/badges`)); + if (user) { + if (browser && $page.url.searchParams.get('badges') !== null) { + goto(root(`/user/${user}/badges`)); + } else { + goto(root(`/user/${user}`)); + } } else { - goto(root(`/user/${user}`)); + goto( + `https://anilist.co/api/v2/oauth/authorize?client_id=${env.PUBLIC_ANILIST_CLIENT_ID}&redirect_uri=${env.PUBLIC_ANILIST_REDIRECT_URI}&response_type=code` + ); } - } else { - goto( - `https://anilist.co/api/v2/oauth/authorize?client_id=${env.PUBLIC_ANILIST_CLIENT_ID}&redirect_uri=${env.PUBLIC_ANILIST_REDIRECT_URI}&response_type=code` - ); } }); diff --git a/src/routes/user/[user]/badges/+page.svelte b/src/routes/user/[user]/badges/+page.svelte index 9fca60b2..43beddea 100644 --- a/src/routes/user/[user]/badges/+page.svelte +++ b/src/routes/user/[user]/badges/+page.svelte @@ -23,6 +23,7 @@ import type { IndexedBadge } from '$lib/User/BadgeWall/badge'; import { graphql } from '$houdini'; import type { Preferences } from '../../../../graphql/user/$types'; + import localforage from 'localforage'; export let data; @@ -205,7 +206,7 @@ }); onMount(async () => { - if (browser && localStorage.getItem('badgeWallNoticeDismissed')) noticeDismissed = true; + if (browser && (await localforage.getItem('badgeWallNoticeDismissed'))) noticeDismissed = true; badger = isId ? { @@ -573,10 +574,10 @@ of all badges from your Badge Wall.