diff --git a/apps/red-ui/src/app/modules/file-preview/components/file-workload/file-workload.component.ts b/apps/red-ui/src/app/modules/file-preview/components/file-workload/file-workload.component.ts index e88883107..4cb63a58d 100644 --- a/apps/red-ui/src/app/modules/file-preview/components/file-workload/file-workload.component.ts +++ b/apps/red-ui/src/app/modules/file-preview/components/file-workload/file-workload.component.ts @@ -25,7 +25,7 @@ import { workloadTranslations } from '@translations/workload-translations'; import { UserPreferenceService } from '@users/user-preference.service'; import { getLocalStorageDataByFileId } from '@utils/local-storage'; import { combineLatest, delay, Observable } from 'rxjs'; -import { map } from 'rxjs/operators'; +import { map, tap } from 'rxjs/operators'; import scrollIntoView from 'scroll-into-view-if-needed'; import { REDAnnotationManager } from '../../../pdf-viewer/services/annotation-manager.service'; import { REDDocumentViewer } from '../../../pdf-viewer/services/document-viewer.service'; @@ -182,6 +182,7 @@ export class FileWorkloadComponent extends AutoUnsubscribe implements OnInit, On delay(0), map(([annotations, primary, secondary]) => this.#filterAnnotations(annotations, primary, secondary)), map(annotations => this.#mapListItemsFromAnnotationWrapperArray(annotations)), + tap(annotations => this.#scrollToFirstAnnotationPage(annotations)), ); } @@ -520,4 +521,11 @@ export class FileWorkloadComponent extends AutoUnsubscribe implements OnInit, On }); return listItemsMap; } + + #scrollToFirstAnnotationPage(annotations: Map[]>) { + if (this.isDocumine && annotations.size && !this.displayedPages.includes(this.pdf.currentPage())) { + const page = annotations.keys().next().value; + this.pdf.navigateTo(page); + } + } }