diff --git a/apps/red-ui/src/app/modules/pdf-viewer/services/viewer-header.service.ts b/apps/red-ui/src/app/modules/pdf-viewer/services/viewer-header.service.ts index 1f1b9717e..78b7dee74 100644 --- a/apps/red-ui/src/app/modules/pdf-viewer/services/viewer-header.service.ts +++ b/apps/red-ui/src/app/modules/pdf-viewer/services/viewer-header.service.ts @@ -4,7 +4,7 @@ import { TranslateService } from '@ngx-translate/core'; import { IHeaderElement, RotationTypes } from '@red/domain'; import { FilesMapService } from '@services/files/files-map.service'; import { Roles } from '@users/roles'; -import { fromEvent, merge, Observable, Subject, timer } from 'rxjs'; +import { fromEvent, merge, Observable, Subject } from 'rxjs'; import { filter, map, switchMap, tap } from 'rxjs/operators'; import { HeaderElements, HeaderElementType } from '../../file-preview/utils/constants'; import { ROTATION_ACTION_BUTTONS, ROTATION_BUTTONS, ViewerEvents } from '../utils/constants'; @@ -71,11 +71,14 @@ export class ViewerHeaderService { } get layersUpdated() { - const documentListener$ = timer(1000).pipe(switchMap(() => fromEvent(this._documentViewer.document, 'layersUpdated'))); + const documentListener$ = this._documentViewer.loaded$.pipe( + filter(Boolean), + switchMap(() => fromEvent(this._documentViewer.document, 'layersUpdated')), + ); return documentListener$.pipe( tap(async () => { const layers = await this._documentViewer.document.getLayersArray(); - const layersVisible = layers.every(layer => layer.visible); + const layersVisible = layers.filter(layer => layer.name === 'Layout grid').every(layer => layer.visible); this._layersService.active.set(layersVisible); }), );