diff --git a/src/lib/clientSettings.ts b/src/lib/clientSettings.ts new file mode 100644 index 0000000..1822546 --- /dev/null +++ b/src/lib/clientSettings.ts @@ -0,0 +1,28 @@ +import { ClientSettings } from "@/types/config"; +import Cookies from "js-cookie"; + +const defaultSettings: ClientSettings = { + theme: "dark", +}; + +export function getClientSettings(): ClientSettings { + const s_cookie = Cookies.get("settings"); + let parsed: Partial = {}; + + if (s_cookie) { + try { + parsed = JSON.parse(s_cookie); + } catch { + parsed = {}; + } + } + + return { + ...defaultSettings, + ...parsed, + }; +} + +export function setClientSettings(value?: ClientSettings) { + Cookies.set("settings", JSON.stringify(value || defaultSettings)); +} diff --git a/src/types/config.ts b/src/types/config.ts new file mode 100644 index 0000000..7c196d0 --- /dev/null +++ b/src/types/config.ts @@ -0,0 +1,5 @@ +export interface ClientSettings { + theme: "light" | "dark"; +} + +export interface AccountSettings {}