|
import { useGlobal } from '@/lib/global' |
|
import { saveDarkModeToCookies } from '@/themes/theme' |
|
import CONFIG from '../config' |
|
import { siteConfig } from '@/lib/config' |
|
|
|
export default function FloatDarkModeButton () { |
|
const { isDarkMode, updateDarkMode } = useGlobal() |
|
|
|
if (!siteConfig('NEXT_WIDGET_DARK_MODE', null, CONFIG)) { |
|
return <></> |
|
} |
|
|
|
|
|
const handleChangeDarkMode = () => { |
|
const newStatus = !isDarkMode |
|
saveDarkModeToCookies(newStatus) |
|
updateDarkMode(newStatus) |
|
const htmlElement = document.getElementsByTagName('html')[0] |
|
htmlElement.classList?.remove(newStatus ? 'light' : 'dark') |
|
htmlElement.classList?.add(newStatus ? 'dark' : 'light') |
|
} |
|
|
|
return ( |
|
<div |
|
onClick={handleChangeDarkMode} |
|
className={ ' text-black dark:border-gray-500 flex justify-center items-center dark:text-gray-200 py-2 px-3' |
|
} |
|
> |
|
<i |
|
id="darkModeButton" |
|
className={`${isDarkMode ? 'fa-sun' : 'fa-moon'} fas hover:scale-150 transform duration-200`} |
|
/> |
|
</div> |
|
) |
|
} |
|
|