From fe89e38067a910b578900f93cb0e56a42f3f2996 Mon Sep 17 00:00:00 2001 From: Leo dev Date: Thu, 2 Oct 2025 11:04:07 +0200 Subject: [PATCH] Added a lib for client settings #3 --- src/lib/clientSettings.ts | 28 ++++++++++++++++++++++++++++ src/types/config.ts | 5 +++++ 2 files changed, 33 insertions(+) create mode 100644 src/lib/clientSettings.ts create mode 100644 src/types/config.ts 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 {}