| import { Button } from "@/components/ui/button"; | |
| import { useContext } from "react"; | |
| import { LanguageContext } from "@/contexts/LanguageContext"; | |
| import { Language } from "@/i18n/translations"; | |
| import { | |
| DropdownMenu, | |
| DropdownMenuContent, | |
| DropdownMenuItem, | |
| DropdownMenuTrigger, | |
| } from "@/components/ui/dropdown-menu"; | |
| const languages: { code: Language; name: string; flag: string }[] = [ | |
| { code: 'en', name: 'English', flag: '🇬🇧' }, | |
| { code: 'fr', name: 'Français', flag: '🇫🇷' }, | |
| { code: 'de', name: 'Deutsch', flag: '🇩🇪' }, | |
| { code: 'it', name: 'Italiano', flag: '🇮🇹' }, | |
| { code: 'es', name: 'Español', flag: '🇪🇸' }, | |
| { code: 'pt', name: 'Português', flag: '🇵🇹' }, | |
| ]; | |
| export const LanguageSelector = () => { | |
| const { language, setLanguage } = useContext(LanguageContext); | |
| console.log('[LanguageSelector] Current language:', language); | |
| const handleLanguageChange = (code: Language) => { | |
| console.log('[LanguageSelector] Language button clicked:', code); | |
| setLanguage(code); | |
| }; | |
| const currentLanguage = languages.find(lang => lang.code === language); | |
| return ( | |
| <DropdownMenu> | |
| <DropdownMenuTrigger asChild> | |
| <Button variant="outline" size="sm" > | |
| <span className="text-xl">{currentLanguage?.flag}</span> | |
| </Button> | |
| </DropdownMenuTrigger> | |
| <DropdownMenuContent align="end"> | |
| {languages.map(({ code, name, flag }) => ( | |
| <DropdownMenuItem | |
| key={code} | |
| onClick={() => handleLanguageChange(code)} | |
| className="cursor-pointer" | |
| > | |
| <span className="mr-2">{flag}</span> | |
| <span>{name}</span> | |
| </DropdownMenuItem> | |
| ))} | |
| </DropdownMenuContent> | |
| </DropdownMenu> | |
| ); | |
| }; |