blob: 38dc152032aeaad1ddd86d451057a2238389e831 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
|
"use client";
import { useTranslation } from "@/lib/i18n/client";
import { useInterfaceLang } from "@/lib/userLocalSettings/bookmarksLayout";
import { updateInterfaceLang } from "@/lib/userLocalSettings/userLocalSettings";
import { langNameMappings } from "@hoarder/shared/langs";
import { Label } from "../ui/label";
import {
Select,
SelectContent,
SelectItem,
SelectTrigger,
SelectValue,
} from "../ui/select";
const LanguageSelect = () => {
const lang = useInterfaceLang();
return (
<Select
value={lang}
onValueChange={async (val) => {
await updateInterfaceLang(val);
}}
>
<SelectTrigger>
<SelectValue />
</SelectTrigger>
<SelectContent>
{Object.entries(langNameMappings).map(([lang, name]) => (
<SelectItem key={lang} value={lang}>
{name}
</SelectItem>
))}
</SelectContent>
</Select>
);
};
export function UserOptions() {
const { t } = useTranslation();
return (
<div className="flex flex-col sm:flex-row">
<div className="mb-4 w-full text-lg font-medium sm:w-1/3">
{t("settings.info.options")}
</div>
<div className="flex w-full flex-col gap-2">
<Label>{t("settings.info.interface_lang")}</Label>
<LanguageSelect />
</div>
</div>
);
}
|