diff --git a/src/components/Dashboard/common/ObjectForm.jsx b/src/components/Dashboard/common/ObjectForm.jsx index 7227d4ef..0b106dda 100644 --- a/src/components/Dashboard/common/ObjectForm.jsx +++ b/src/components/Dashboard/common/ObjectForm.jsx @@ -770,17 +770,24 @@ const ObjectForm = forwardRef( isEditingRef.current = true setIsEditing(true) - const computedEntries = calculateComputedValues(objectData, model) - const nextObjectData = { - ...applyComputedEntries(objectData, computedEntries), - _isEditing: true + // Prefer the fetched snapshot over a stale objectData closure + // (?action=edit can start before fetch finishes). + const baseData = serverObjectData.current + if (baseData) { + const computedEntries = calculateComputedValues(baseData, model) + const nextObjectData = { + ...applyComputedEntries(baseData, computedEntries), + _isEditing: true + } + setObjectData(nextObjectData) + onStateChangeRef.current({ + isEditing: true, + objectData: nextObjectData, + editDisabled: getEditDisabled(model, nextObjectData, userProfile) + }) + } else { + onStateChangeRef.current({ isEditing: true }) } - setObjectData(nextObjectData) - onStateChangeRef.current({ - isEditing: true, - objectData: nextObjectData, - editDisabled: getEditDisabled(model, nextObjectData, userProfile) - }) } catch (err) { console.error(err) showError(