import React, { memo, useEffect, useState } from 'react' import PropTypes from 'prop-types' import Helmet from 'react-helmet' import useDarkMode from 'use-dark-mode' import Icon from '../atoms/Icon' import styles from './ThemeSwitch.module.scss' const ThemeToggle = memo(({ dark }) => ( )) ThemeToggle.displayName = 'ThemeToggle' ThemeToggle.propTypes = { dark: PropTypes.bool.isRequired } const ThemeToggleInput = memo(({ dark, toggleDark }) => ( toggleDark()} type="checkbox" name="toggle" value="toggle" aria-describedby="toggle" checked={dark} /> )) ThemeToggleInput.displayName = 'ThemeToggleInput' ThemeToggleInput.propTypes = { dark: PropTypes.bool.isRequired, toggleDark: PropTypes.func.isRequired } const HeadItems = ({ bodyClass, themeColor }) => ( ) HeadItems.propTypes = { bodyClass: PropTypes.string.isRequired, themeColor: PropTypes.string.isRequired } function ThemeSwitch() { const { value, toggle } = useDarkMode(false, { classNameDark: 'dark', classNameLight: 'light' }) const [themeColor, setThemeColor] = useState() const [bodyClass, setBodyClass] = useState() useEffect(() => { setBodyClass(value ? 'dark' : null) setThemeColor(value ? '#1d2224' : '#e7eef4') }, [value]) return ( <> ) } export default memo(ThemeSwitch)