frosty/web/src/components/ThemeToggle.tsx
Tommy Chow c7d6de8924
Migrate and redesign website (#398)
* add initial web redesign

* add emote marquee

* add faq section

* tweak copy

* tweak faq styles

* update video and style tweaks

* add header links

* fix bg color

* tweak styles

* delete old image

* update metadata and favicon

* add ogimage

* update faq

* upgrade packages
2024-09-15 21:43:51 -07:00

33 lines
791 B
TypeScript

'use client';
import { useTheme } from 'next-themes';
import { useEffect, useState } from 'react';
import { HiMoon, HiSun } from 'react-icons/hi2';
export function ThemeToggle() {
const { resolvedTheme, setTheme } = useTheme();
const [mounted, setMounted] = useState(false);
useEffect(() => {
setMounted(true);
}, []);
if (!mounted) return <div className='size-6' />;
const isDarkMode = resolvedTheme === 'dark';
return (
<button
className='transition-opacity hover:opacity-50'
aria-label={`Toggle ${isDarkMode ? 'light mode' : 'dark mode'}`}
onClick={() => setTheme(isDarkMode ? 'light' : 'dark')}
>
{isDarkMode ? (
<HiSun className='size-6' />
) : (
<HiMoon className='size-6' />
)}
</button>
);
}