import { createLocalStorage } from "../createLocalStorage";
import { createEffect } from "solid-js";
const COLOR_SCHEME_QUERY = "(prefers-color-scheme: dark)";
export const createDarkMode = (props) => {
    const [isDarkMode, setDarkMode] = createLocalStorage("solid-wonder-ui-hooks-dark-mode", props.defaultValue ?? "");
    createEffect(() => {
        if (!props.useOsMode && !props.useOsModeOnlyNoValue)
            return;
        if (props.useOsModeOnlyNoValue && isDarkMode() !== "")
            return;
        if (window.matchMedia &&
            window.matchMedia(COLOR_SCHEME_QUERY).matches &&
            !isDarkMode()) {
            setDarkMode(true);
        }
        else if (window.matchMedia &&
            !window.matchMedia(COLOR_SCHEME_QUERY).matches &&
            isDarkMode()) {
            setDarkMode(false);
        }
    });
    return {
        isDarkMode,
        toggle: () => setDarkMode(!isDarkMode()),
        enable: () => setDarkMode(true),
        disable: () => setDarkMode(false),
    };
};
