22 lines
732 B
TypeScript
22 lines
732 B
TypeScript
import { updateUserProfile } from "~/utils/db/users.db.server";
|
|
|
|
export const LIGHT_OR_DARK_MODES = ["light", "dark"] as const;
|
|
|
|
export type LightOrDarkMode = (typeof LIGHT_OR_DARK_MODES)[number];
|
|
|
|
export function normalizeLightOrDarkMode(value: unknown): LightOrDarkMode {
|
|
return value === "dark" ? "dark" : "light";
|
|
}
|
|
|
|
export function nextLightOrDarkMode(current: unknown): LightOrDarkMode {
|
|
return normalizeLightOrDarkMode(current) === "dark" ? "light" : "dark";
|
|
}
|
|
|
|
export async function persistUserLightOrDarkMode(userId: string | null | undefined, lightOrDarkMode: unknown) {
|
|
if (!userId) {
|
|
return null;
|
|
}
|
|
|
|
return await updateUserProfile({ lightOrDarkMode: normalizeLightOrDarkMode(lightOrDarkMode) }, userId);
|
|
}
|