diff --git a/pkg/webui/console/components/mac-settings-section/index.js b/pkg/webui/console/components/mac-settings-section/index.js index a6faf3e57d..bdbf6e133d 100644 --- a/pkg/webui/console/components/mac-settings-section/index.js +++ b/pkg/webui/console/components/mac-settings-section/index.js @@ -193,9 +193,9 @@ const MacSettingsSection = props => { } }, [handleIsCollapsedChange, isABP, isClassB, isCollapsed, isMulticast, pingPeriodicityRequired]) - const adrOverrides = mac_settings.adr.dynamic.overrides - const showEditNbTrans = !values.mac_settings?.adr.dynamic._use_default_nb_trans - const defaultNbTransDisabled = !values.mac_settings?.adr.dynamic._override_nb_trans_defaults + const adrOverrides = mac_settings.adr.dynamic?.overrides + const showEditNbTrans = !values.mac_settings.adr.dynamic?._use_default_nb_trans + const defaultNbTransDisabled = !values.mac_settings.adr.dynamic?._override_nb_trans_defaults const addOverride = React.useCallback(() => { const newOverride = { _data_rate_index: '', min_nb_trans: '', max_nb_trans: '' } setFieldValue( diff --git a/pkg/webui/console/views/device-general-settings/network-server-form/index.js b/pkg/webui/console/views/device-general-settings/network-server-form/index.js index 730051c7ad..2a65ce1864 100644 --- a/pkg/webui/console/views/device-general-settings/network-server-form/index.js +++ b/pkg/webui/console/views/device-general-settings/network-server-form/index.js @@ -247,13 +247,19 @@ const NetworkServerForm = React.memo(props => { ...defaultValues.mac_settings, ...macSettings, ...device.mac_settings, - adr: { - dynamic: { - ...device.mac_settings?.adr?.dynamic, - min_nb_trans: device.mac_settings?.adr?.dynamic?.min_nb_trans ?? null, - max_nb_trans: device.mac_settings?.adr?.dynamic?.max_nb_trans ?? null, - }, - }, + adr: Boolean(device.mac_settings?.adr?.dynamic) + ? { + dynamic: { + ...device.mac_settings?.adr?.dynamic, + min_nb_trans: device.mac_settings?.adr?.dynamic?.min_nb_trans ?? null, + max_nb_trans: device.mac_settings?.adr?.dynamic?.max_nb_trans ?? null, + }, + } + : { + ...defaultValues.mac_settings.adr, + ...macSettings.adr, + ...device.mac_settings?.adr, + }, }, }, { context: validationContext, stripUnknown: true }, @@ -282,7 +288,10 @@ const NetworkServerForm = React.memo(props => { async (values, { resetForm, setSubmitting }) => { let parsedValues = values // If the nbTrans values are not overridden, remove them from the payload. - if (!values.mac_settings?.adr.dynamic._override_nb_trans_defaults) { + if ( + 'dynamic' in values.mac_settings?.adr && + !('_override_nb_trans_defaults' in values.mac_settings?.adr.dynamic) + ) { const { max_nb_trans, min_nb_trans, ...rest } = parsedValues.mac_settings?.adr.dynamic parsedValues = { ...parsedValues,