'use client'; import { Languages } from 'lucide-react'; import { useLocale } from 'next-intl'; import { Button } from '@/components/ui/button'; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger, } from '@/components/ui/dropdown-menu'; import { localeLabels, locales, type AppLocale } from '@/i18n/config'; import { switchLocale } from '@/i18n/client'; import { cn } from '@/lib/utils'; type LanguageSwitcherProps = { variant?: 'icon' | 'full'; className?: string; }; export function LanguageSwitcher({ variant = 'icon', className, }: LanguageSwitcherProps) { const locale = useLocale() as AppLocale; if (variant === 'full') { return (
{locales.map((item) => ( ))}
); } return ( {locales.map((item) => ( { if (item !== locale) switchLocale(item); }} className={item === locale ? 'bg-accent' : undefined} > {localeLabels[item]} ))} ); }