Files
HiveGrid-Wireframes/hivegrid-cloud/apps/web/app/utils/theme/userThemePreference.server.ts
T

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);
}