@opensig/opendesign
Version:
<p align="center"><img src="../docs/public/opendesign-logo-light.png"/></p> <h1 align="center">opendesign</h1> <p align="center">一个 Vue 3 组件库</p> <p align="center"><b>皮肤可定制,使用 TypeScript</b></p>
23 lines (22 loc) • 629 B
JavaScript
;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
const is = require("../_utils/is.js");
const vue = require("vue");
const THEME_KEY = "__theme__";
function useTheme(defaultTheme = "light") {
if (!is.isClient) {
return {
theme: vue.ref(defaultTheme)
};
}
const currentTheme = vue.ref(localStorage.getItem(THEME_KEY) || defaultTheme);
vue.watchEffect(() => {
const theme = currentTheme.value;
document.documentElement.dataset.oTheme = theme;
localStorage.setItem(THEME_KEY, theme);
});
return {
theme: currentTheme
};
}
exports.useTheme = useTheme;