gitscope
https://dev.kronoz.win/r/marzneshin.git
dashboard/src/features/language-switch/index.tsx · v0.5.1
Source
1 1c0d1b7 Dawsh 2y ago import {
2 3c1143b Mardin 2y ago DropdownMenuSub,
3 3c1143b Mardin 2y ago DropdownMenuSubContent,
4 1c0d1b7 Dawsh 2y ago DropdownMenuItem,
5 3c1143b Mardin 2y ago DropdownMenuSubTrigger,
6 3c1143b Mardin 2y ago DropdownMenuPortal
7 1c0d1b7 Dawsh 2y ago } from "@marzneshin/components";
8 3b7feef Mrdn 2y ago import { Languages } from "lucide-react";
9 3b7feef Mrdn 2y ago import { FC } from "react";
10 3b7feef Mrdn 2y ago import { useTranslation } from "react-i18next";
11 3c1143b Mardin 2y ago import { cn } from "@marzneshin/utils";
12 3b7feef Mrdn 2y ago
13 3c1143b Mardin 2y ago const LanguageItem = ({ language, title }: { language: string, title: string }) => {
14 1c0d1b7 Dawsh 2y ago const { i18n } = useTranslation();
15 3b7feef Mrdn 2y ago
16 1c0d1b7 Dawsh 2y ago const changeLanguage = (lang: string) => {
17 1c0d1b7 Dawsh 2y ago i18n.changeLanguage(lang);
18 1c0d1b7 Dawsh 2y ago };
19 3c1143b Mardin 2y ago return (
20 3c1143b Mardin 2y ago <DropdownMenuItem
21 3c1143b Mardin 2y ago className={cn({ "bg-primary text-secondary": i18n.language === language })}
22 3c1143b Mardin 2y ago onClick={() => changeLanguage(language)}
23 3c1143b Mardin 2y ago >
24 3c1143b Mardin 2y ago {title}
25 3c1143b Mardin 2y ago </DropdownMenuItem>
26 3c1143b Mardin 2y ago );
27 3c1143b Mardin 2y ago }
28 3c1143b Mardin 2y ago
29 3c1143b Mardin 2y ago export const LanguageSwitchMenu: FC = () => {
30 3c1143b Mardin 2y ago const { t } = useTranslation();
31 3b7feef Mrdn 2y ago
32 1c0d1b7 Dawsh 2y ago return (
33 3c1143b Mardin 2y ago <DropdownMenuSub>
34 3c1143b Mardin 2y ago <DropdownMenuSubTrigger arrowDir="left">
35 3c1143b Mardin 2y ago <div className="hstack items-center justify-end">
36 3c1143b Mardin 2y ago <span className="mx-1">{t("language")}</span>
37 3c1143b Mardin 2y ago <Languages className="size-[1rem]" />
38 3c1143b Mardin 2y ago </div>
39 3c1143b Mardin 2y ago </DropdownMenuSubTrigger>
40 3c1143b Mardin 2y ago <DropdownMenuPortal>
41 3c1143b Mardin 2y ago <DropdownMenuSubContent>
42 3c1143b Mardin 2y ago <LanguageItem language="en" title="English" />
43 3c1143b Mardin 2y ago <LanguageItem language="kmr" title="Kurdî Kurmancî" />
44 3c1143b Mardin 2y ago <LanguageItem language="kur" title="Kurdî Soranî" />
45 3c1143b Mardin 2y ago <LanguageItem language="ckb" title="کوردی سورانی" />
46 3c1143b Mardin 2y ago <LanguageItem language="fa" title="فارسی" />
47 3c1143b Mardin 2y ago <LanguageItem language="ru" title="Русский" />
48 3c1143b Mardin 2y ago </DropdownMenuSubContent>
49 3c1143b Mardin 2y ago </DropdownMenuPortal>
50 3c1143b Mardin 2y ago </DropdownMenuSub>
51 1c0d1b7 Dawsh 2y ago );
52 3b7feef Mrdn 2y ago };