fix: wrong elements removed when index can't be found
This commit is contained in:
@@ -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
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|||||||
Reference in New Issue
Block a user