@opensig/opendesign
Version:
23 lines (22 loc) • 625 B
JavaScript
;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
const is = require("../_utils/is.js");
const vue = require("vue");
const THEME_KEY = "__theme__";
const rootTheme = vue.ref("");
vue.watch(rootTheme, (newTheme) => {
document.documentElement.dataset.oTheme = newTheme;
localStorage.setItem(THEME_KEY, newTheme);
});
function useTheme(defaultTheme = "light") {
if (!is.isClient) {
return {
theme: rootTheme
};
}
rootTheme.value = rootTheme.value || localStorage.getItem(THEME_KEY) || defaultTheme;
return {
theme: rootTheme
};
}
exports.useTheme = useTheme;