create-iking-admin
Version:
金合技术中台脚手架
33 lines (31 loc) • 904 B
text/typescript
/*
* @Author: wfl
* @LastEditors: wfl
* @description:
* @updateInfo:
* @Date: 2022-08-12 18:42:51
* @LastEditTime: 2022-08-29 12:24:55
*/
import { ikDomUtil } from 'iking-utils';
import { darkCssIsReady, loadDarkThemeCss } from 'vite-plugin-theme/es/client';
export async function updateDarkTheme(mode: string | null = 'light') {
const htmlRoot = document.getElementById('htmlRoot');
if (!htmlRoot) {
return;
}
const hasDarkClass = ikDomUtil.hasClass(htmlRoot, 'dark');
if (mode === 'dark') {
if (import.meta.env.PROD && !darkCssIsReady) {
await loadDarkThemeCss();
}
htmlRoot.setAttribute('data-theme', 'dark');
if (!hasDarkClass) {
ikDomUtil.addClass(htmlRoot, 'dark');
}
} else {
htmlRoot.setAttribute('data-theme', 'light');
if (hasDarkClass) {
ikDomUtil.removeClass(htmlRoot, 'dark');
}
}
}