import { useState, useRef, useCallback } from 'react'; import { useTheme } from '../lib/theme'; import { useI18n, type TranslationKey } from '../lib/i18n'; import { useClickOutside } from '../hooks/useClickOutside'; const themes: Array<{ key: 'light' | 'dark' | 'system'; icon: JSX.Element }> = [ { key: 'light', icon: ( ), }, { key: 'dark', icon: ( ), }, { key: 'system', icon: ( ), }, ]; export default function ThemeToggle() { const { theme, setTheme } = useTheme(); const { t } = useI18n(); const [open, setOpen] = useState(false); const ref = useRef(null); useClickOutside(ref, useCallback(() => setOpen(false), []), open); const current = themes.find(th => th.key === theme)!; return (
{open && (
{themes.map(th => ( ))}
)}
); }