Added a lib for client settings #3
This commit is contained in:
@@ -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<ClientSettings> = {};
|
||||||
|
|
||||||
|
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));
|
||||||
|
}
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
export interface ClientSettings {
|
||||||
|
theme: "light" | "dark";
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface AccountSettings {}
|
||||||
Reference in New Issue
Block a user