Files
confidence-engine/lib/theme-preference.js

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