diff --git a/package-lock.json b/package-lock.json index 1cb633e17..3b5609871 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,6 @@ "version": "1.0.0", "hasInstallScript": true, "dependencies": { - "@efstajas/svelte-stored-writable": "^0.3.0", "@radicle/gray-matter": "4.1.0", "@wooorm/starry-night": "^3.5.0", "async-mutex": "^0.5.0", @@ -82,15 +81,6 @@ "node": ">=6.0.0" } }, - "node_modules/@efstajas/svelte-stored-writable": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@efstajas/svelte-stored-writable/-/svelte-stored-writable-0.3.0.tgz", - "integrity": "sha512-TIhJ5gpivhCsN+ijt/bAWp20uoeRZHJCOCTLqfzN4n5fk6uMUVtPeqnmC5eCe1Tn23moBuKOC6wgK4APuyuT6A==", - "dependencies": { - "svelte": "^4.2.19", - "zod": "^3.21.4" - } - }, "node_modules/@esbuild/aix-ppc64": { "version": "0.21.5", "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", diff --git a/package.json b/package.json index 998438e60..523535c58 100644 --- a/package.json +++ b/package.json @@ -53,7 +53,6 @@ "wait-on": "^8.0.1" }, "dependencies": { - "@efstajas/svelte-stored-writable": "^0.3.0", "@radicle/gray-matter": "4.1.0", "@wooorm/starry-night": "^3.5.0", "async-mutex": "^0.5.0", diff --git a/src/App.svelte b/src/App.svelte index 50f1e54df..873c37b40 100644 --- a/src/App.svelte +++ b/src/App.svelte @@ -2,7 +2,7 @@ import * as router from "@app/lib/router"; import { unreachable } from "@app/lib/utils"; - import { codeFont, theme } from "@app/lib/appearance"; + import { codeFont, followSystemTheme, theme } from "@app/lib/appearance"; import FullscreenModalPortal from "./App/FullscreenModalPortal.svelte"; import Hotkeys from "./App/Hotkeys.svelte"; @@ -27,8 +27,9 @@ window .matchMedia("(prefers-color-scheme: dark)") .addEventListener("change", ({ matches }) => { - theme.set(matches ? "dark" : "light"); - followSystemTheme.set(true); + if ($followSystemTheme) { + theme.set(matches ? "dark" : "light"); + } }); void router.loadFromLocation(); diff --git a/src/App/Settings.svelte b/src/App/Settings.svelte index 4dfb53dc1..8d96a9638 100644 --- a/src/App/Settings.svelte +++ b/src/App/Settings.svelte @@ -2,10 +2,9 @@ import { codeFont, codeFonts, - storeCodeFont, - storeTheme, theme, followSystemTheme, + loadTheme, } from "@app/lib/appearance"; import Button from "@app/components/Button.svelte"; @@ -47,7 +46,10 @@ variant={!$followSystemTheme && $theme === "light" ? "selected" : "not-selected"} - on:click={() => storeTheme("light")}> + on:click={() => { + theme.set("light"); + followSystemTheme.set(false); + }}>
@@ -57,7 +59,10 @@ variant={!$followSystemTheme && $theme === "dark" ? "selected" : "not-selected"} - on:click={() => storeTheme("dark")}> + on:click={() => { + theme.set("dark"); + followSystemTheme.set(false); + }}>
@@ -65,7 +70,10 @@ ariaLabel="System Theme" styleBorderRadius="0" variant={$followSystemTheme ? "selected" : "not-selected"} - on:click={() => storeTheme("system")}> + on:click={() => { + theme.set(loadTheme()); + followSystemTheme.set(true); + }}> @@ -79,7 +87,7 @@