usehooks-ts
Version:
React hook library, ready to use, written in Typescript.
21 lines • 982 B
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
var useLocalStorage_1 = require("../useLocalStorage");
var useMediaQuery_1 = require("../useMediaQuery");
var __1 = require("..");
var COLOR_SCHEME_QUERY = '(prefers-color-scheme: dark)';
function useDarkMode(defaultValue) {
var isDarkOS = (0, useMediaQuery_1.useMediaQuery)(COLOR_SCHEME_QUERY);
var _a = (0, useLocalStorage_1.useLocalStorage)('darkMode', defaultValue !== null && defaultValue !== void 0 ? defaultValue : false), isDarkMode = _a[0], setDarkMode = _a[1];
(0, __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); },
};
}
exports.default = useDarkMode;
//# sourceMappingURL=useDarkMode.js.map
;