import { useState, useEffect } from 'react' import { mdiWeatherSunny, mdiWeatherNight } from '@mdi/js' import Icon from '@mdi/react' const LIGHT_THEME = 'light' const DARK_THEME = 'dark' const ThemeToggle = () => { const [theme, setTheme] = useState( (localStorage.getItem('theme') ?? window.matchMedia('(prefers-color-scheme: dark)').matches) ? DARK_THEME : LIGHT_THEME ) const handleToggle = (e: React.ChangeEvent) => { if (e.target.checked) setTheme(DARK_THEME) else setTheme(LIGHT_THEME) } useEffect(() => { localStorage.setItem('theme', theme) document .querySelector('html') .setAttribute('data-theme', localStorage.getItem('theme')) document .querySelector('html') .setAttribute('data-uppy-theme', localStorage.getItem('theme')) }, [theme]) return ( // eslint-disable-next-line jsx-a11y/label-has-associated-control ) } export default ThemeToggle