72 lines
2 KiB
TypeScript
72 lines
2 KiB
TypeScript
import { Button } from "@/components/ui/button";
|
||
import {
|
||
DropdownMenu,
|
||
DropdownMenuContent,
|
||
DropdownMenuLabel,
|
||
DropdownMenuRadioGroup,
|
||
DropdownMenuRadioItem,
|
||
DropdownMenuSeparator,
|
||
DropdownMenuTrigger,
|
||
} from "@/components/ui/dropdown-menu";
|
||
|
||
export default function ToggleLanguage() {
|
||
return (
|
||
<DropdownMenu dir="rtl">
|
||
<DropdownMenuTrigger asChild>
|
||
<Button variant="outline" className="flex items-center gap-2">
|
||
<GlobeIcon className="h-4 w-4" />
|
||
<span className="md:block hidden">فارسی</span>
|
||
<ChevronDownIcon className="md:block hidden h-4 w-4" />
|
||
</Button>
|
||
</DropdownMenuTrigger>
|
||
<DropdownMenuContent align="end" className="w-[180px]">
|
||
<DropdownMenuLabel>انتخاب زبان</DropdownMenuLabel>
|
||
<DropdownMenuSeparator />
|
||
<DropdownMenuRadioGroup dir="ltr" defaultValue="en">
|
||
<DropdownMenuRadioItem value="en">English</DropdownMenuRadioItem>
|
||
<DropdownMenuRadioItem value="fa">فارسی</DropdownMenuRadioItem>
|
||
</DropdownMenuRadioGroup>
|
||
</DropdownMenuContent>
|
||
</DropdownMenu>
|
||
);
|
||
}
|
||
|
||
function ChevronDownIcon(props: React.SVGProps<SVGSVGElement>) {
|
||
return (
|
||
<svg
|
||
{...props}
|
||
xmlns="http://www.w3.org/2000/svg"
|
||
width="24"
|
||
height="24"
|
||
viewBox="0 0 24 24"
|
||
fill="none"
|
||
stroke="currentColor"
|
||
strokeWidth="2"
|
||
strokeLinecap="round"
|
||
strokeLinejoin="round"
|
||
>
|
||
<path d="m6 9 6 6 6-6" />
|
||
</svg>
|
||
);
|
||
}
|
||
|
||
function GlobeIcon(props: React.SVGProps<SVGSVGElement>) {
|
||
return (
|
||
<svg
|
||
{...props}
|
||
xmlns="http://www.w3.org/2000/svg"
|
||
width="24"
|
||
height="24"
|
||
viewBox="0 0 24 24"
|
||
fill="none"
|
||
stroke="currentColor"
|
||
strokeWidth="2"
|
||
strokeLinecap="round"
|
||
strokeLinejoin="round"
|
||
>
|
||
<circle cx="12" cy="12" r="10" />
|
||
<path d="M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20" />
|
||
<path d="M2 12h20" />
|
||
</svg>
|
||
);
|
||
}
|