Refactor NewObjectForm to use merge for setting object data, ensuring computed values are correctly integrated with previous state.

This commit is contained in:
Tom Butcher 2025-11-17 18:47:09 +00:00
parent b9271d999f
commit 1f85145b67

View File

@ -61,9 +61,10 @@ const NewObjectForm = ({ type, style, defaultValues = {}, children }) => {
// Calculate computed values for initial data // Calculate computed values for initial data
const computedValues = calculateComputedValues(defaultValues, model) const computedValues = calculateComputedValues(defaultValues, model)
const initialFormData = { ...defaultValues, ...computedValues } const initialFormData = { ...defaultValues, ...computedValues }
form.setFieldsValue(initialFormData) form.setFieldsValue(initialFormData)
setObjectData(initialFormData) setObjectData((prev) => {
return merge({}, prev, initialFormData)
})
} }
}, [form, defaultValues, calculateComputedValues, model]) }, [form, defaultValues, calculateComputedValues, model])
@ -113,7 +114,6 @@ const NewObjectForm = ({ type, style, defaultValues = {}, children }) => {
// Merge all values (user input + computed values) // Merge all values (user input + computed values)
const allValues = { ...values, ...computedValues } const allValues = { ...values, ...computedValues }
setObjectData((prev) => { setObjectData((prev) => {
return merge({}, prev, allValues) return merge({}, prev, allValues)
}) })