aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorFuwn <[email protected]>2023-12-09 21:45:33 -0800
committerFuwn <[email protected]>2023-12-09 21:45:33 -0800
commitf8e43992af1e3903331db05ec14a6a2d3049bd36 (patch)
treed943a78ae1f544de7e1a7a02ff3c048e3bb14370 /src
parentfeat(html): use more screen area (diff)
downloaddue.moe-f8e43992af1e3903331db05ec14a6a2d3049bd36.tar.xz
due.moe-f8e43992af1e3903331db05ec14a6a2d3049bd36.zip
feat(settings): add new keys to settings
Diffstat (limited to 'src')
-rw-r--r--src/routes/+layout.svelte2
-rw-r--r--src/stores/settings.ts23
2 files changed, 20 insertions, 5 deletions
diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte
index 364a4833..a2c11d4d 100644
--- a/src/routes/+layout.svelte
+++ b/src/routes/+layout.svelte
@@ -10,6 +10,8 @@
let currentUserIdentity = { name: '...', id: -1 };
onMount(async () => {
+ settings.get();
+
if (data.user !== undefined) {
if ($userIdentity === '') {
userIdentity.set(JSON.stringify(await getUserIdentity(data.user)));
diff --git a/src/stores/settings.ts b/src/stores/settings.ts
index c57a6268..4a94bc4f 100644
--- a/src/stores/settings.ts
+++ b/src/stores/settings.ts
@@ -22,6 +22,10 @@ export interface Settings {
displayPlannedAnime: boolean;
displayFurigana: boolean;
displayAoButa: 'mai' | 'nodoka' | 'kaede' | 'none';
+ disableManga: boolean;
+ disableAnime: boolean;
+ disableUpcomingAnime: boolean;
+ [key: string]: unknown;
}
const defaultSettings: Settings = {
@@ -40,6 +44,9 @@ const defaultSettings: Settings = {
closeMangaByDefault: false,
sortByDifference: false,
displayAoButa: 'mai',
+ disableManga: false,
+ disableAnime: false,
+ disableUpcomingAnime: false,
// Calculation
roundDownChapters: true,
@@ -74,13 +81,19 @@ const createStore = () => {
const settingsKeys = Object.keys(state);
if (keys.length !== settingsKeys.length) {
- return defaultSettings;
- }
+ const updatedSettings = { ...state };
+
+ for (const key of keys) {
+ if (!settingsKeys.includes(key)) {
+ updatedSettings[key] = defaultSettings[key as keyof Settings];
+ }
+ }
- for (const key of keys) {
- if (!settingsKeys.includes(key)) {
- return defaultSettings;
+ if (browser) {
+ localStorage.setItem('settings', JSON.stringify(updatedSettings));
}
+
+ return updatedSettings;
}
return state;