findAndUpdate uses predicate, just add callback to update method

This commit is contained in:
Bruno Windels 2021-05-31 10:46:16 +02:00
parent 6a5d856093
commit fa37e8fedb
2 changed files with 6 additions and 2 deletions

View file

@ -122,7 +122,7 @@ export class Timeline {
for (const entry of entries) {
// this will use the comparator and thus
// check for equality using the compare method in BaseEntry
this._remoteEntries.findAndUpdate(entry, (previousEntry, entry) => {
this._remoteEntries.update(entry, null, previousEntry => {
entry.transferLocalEchoState(previousEntry);
});
}

View file

@ -57,9 +57,13 @@ export class SortedArray extends BaseObservableList {
return false;
}
update(item, updateParams = null) {
update(item, updateParams = null, previousCallback = null) {
const idx = this.indexOf(item);
if (idx !== -1) {
if (previousCallback) {
const oldItem = this._items[idx];
previousCallback(oldItem);
}
this._items[idx] = item;
this.emitUpdate(idx, item, updateParams);
}