UNPKG

alinea

Version:
54 lines (52 loc) 1.5 kB
import { atomWithStorage } from "../../chunks/chunk-WDCPVJJC.js"; import { atom } from "../../chunks/chunk-WJ67RR7S.js"; import "../../chunks/chunk-NZLE2WMY.js"; // src/dashboard/atoms/PreferencesAtoms.ts var preferencesAtom = atomWithStorage("@alinea/preferences", { scheme: void 0, workspace: void 0, size: 16, language: void 0 }); var schemePreferenceAtom = atom( (get) => get(preferencesAtom).scheme, (get, set, scheme) => { set(preferencesAtom, { ...get(preferencesAtom), scheme }); } ); var toggleSchemePreferenceAtom = atom(null, (get, set) => { const scheme = get(schemePreferenceAtom); const isLight = scheme === void 0 ? window.matchMedia("(prefers-color-scheme: light)").matches : scheme === "light"; const next = isLight ? "dark" : "light"; set(schemePreferenceAtom, next); }); var workspacePreferenceAtom = atom( (get) => get(preferencesAtom).workspace, (get, set, workspace) => { set(preferencesAtom, { ...get(preferencesAtom), workspace }); } ); var sizePreferenceAtom = atom( (get) => get(preferencesAtom).size, (get, set, size) => { set(preferencesAtom, { ...get(preferencesAtom), size }); } ); var languagePreferenceAtom = atom( (get) => get(preferencesAtom).language, (get, set, language) => { set(preferencesAtom, { ...get(preferencesAtom), language }); } ); export { languagePreferenceAtom, preferencesAtom, schemePreferenceAtom, sizePreferenceAtom, toggleSchemePreferenceAtom, workspacePreferenceAtom };