import { theme } from "./constants"; export const getTheme = (): UserTheme => { return (document.documentElement.className as UserTheme) || theme; }; export const setTheme = (theme: UserTheme) => { const html = document.documentElement; if (!theme) { html.className = getMediaPreference(); } else { html.className = theme; } }; export const toggleTheme = (): void => { const activeTheme = getTheme(); if (activeTheme === "light") { setTheme("dark"); } else { setTheme("light"); } }; export const getMediaPreference = (): UserTheme => { const hasDarkPreference = window.matchMedia( "(prefers-color-scheme: dark)" ).matches; if (hasDarkPreference) { return "dark"; } else { return "light"; } };