import { Toggle } from '@components/Form'; import { MoonIcon, SunIcon } from '@components/Icons'; import Spinner from '@components/Spinner/Spinner'; import { usePrismTheme } from '@utils/providers/prism'; import { useEffect, useState } from 'react'; import { useIntl } from 'react-intl'; const PrismThemeToggle = () => { const intl = useIntl(); const [isMounted, setIsMounted] = useState(false); useEffect(() => { setIsMounted(true); }, []); const { theme, setTheme, resolvedTheme } = usePrismTheme(); const [isDarkTheme, setIsDarkTheme] = useState(theme === 'dark'); useEffect(() => { if (theme === 'system') { setIsDarkTheme(resolvedTheme === 'dark'); } else { setIsDarkTheme(theme === 'dark'); } }, [theme, resolvedTheme]); const updateTheme = () => { isDarkTheme ? setTheme('light') : setTheme('dark'); setIsDarkTheme(!isDarkTheme); }; if (!isMounted) return ; return ( } rightChoice={} value={isDarkTheme} changeHandler={updateTheme} /> ); }; export default PrismThemeToggle;