Files
badoHair_fe/components/LanguageSwitcher.tsx
2026-05-12 00:28:37 +00:00

41 lines
1.4 KiB
TypeScript

import { Globe } from "lucide-react";
import { useLanguage, Language } from "@/contexts/LanguageContext";
import {
DropdownMenu,
DropdownMenuContent,
DropdownMenuItem,
DropdownMenuTrigger,
} from "@/components/ui/dropdown-menu";
const languages: { code: Language; label: string; flag: string }[] = [
{ code: "fr", label: "Français", flag: "🇫🇷" },
{ code: "de", label: "Deutsch", flag: "🇩🇪" },
{ code: "en", label: "English", flag: "🇬🇧" },
];
export default function LanguageSwitcher() {
const { language, setLanguage } = useLanguage();
const current = languages.find((l) => l.code === language);
return (
<DropdownMenu>
<DropdownMenuTrigger className="flex items-center gap-1.5 p-2 text-muted-foreground hover:text-foreground transition-colors text-sm cursor-pointer">
<Globe className="h-4 w-4" />
<span className="hidden sm:inline">{current?.flag}</span>
</DropdownMenuTrigger>
<DropdownMenuContent align="end">
{languages.map((lang) => (
<DropdownMenuItem
key={lang.code}
onClick={() => setLanguage(lang.code)}
className={language === lang.code ? "bg-accent" : ""}
>
<span className="mr-2">{lang.flag}</span>
{lang.label}
</DropdownMenuItem>
))}
</DropdownMenuContent>
</DropdownMenu>
);
}