Skip to content

Commit

Permalink
Merge pull request #7053 from TheThingsNetwork/fix/adr-logic
Browse files Browse the repository at this point in the history
Fix switching between different ADR modes
  • Loading branch information
ryaplots committed Apr 29, 2024
2 parents bc0a0c5 + 2d0c9e0 commit 0975a05
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 11 deletions.
6 changes: 3 additions & 3 deletions pkg/webui/console/components/mac-settings-section/index.js
Expand Up @@ -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(
Expand Down
Expand Up @@ -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 },
Expand Down Expand Up @@ -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,
Expand Down

0 comments on commit 0975a05

Please sign in to comment.