Files
new-api-analytics/lib/theme-sync.ts

30 lines
563 B
TypeScript

import type { Theme } from "./theme";
export type ResolvedTheme = "light" | "dark";
export function resolveStoredTheme(
theme: Theme,
prefersDark: boolean,
): ResolvedTheme {
if (theme === "system") {
return prefersDark ? "dark" : "light";
}
return theme;
}
export function resolveIncomingThemeMode(
mode: unknown,
prefersDark: boolean,
): ResolvedTheme | null {
if (mode === "light" || mode === "dark") {
return mode;
}
if (mode === "auto" || mode === "system") {
return prefersDark ? "dark" : "light";
}
return null;
}