entityChanged$ emit after updating entities
This commit is contained in:
parent
6c49e67da1
commit
b46bfd3fa6
@ -69,6 +69,8 @@ export class EntitiesService<E extends IListable, I = E> extends GenericService<
|
|||||||
}
|
}
|
||||||
|
|
||||||
setEntities(entities: E[]): void {
|
setEntities(entities: E[]): void {
|
||||||
|
const changedEntities: E[] = [];
|
||||||
|
|
||||||
// Keep old object references for unchanged entities
|
// Keep old object references for unchanged entities
|
||||||
const newEntities = entities.map(entity => {
|
const newEntities = entities.map(entity => {
|
||||||
const oldEntity = this.find(entity.id);
|
const oldEntity = this.find(entity.id);
|
||||||
@ -77,11 +79,17 @@ export class EntitiesService<E extends IListable, I = E> extends GenericService<
|
|||||||
return oldEntity;
|
return oldEntity;
|
||||||
}
|
}
|
||||||
|
|
||||||
this.entityChanged$.next(entity);
|
changedEntities.push(entity);
|
||||||
return entity;
|
return entity;
|
||||||
});
|
});
|
||||||
|
|
||||||
this._all$.next(newEntities);
|
this._all$.next(newEntities);
|
||||||
|
|
||||||
|
// Emit observables only after entities have been updated
|
||||||
|
|
||||||
|
for (const entity of changedEntities) {
|
||||||
|
this.entityChanged$.next(entity);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
find(id: string): E | undefined {
|
find(id: string): E | undefined {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user