From 401e6a047f6af09e9b737e80df6f86fd18f009d3 Mon Sep 17 00:00:00 2001 From: Valentin Mihai Date: Tue, 18 Oct 2022 15:41:16 +0300 Subject: [PATCH] RED-5289 - Docs/Pages switch in dossier stats --- src/lib/services/entities-map.service.ts | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/src/lib/services/entities-map.service.ts b/src/lib/services/entities-map.service.ts index 27790da..bee6608 100644 --- a/src/lib/services/entities-map.service.ts +++ b/src/lib/services/entities-map.service.ts @@ -1,6 +1,6 @@ import { Injectable } from '@angular/core'; -import { BehaviorSubject, Observable, Subject } from 'rxjs'; -import { filter, startWith } from 'rxjs/operators'; +import { BehaviorSubject, Observable, Subject, switchMap } from 'rxjs'; +import { filter, map, startWith } from 'rxjs/operators'; import { Entity } from '../listing'; import { RequiredParam, shareLast, Validate } from '../utils'; import { Id } from '../listing/models/trackable'; @@ -11,6 +11,7 @@ export abstract class EntitiesMapService>(); readonly #entityChanged$ = new Subject(); + readonly #entitiesChanged$ = new BehaviorSubject(false); readonly #entityDeleted$ = new Subject(); get empty(): boolean { @@ -68,6 +69,10 @@ export abstract class EntitiesMapService { + return this.#entityChanged$.pipe( + startWith(this.get(key)), + map(entities => entities as Class[]), + map(entities => !!entities.length) + ); + } + watchDeleted$(entityId: Id): Observable { return this.#entityDeleted$.pipe(filter(entity => entity.id === entityId)); }