diff --git a/web/src/components/config-form/theme/fields/DetectorHardwareField.tsx b/web/src/components/config-form/theme/fields/DetectorHardwareField.tsx index 3eab4fdb3..1e097c691 100644 --- a/web/src/components/config-form/theme/fields/DetectorHardwareField.tsx +++ b/web/src/components/config-form/theme/fields/DetectorHardwareField.tsx @@ -532,10 +532,19 @@ export function DetectorHardwareField(props: FieldProps) { const globalHidden = buildHiddenUiSchema(globalHiddenFields); const hiddenOverrides = buildHiddenUiSchema(hiddenByType[type] ?? []); const typeHidden = { type: { "ui:widget": "hidden" } } as UiSchema; + const nestedOverrides = { + "ui:options": { + disableNestedCard: true, + }, + } as UiSchema; const withGlobalHidden = mergeUiSchema(baseUiSchema, globalHidden); const withTypeHidden = mergeUiSchema(withGlobalHidden, hiddenOverrides); - return mergeUiSchema(withTypeHidden, typeHidden); + const withTypeHiddenAndOptions = mergeUiSchema( + withTypeHidden, + typeHidden, + ); + return mergeUiSchema(withTypeHiddenAndOptions, nestedOverrides); }, [globalHiddenFields, hiddenByType, uiSchema?.additionalProperties], ); @@ -785,12 +794,7 @@ export function DetectorHardwareField(props: FieldProps) { -
+
{renderInstanceForm(key, value)}
diff --git a/web/src/components/config-form/theme/templates/ObjectFieldTemplate.tsx b/web/src/components/config-form/theme/templates/ObjectFieldTemplate.tsx index bd06e4a29..7551c5733 100644 --- a/web/src/components/config-form/theme/templates/ObjectFieldTemplate.tsx +++ b/web/src/components/config-form/theme/templates/ObjectFieldTemplate.tsx @@ -56,6 +56,8 @@ export function ObjectFieldTemplate(props: ObjectFieldTemplateProps) { const groupDefinitions = (uiSchema?.["ui:groups"] as Record | undefined) || {}; + const disableNestedCard = + uiSchema?.["ui:options"]?.disableNestedCard === true; const isHiddenProp = (prop: (typeof properties)[number]) => prop.content.props.uiSchema?.["ui:widget"] === "hidden"; @@ -250,6 +252,36 @@ export function ObjectFieldTemplate(props: ObjectFieldTemplateProps) { ); } + if (disableNestedCard) { + return ( +
+ {hasCustomChildren ? ( + children + ) : ( + <> + {renderGroupedFields(regularProps)} + + + + {renderGroupedFields(advancedProps)} + + + )} +
+ ); + } + // Nested objects render as collapsible cards return (