mirror of
http://88.130.71.182:3000/BlitTech/badoHair_fe.git
synced 2026-06-13 10:41:11 +00:00
41 lines
1.4 KiB
TypeScript
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>
|
|
);
|
|
}
|