46 lines
1.3 KiB
TypeScript
46 lines
1.3 KiB
TypeScript
"use client";
|
|
|
|
import { useLanguage } from "@/context/language-context";
|
|
import { usePathname, useRouter } from "next/navigation";
|
|
import {
|
|
DropdownMenu,
|
|
DropdownMenuContent,
|
|
DropdownMenuItem,
|
|
DropdownMenuTrigger,
|
|
} from "./ui/dropdown-menu";
|
|
import { Globe } from "lucide-react";
|
|
|
|
export default function LanguageSwitcher() {
|
|
const { language, setLanguage } = useLanguage();
|
|
const languages = [
|
|
{ code: "uz" as const, name: "O'zbekcha" },
|
|
{ code: "ru" as const, name: "Русский" },
|
|
];
|
|
return (
|
|
<div>
|
|
<DropdownMenu>
|
|
<DropdownMenuTrigger asChild>
|
|
<button className="flex items-center gap-1 hover:text-primary transition-colors">
|
|
<Globe size={16} />
|
|
{language.toUpperCase()}
|
|
</button>
|
|
</DropdownMenuTrigger>
|
|
<DropdownMenuContent
|
|
align="end"
|
|
className="bg-slate-800 border-slate-700"
|
|
>
|
|
{languages.map((lang) => (
|
|
<DropdownMenuItem
|
|
key={lang.code}
|
|
onClick={() => setLanguage(lang.code)}
|
|
className="cursor-pointer hover:bg-slate-700 text-white"
|
|
>
|
|
{lang.name}
|
|
</DropdownMenuItem>
|
|
))}
|
|
</DropdownMenuContent>
|
|
</DropdownMenu>
|
|
</div>
|
|
);
|
|
}
|