diff --git a/webui/src/features/admin/SystemSettingsPanel.tsx b/webui/src/features/admin/SystemSettingsPanel.tsx index 2742716..d63ebaa 100644 --- a/webui/src/features/admin/SystemSettingsPanel.tsx +++ b/webui/src/features/admin/SystemSettingsPanel.tsx @@ -5,7 +5,7 @@ import { Card } from "@govoplan/core-webui"; import { FormField } from "@govoplan/core-webui"; import { ToggleSwitch } from "@govoplan/core-webui"; import { fetchSystemSettingsDelta, updateSystemSettings, type LanguagePackage, type PrivacyRetentionLimitPermissions, type PrivacyRetentionPolicy, type SystemSettingsDeltaSections, type SystemSettingsItem } from "../../api/admin"; -import { AdminPageLayout, adminErrorMessage, useDeltaWatermarks, useUnsavedDraftGuard } from "@govoplan/core-webui"; +import { AdminPageLayout, AdminSelectionList, adminErrorMessage, useDeltaWatermarks, useUnsavedDraftGuard } from "@govoplan/core-webui"; const DELTA_KEY = "admin:system-settings"; @@ -112,10 +112,8 @@ export default function SystemSettingsPanel({ settings, canWrite, canAccessMaint {setBusy(false);} } - function toggleLanguage(code: string, checked: boolean) { - const enabled = new Set(draft.enabled_language_codes); - if (checked) enabled.add(code); - else enabled.delete(code); + function setEnabledLanguages(selected: string[]) { + const enabled = new Set(selected); const nextEnabled = draft.available_languages.map((item) => item.code).filter((item) => enabled.has(item)); const defaultLocale = nextEnabled.includes(draft.default_locale) ? draft.default_locale : (nextEnabled[0] ?? draft.default_locale); setDraft({ ...draft, enabled_language_codes: nextEnabled, default_locale: defaultLocale }); @@ -159,18 +157,11 @@ export default function SystemSettingsPanel({ settings, canWrite, canAccessMaint -
- {draft.available_languages.map((item) => ( - - ))} -
+ ({ id: item.code, label: item.code.toUpperCase(), description: languageOptionLabel(item), disabled: !canWrite || busy || item.code === draft.default_locale }))} + selected={draft.enabled_language_codes} + onChange={setEnabledLanguages} + />
setPackageDraft({ ...packageDraft, code: event.target.value })} />