in helper/src/components/portalnav.js [182:206]
function updateTabValues(currenttabValues, sections, sectionKey, cardKey) {
//console.log(`updateTabValues`)
const card_values = sections.find(s => s.key === sectionKey).cards.find(c => c.key === cardKey).values
//console.log(`updateTabValues: sectionKey=${sectionKey} cardKey=${cardKey}, setting tabs ${JSON.stringify(Object.keys(card_values))}`)
return Object.keys(card_values).reduce((acc, curr) => {
return {
...acc,
[curr]: {
...acc[curr],
// resolve conditional params
...Object.keys(card_values[curr]).reduce((a, c) => {
const val = card_values[curr][c]
//console.log (`updateTabValues: looking for conditional value=${JSON.stringify(val)}`)
// if value is array with at least 1 element with a object that has a properly 'set'
const targetVal = Array.isArray(val) && val.length > 0 && typeof val[0] === 'object' && val[0].hasOwnProperty("set") ?
val.reduce((a, c) => a === undefined ? (c.page && c.field ? (currenttabValues[c.page][c.field] === c.value ? c.set : undefined) : c.set) : a, undefined)
:
val
//console.log(`updateTabValues: setting tab=${curr}, field=${c} val=${JSON.stringify(val)} targetVal=${JSON.stringify(targetVal)}`)
return { ...a, [c]: targetVal }
}, {})
}
}
}, currenttabValues)
}