diff --git a/src/lib/listing/services/entities.service.ts b/src/lib/listing/services/entities.service.ts index ccb483d..79f7ef4 100644 --- a/src/lib/listing/services/entities.service.ts +++ b/src/lib/listing/services/entities.service.ts @@ -69,6 +69,8 @@ export class EntitiesService extends GenericService< } setEntities(entities: E[]): void { + const changedEntities: E[] = []; + // Keep old object references for unchanged entities const newEntities = entities.map(entity => { const oldEntity = this.find(entity.id); @@ -77,11 +79,17 @@ export class EntitiesService extends GenericService< return oldEntity; } - this.entityChanged$.next(entity); + changedEntities.push(entity); return entity; }); 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 {