import { useTranslation } from "react-i18next" import { toast } from "sonner" import { Checkbox } from "@/components/ui/checkbox" import { Label } from "@/components/ui/label" import { settingsStoreActions, useAppStore } from "@/store" import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from "@/components/ui/select" import { Switch } from "@/components/ui/switch" import { SettingsRow } from "./settings-row" import { useSettingsSave } from "./use-settings-save" import { defaultSettingsConfig, settingsAppearance, } from "./utils" interface SettingsSectionAppearanceProps { isMac: boolean isItemVisible: (itemId: string) => boolean } export function SettingsSectionAppearance({ isMac, isItemVisible, }: SettingsSectionAppearanceProps) { const { t } = useTranslation() const appConfig = useAppStore.use.appConfig() const providers = useAppStore.use.providers() const settingsConfig = appConfig?.settings ?? defaultSettingsConfig const visiblePicBedNames = (appConfig?.picBed.list ?? []) .filter((provider) => provider.visible !== false) .map((provider) => provider.name) const saveSettingsConfig = useSettingsSave() const handleVisibleProviderChange = async ( providerName: string, nextChecked: boolean ) => { const nextNames = nextChecked ? Array.from(new Set([...visiblePicBedNames, providerName])) : visiblePicBedNames.filter((name) => name !== providerName) try { await settingsStoreActions.saveVisiblePicBedNames(nextNames) toast.success(t("TIPS_SET_SUCCEED")) } catch (error) { toast.error(error instanceof Error ? error.message : t("FAILED")) } } return (
} /> ) }