| import Button from '@/components/ui/Button' | |
| import useTheme from '@/hooks/useTheme' | |
| import { MoonIcon, SunIcon } from 'lucide-react' | |
| import { useCallback } from 'react' | |
| import { controlButtonVariant } from '@/lib/constants' | |
| /** | |
| * Component that toggles the theme between light and dark. | |
| */ | |
| export default function ThemeToggle() { | |
| const { theme, setTheme } = useTheme() | |
| const setLight = useCallback(() => setTheme('light'), [setTheme]) | |
| const setDark = useCallback(() => setTheme('dark'), [setTheme]) | |
| if (theme === 'dark') { | |
| return ( | |
| <Button | |
| onClick={setLight} | |
| variant={controlButtonVariant} | |
| tooltip="Switch to light theme" | |
| size="icon" | |
| side="bottom" | |
| > | |
| <MoonIcon /> | |
| </Button> | |
| ) | |
| } | |
| return ( | |
| <Button | |
| onClick={setDark} | |
| variant={controlButtonVariant} | |
| tooltip="Switch to dark theme" | |
| size="icon" | |
| side="bottom" | |
| > | |
| <SunIcon /> | |
| </Button> | |
| ) | |
| } | |