fix(ui): unique ids for nested rows on row duplicate to prevent errors with postgres (#8790)
Fixes https://github.com/payloadcms/payload/issues/8784 This works for any deep level, both arrays and blocks.
This commit is contained in:
@@ -263,6 +263,15 @@ export function fieldReducer(state: FormState, action: FieldAction): FormState {
|
||||
duplicateRowState.id.initialValue = new ObjectId().toHexString()
|
||||
}
|
||||
|
||||
for (const key of Object.keys(duplicateRowState).filter((key) => key.endsWith('.id'))) {
|
||||
const idState = duplicateRowState[key]
|
||||
|
||||
if (idState && typeof idState.value === 'string' && ObjectId.isValid(idState.value)) {
|
||||
duplicateRowState[key].value = new ObjectId().toHexString()
|
||||
duplicateRowState[key].initialValue = new ObjectId().toHexString()
|
||||
}
|
||||
}
|
||||
|
||||
// If there are subfields
|
||||
if (Object.keys(duplicateRowState).length > 0) {
|
||||
// Add new object containing subfield names to unflattenedRows array
|
||||
|
||||
Reference in New Issue
Block a user