Correctly set initial values when registering fields in forms

This commit is contained in:
Andrew Kingston 2021-06-09 12:29:27 +01:00
parent 0ed9cfc939
commit 8ab567e64c
1 changed files with 4 additions and 12 deletions

View File

@ -42,18 +42,6 @@
// Auto columns are always disabled // Auto columns are always disabled
const isAutoColumn = !!schema?.[field]?.autocolumn const isAutoColumn = !!schema?.[field]?.autocolumn
if (fieldMap[field] != null) {
// Update disabled property just so that toggling the disabled field
// state in the builder makes updates in real time.
// We only need this because of optimisations which prevent fully
// remounting when settings change.
fieldMap[field].fieldState.update(state => {
state.disabled = disabled || fieldDisabled || isAutoColumn
return state
})
return fieldMap[field]
}
// Create validation function based on field schema // Create validation function based on field schema
const constraints = schema?.[field]?.constraints const constraints = schema?.[field]?.constraints
const validate = createValidatorFromConstraints(constraints, field, table) const validate = createValidatorFromConstraints(constraints, field, table)
@ -67,6 +55,10 @@
fieldApi: makeFieldApi(field, defaultValue, validate), fieldApi: makeFieldApi(field, defaultValue, validate),
fieldSchema: schema?.[field] ?? {}, fieldSchema: schema?.[field] ?? {},
} }
// Set initial value
fieldMap[field].fieldApi.setValue(defaultValue, true)
return fieldMap[field] return fieldMap[field]
}, },
validate: () => { validate: () => {