Fixing an issue with option fields not being unselectable.
This commit is contained in:
parent
d34a9e12e2
commit
63db4edbbe
|
@ -15,6 +15,7 @@ const {
|
|||
} = require("../../utilities/rowProcessor")
|
||||
const { FieldTypes } = require("../../constants")
|
||||
const { isEqual } = require("lodash")
|
||||
const { cloneDeep } = require("lodash/fp")
|
||||
|
||||
const TABLE_VIEW_BEGINS_WITH = `all${SEPARATOR}${DocumentTypes.TABLE}${SEPARATOR}`
|
||||
|
||||
|
@ -351,10 +352,15 @@ async function validate({ appId, tableId, row, table }) {
|
|||
}
|
||||
const errors = {}
|
||||
for (let fieldName of Object.keys(table.schema)) {
|
||||
const res = validateJs.single(
|
||||
row[fieldName],
|
||||
table.schema[fieldName].constraints
|
||||
)
|
||||
const constraints = cloneDeep(table.schema[fieldName].constraints)
|
||||
// special case for options, need to always allow unselected (null)
|
||||
if (
|
||||
table.schema[fieldName].type === FieldTypes.OPTIONS &&
|
||||
constraints.inclusion
|
||||
) {
|
||||
constraints.inclusion.push(null)
|
||||
}
|
||||
const res = validateJs.single(row[fieldName], constraints)
|
||||
if (res) errors[fieldName] = res
|
||||
}
|
||||
return { valid: Object.keys(errors).length === 0, errors }
|
||||
|
|
|
@ -25,7 +25,7 @@ const TYPE_TRANSFORM_MAP = {
|
|||
},
|
||||
},
|
||||
[FieldTypes.OPTIONS]: {
|
||||
"": "",
|
||||
"": null,
|
||||
[null]: "",
|
||||
[undefined]: undefined,
|
||||
},
|
||||
|
|
Loading…
Reference in New Issue