22 lines
598 B
JavaScript
22 lines
598 B
JavaScript
export const THEME_STORAGE_KEY = "confidence-engine-theme";
|
|
|
|
export function resolveTheme({ savedTheme, systemPrefersDark = false } = {}) {
|
|
if (savedTheme === "light" || savedTheme === "dark") return savedTheme;
|
|
return systemPrefersDark ? "dark" : "light";
|
|
}
|
|
|
|
export function toggleTheme(theme) {
|
|
return theme === "dark" ? "light" : "dark";
|
|
}
|
|
|
|
export function readThemePreference(storage) {
|
|
try {
|
|
return storage?.getItem(THEME_STORAGE_KEY) ?? null;
|
|
} catch {
|
|
return null;
|
|
}
|
|
}
|
|
|
|
export function saveThemePreference(theme, storage) {
|
|
storage?.setItem(THEME_STORAGE_KEY, theme);
|
|
} |