flowbite-react
Version:
Official React components built for Flowbite and Tailwind CSS
26 lines (24 loc) • 1.03 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.ThemeModeScript = void 0;
const jsx_runtime_1 = require("react/jsx-runtime");
const ThemeModeScript = ({ mode, ...others }) => {
return ((0, jsx_runtime_1.jsx)("script", { ...others, "data-flowbite-theme-mode-script": true, dangerouslySetInnerHTML: {
__html: getScript({ mode, defaultMode: 'light', localStorageKey: 'flowbite-theme-mode' }),
} }));
};
exports.ThemeModeScript = ThemeModeScript;
function getScript({ mode, defaultMode, localStorageKey, }) {
return `
try {
const mode = window.localStorage.getItem('${localStorageKey}') ?? '${mode}' ?? '${defaultMode}';
const computedMode =
mode === 'auto' ? (window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light') : mode;
if (computedMode === 'dark') {
document.documentElement.classList.add('dark');
} else {
document.documentElement.classList.remove('dark');
}
} catch (e) {}
`;
}
;