usehooks-ts
Version:
React hook library, ready to use, written in Typescript.
19 lines • 860 B
JavaScript
import { useLocalStorage } from '../useLocalStorage';
import { useMediaQuery } from '../useMediaQuery';
import { useUpdateEffect } from '..';
var COLOR_SCHEME_QUERY = '(prefers-color-scheme: dark)';
function useDarkMode(defaultValue) {
var isDarkOS = useMediaQuery(COLOR_SCHEME_QUERY);
var _a = useLocalStorage('darkMode', defaultValue !== null && defaultValue !== void 0 ? defaultValue : false), isDarkMode = _a[0], setDarkMode = _a[1];
useUpdateEffect(function () {
setDarkMode(isDarkOS);
}, [isDarkOS]);
return {
isDarkMode: isDarkMode,
toggle: function () { return setDarkMode(function (prev) { return !prev; }); },
enable: function () { return setDarkMode(true); },
disable: function () { return setDarkMode(false); },
};
}
export default useDarkMode;
//# sourceMappingURL=useDarkMode.js.map