components/NavThemeToggle.tsx
Rama main · réplica de lectura del repositorio original.
'use client';
import { MoonIcon, SunIcon } from '@heroicons/react/24/outline';
import { useTheme } from 'next-themes';
import { useTranslations } from 'next-intl';
import { useEffect, useState } from 'react';
import { Button } from '@/components/ui/button';
const NavThemeToggle = () => {
const { theme, setTheme } = useTheme();
const t = useTranslations('Theme');
const [mounted, setMounted] = useState(false);
useEffect(() => {
setMounted(true);
}, []);
if (!mounted) return null;
return (
<Button
variant="ghost"
size="icon"
onClick={() => setTheme(theme === 'light' ? 'dark' : 'light')}
className="rounded-full"
>
{theme === 'light' ? (
<MoonIcon className="h-5 w-5" />
) : (
<SunIcon className="h-5 w-5" />
)}
<span className="sr-only">{t('toggle')}</span>
</Button>
);
};
export default NavThemeToggle;