From 074876671313232766c12793bc6c626ffecf7247 Mon Sep 17 00:00:00 2001 From: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com> Date: Thu, 12 Mar 2026 10:56:08 -0500 Subject: [PATCH] hide restart-required fields when editing a profile section fields that require a restart cannot take effect via profile switching, so they are merged into hiddenFields when profileName is set --- .../config-form/sections/BaseSection.tsx | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/web/src/components/config-form/sections/BaseSection.tsx b/web/src/components/config-form/sections/BaseSection.tsx index 9918836bd..dd88f9d19 100644 --- a/web/src/components/config-form/sections/BaseSection.tsx +++ b/web/src/components/config-form/sections/BaseSection.tsx @@ -335,10 +335,20 @@ export function ConfigSection({ return rawSectionValue; }, [config, rawSectionValue]); + // When editing a profile, hide fields that require a restart since they + // cannot take effect via profile switching alone. + const effectiveHiddenFields = useMemo(() => { + if (!profileName || !sectionConfig.restartRequired?.length) { + return sectionConfig.hiddenFields; + } + const base = sectionConfig.hiddenFields ?? []; + return [...new Set([...base, ...sectionConfig.restartRequired])]; + }, [profileName, sectionConfig.hiddenFields, sectionConfig.restartRequired]); + const sanitizeSectionData = useCallback( (data: ConfigSectionData) => - sharedSanitizeSectionData(data, sectionConfig.hiddenFields), - [sectionConfig.hiddenFields], + sharedSanitizeSectionData(data, effectiveHiddenFields), + [effectiveHiddenFields], ); const formData = useMemo(() => { @@ -850,7 +860,7 @@ export function ConfigSection({ onValidationChange={setHasValidationErrors} fieldOrder={sectionConfig.fieldOrder} fieldGroups={sectionConfig.fieldGroups} - hiddenFields={sectionConfig.hiddenFields} + hiddenFields={effectiveHiddenFields} advancedFields={sectionConfig.advancedFields} liveValidate={sectionConfig.liveValidate} uiSchema={sectionConfig.uiSchema} @@ -889,7 +899,7 @@ export function ConfigSection({ renderers: wrappedRenderers, sectionDocs: sectionConfig.sectionDocs, fieldDocs: sectionConfig.fieldDocs, - hiddenFields: sectionConfig.hiddenFields, + hiddenFields: effectiveHiddenFields, restartRequired: sectionConfig.restartRequired, requiresRestart, }}