fix: wrong elements removed when index can't be found

This commit is contained in:
Braks
2022-05-11 22:10:40 +02:00
parent b8abc78307
commit b68dc4c032
+6 -4
View File
@@ -102,8 +102,8 @@ export const applyChanges = <
let elementIds = elements.map((el) => el.id) let elementIds = elements.map((el) => el.id)
changes.forEach((change) => { changes.forEach((change) => {
if (change.type === 'add') { if (change.type === 'add') {
if (addElement) addElement([change.item as any]) if (addElement) return addElement([change.item as any])
else elements.push(change.item as any) else return elements.push(change.item as any)
} }
const i = elementIds.indexOf((<any>change).id) const i = elementIds.indexOf((<any>change).id)
@@ -126,8 +126,10 @@ export const applyChanges = <
} }
break break
case 'remove': case 'remove':
elements.splice(i, 1) if (elementIds.includes(change.id)) {
elementIds = elements.map((el) => el.id) elements.splice(i, 1)
elementIds = elements.map((el) => el.id)
}
break break
} }
}) })