diff --git a/src/lib/stores/theme.ts b/src/lib/stores/theme.ts index 8c86dec..ce1fb5b 100644 --- a/src/lib/stores/theme.ts +++ b/src/lib/stores/theme.ts @@ -1,29 +1,27 @@ -import { Store } from 'tauri-plugin-store-api'; import { writable } from 'svelte/store'; import type { Theme } from '$types'; -const store = new Store('.settings.dat'); - const createThemeStore = () => { - const { subscribe, update, set } = writable(); + let theme = localStorage.getItem('theme') as Theme | null; + if (!theme) { + theme = window.matchMedia('(prefers-color-scheme: dark)').matches + ? 'dark' + : 'light'; + localStorage.setItem('theme', theme); + } + + const { subscribe, update } = writable(theme); return { subscribe, toggleTheme: () => { update(currentTheme => { const newTheme = currentTheme === 'dark' ? 'light' : 'dark'; - store.set('theme', newTheme); + localStorage.setItem('theme', newTheme); return newTheme; }); - }, - load: async () => { - let storedTheme = (await store.get('theme')) as Theme | null; - if (!storedTheme) { - storedTheme = 'dark'; - store.set('theme', storedTheme); - } - set(storedTheme); } }; }; + export const theme = createThemeStore();