import { observer } from "mobx-react-lite"; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@/components/ui/select"; import { Separator } from "@/components/ui/separator"; import { userStore } from "@/store"; import { Visibility } from "@/types/proto/api/v1/memo_service"; import { UserSetting_GeneralSetting } from "@/types/proto/api/v1/user_service"; import { useTranslate } from "@/utils/i18n"; import { convertVisibilityFromString, convertVisibilityToString } from "@/utils/memo"; import LocaleSelect from "../LocaleSelect"; import MapTileLayerProviderSelect from "../MapTileLayerProviderSelect"; import ThemeSelect from "../ThemeSelect"; import VisibilityIcon from "../VisibilityIcon"; import WebhookSection from "./WebhookSection"; const PreferencesSection = observer(() => { const t = useTranslate(); const generalSetting = userStore.state.userGeneralSetting; const handleLocaleSelectChange = async (locale: Locale) => { await userStore.updateUserGeneralSetting({ locale }, ["locale"]); }; const handleDefaultMemoVisibilityChanged = async (value: string) => { await userStore.updateUserGeneralSetting({ memoVisibility: value }, ["memoVisibility"]); }; const handleThemeChange = async (theme: string) => { await userStore.updateUserGeneralSetting({ theme }, ["theme"]); }; const handleMapApiProviderChange = async (mapApiProvider: string) => { await userStore.updateUserGeneralSetting({ mapTileLayerProvider: mapApiProvider }, ["mapTileLayerProvider"]); }; // Provide default values if setting is not loaded yet const setting: UserSetting_GeneralSetting = generalSetting || { locale: "en", memoVisibility: "PRIVATE", theme: "default", mapTileLayerProvider: "", }; return (
{t("common.basic")}
{t("setting.preference")}