UNPKG

@vertisanpro/flowbite-react

Version:

Non-Official React components built for Flowbite and Tailwind CSS

22 lines (20 loc) 859 B
import React from 'react'; export const ThemeModeScript = ({ mode, ...others }) => { return (React.createElement("script", { ...others, "data-flowbite-theme-mode-script": true, dangerouslySetInnerHTML: { __html: getScript({ mode, defaultMode: 'light', localStorageKey: 'flowbite-theme-mode' }), } })); }; 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) {} `; }