fix(edit-pages): resolve custom field display race condition
The init watcher destructured currentType/currentStructure before setting selectedTypeId, so the values were stale (null). This caused refreshCustomFieldInputs to receive null structure → empty definitions, permanently wiping custom field display on piece and component edit pages. Read selectedType.value / selectedTypeStructure.value after setting the ID so the computed is already updated. Also remove the guard on the piece selectedType watcher that prevented recovery. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -803,7 +803,9 @@ watch(
|
|||||||
void ensureConstructeurs(editionForm.constructeurIds)
|
void ensureConstructeurs(editionForm.constructeurIds)
|
||||||
}
|
}
|
||||||
|
|
||||||
refreshCustomFieldInputs(currentStructure, currentComponent.customFieldValues)
|
// After setting selectedTypeId, read selectedTypeStructure.value (now updated) instead of
|
||||||
|
// the stale destructured currentStructure which was captured before the ID change.
|
||||||
|
refreshCustomFieldInputs(selectedTypeStructure.value ?? currentStructure, currentComponent.customFieldValues)
|
||||||
|
|
||||||
initialized = true
|
initialized = true
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -837,7 +837,10 @@ watch(
|
|||||||
pendingProductIds = []
|
pendingProductIds = []
|
||||||
}
|
}
|
||||||
|
|
||||||
refreshCustomFieldInputs(currentType?.structure ?? null, currentPiece.customFieldValues)
|
// After setting selectedTypeId, read selectedType.value (now updated) instead of
|
||||||
|
// the stale destructured currentType which was captured before the ID change.
|
||||||
|
const resolvedType = selectedType.value ?? pieceTypeDetails.value ?? null
|
||||||
|
refreshCustomFieldInputs(resolvedType?.structure ?? null, currentPiece.customFieldValues)
|
||||||
|
|
||||||
initialized = true
|
initialized = true
|
||||||
},
|
},
|
||||||
@@ -848,9 +851,7 @@ watch(selectedType, (currentType) => {
|
|||||||
if (!piece.value || !currentType) {
|
if (!piece.value || !currentType) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if (!pieceTypeDetails.value) {
|
refreshCustomFieldInputs(currentType.structure, piece.value.customFieldValues)
|
||||||
refreshCustomFieldInputs(currentType.structure, piece.value.customFieldValues)
|
|
||||||
}
|
|
||||||
})
|
})
|
||||||
|
|
||||||
watch(resolvedStructure, (currentStructure) => {
|
watch(resolvedStructure, (currentStructure) => {
|
||||||
|
|||||||
Reference in New Issue
Block a user