aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFuwn <[email protected]>2025-06-11 23:27:13 -0700
committerFuwn <[email protected]>2025-06-11 23:27:13 -0700
commit0e78835a9a129df4517ed504eec4bd2fa84f0cd4 (patch)
tree32c74f9934ccf6f0d876c368d4b436a48dcc7d95
parentdeps: Update all applicable dependencies (diff)
downloaddue.moe-0e78835a9a129df4517ed504eec4bd2fa84f0cd4.tar.xz
due.moe-0e78835a9a129df4517ed504eec4bd2fa84f0cd4.zip
fix(stores): Move anime and manga from localStorage to IndexedDB
-rwxr-xr-xbun.lockbbin405924 -> 406660 bytes
-rw-r--r--package.json1
-rw-r--r--src/stores/anime.ts15
-rw-r--r--src/stores/manga.ts15
4 files changed, 23 insertions, 8 deletions
diff --git a/bun.lockb b/bun.lockb
index dee95b36..80bee81b 100755
--- a/bun.lockb
+++ b/bun.lockb
Binary files differ
diff --git a/package.json b/package.json
index c2e13b31..721deef3 100644
--- a/package.json
+++ b/package.json
@@ -51,6 +51,7 @@
"dexie": "^4.0.11",
"jsdom": "^23.2.0",
"jszip": "^3.10.1",
+ "localforage": "^1.10.0",
"lz-string": "^1.5.0",
"modern-screenshot": "^4.6.2",
"rss-parser": "^3.13.0",
diff --git a/src/stores/anime.ts b/src/stores/anime.ts
index f9b649a0..dd85588d 100644
--- a/src/stores/anime.ts
+++ b/src/stores/anime.ts
@@ -1,10 +1,17 @@
import { browser } from '$app/environment';
import { writable } from 'svelte/store';
+import localforage from 'localforage';
-const anime = writable<string>(browser ? localStorage.getItem('anime') ?? '' : '');
+const anime = writable<string>('');
-anime.subscribe((value) => {
- if (browser) localStorage.setItem('anime', value);
-});
+if (browser) {
+ localforage.getItem<string>('anime').then((value) => {
+ if (value) anime.set(value);
+ });
+
+ anime.subscribe((value) => {
+ localforage.setItem('anime', value);
+ });
+}
export default anime;
diff --git a/src/stores/manga.ts b/src/stores/manga.ts
index 24bc9ce1..ff61d335 100644
--- a/src/stores/manga.ts
+++ b/src/stores/manga.ts
@@ -1,10 +1,17 @@
import { browser } from '$app/environment';
import { writable } from 'svelte/store';
+import localforage from 'localforage';
-const manga = writable<string>(browser ? localStorage.getItem('manga') ?? '' : '');
+const manga = writable<string>('');
-manga.subscribe((value) => {
- if (browser) localStorage.setItem('manga', value);
-});
+if (browser) {
+ localforage.getItem<string>('manga').then((value) => {
+ if (value) manga.set(value);
+ });
+
+ manga.subscribe((value) => {
+ localforage.setItem('manga', value);
+ });
+}
export default manga;