1
0
Fork 0
mirror of synced 2024-09-13 07:53:31 +12:00

Ensure single character changes to non-focused fields are properly persisted when changing focused row

This commit is contained in:
Andrew Kingston 2024-05-29 09:59:54 +01:00
parent e1ee233aaf
commit 38c405ff6f

View file

@ -564,7 +564,6 @@ export const initialise = context => {
previousFocusedCellId,
rows,
validation,
focusedCellId,
} = context
// Wipe the row change cache when changing row
@ -582,20 +581,12 @@ export const initialise = context => {
if (!id) {
return
}
// Stop if we changed row
const split = parseCellID(id)
const oldRowId = split.id
const oldColumn = split.field
const { id: newRowId } = parseCellID(get(focusedCellId))
if (oldRowId !== newRowId) {
return
}
// Otherwise we just changed cell in the same row
const hasChanges = oldColumn in (get(rowChangeCache)[oldRowId] || {})
const hasErrors = validation.actions.rowHasErrors(oldRowId)
const isSavingChanges = get(inProgressChanges)[oldRowId]
if (oldRowId && !hasErrors && hasChanges && !isSavingChanges) {
await rows.actions.applyRowChanges(oldRowId)
const { id: rowId, field } = parseCellID(id)
const hasChanges = field in (get(rowChangeCache)[rowId] || {})
const hasErrors = validation.actions.rowHasErrors(rowId)
const isSavingChanges = get(inProgressChanges)[rowId]
if (rowId && !hasErrors && hasChanges && !isSavingChanges) {
await rows.actions.applyRowChanges(rowId)
}
})
}