'use client';
import { useTheme } from 'next-themes';
import { Moon, Sun } from '@phosphor-icons/react';
import { useLayoutEffect, useState } from 'react';
import { useTranslations } from 'next-intl';
import { cn } from '@/lib/utils';
interface ThemeToggleProps {
className?: string;
}
export function ThemeToggle({ className }: ThemeToggleProps) {
const { theme, setTheme } = useTheme();
const [mounted, setMounted] = useState(false);
const t = useTranslations('common');
// Required for hydration mismatch prevention -- theme is unknown during SSR
/* eslint-disable react-hooks/set-state-in-effect */
useLayoutEffect(() => {
setMounted(true);
}, []);
/* eslint-enable react-hooks/set-state-in-effect */
if (!mounted) {
return (
);
}
const isDark = theme === 'dark';
return (
);
}