RED-3701: File preview page query param checks
This commit is contained in:
parent
def3a04e55
commit
3db78206cb
@ -337,23 +337,14 @@ export class FilePreviewScreenComponent extends AutoUnsubscribe implements OnIni
|
||||
}
|
||||
}
|
||||
|
||||
async viewerPageChanged($event: any) {
|
||||
if (typeof $event !== 'number') {
|
||||
async viewerPageChanged(page: any) {
|
||||
if (typeof page !== 'number') {
|
||||
return;
|
||||
}
|
||||
|
||||
this._scrollViews();
|
||||
this.multiSelectService.deactivate();
|
||||
|
||||
// Add current page in URL query params
|
||||
const extras: NavigationExtras = {
|
||||
queryParams: { page: $event },
|
||||
queryParamsHandling: 'merge',
|
||||
replaceUrl: true,
|
||||
};
|
||||
await this._router.navigate([], extras);
|
||||
|
||||
this._changeDetectorRef.markForCheck();
|
||||
await this.#updateQueryParamsPage(page);
|
||||
}
|
||||
|
||||
viewerReady() {
|
||||
@ -367,8 +358,16 @@ export class FilePreviewScreenComponent extends AutoUnsubscribe implements OnIni
|
||||
// Go to initial page from query params
|
||||
const pageNumber: string = this._lastPage || this._activatedRoute.snapshot.queryParams.page;
|
||||
if (pageNumber) {
|
||||
setTimeout(() => {
|
||||
this.selectPage(parseInt(pageNumber, 10));
|
||||
setTimeout(async () => {
|
||||
const file = await this.stateService.file;
|
||||
let page = parseInt(pageNumber, 10);
|
||||
if (page < file.numberOfPages || isNaN(page)) {
|
||||
page = 1;
|
||||
await this.#updateQueryParamsPage(page);
|
||||
} else if (page > file.numberOfPages) {
|
||||
page = file.numberOfPages;
|
||||
}
|
||||
this.selectPage(page);
|
||||
this._scrollViews();
|
||||
this._changeDetectorRef.markForCheck();
|
||||
this._loadingService.stop();
|
||||
@ -455,6 +454,18 @@ export class FilePreviewScreenComponent extends AutoUnsubscribe implements OnIni
|
||||
return this._cleanupAndRedrawAnnotations(annotationsToDraw);
|
||||
}
|
||||
|
||||
async #updateQueryParamsPage(page: number): Promise<void> {
|
||||
// Add current page in URL query params
|
||||
const extras: NavigationExtras = {
|
||||
queryParams: { page },
|
||||
queryParamsHandling: 'merge',
|
||||
replaceUrl: true,
|
||||
};
|
||||
await this._router.navigate([], extras);
|
||||
|
||||
this._changeDetectorRef.markForCheck();
|
||||
}
|
||||
|
||||
#getAnnotationsToDraw(newAnnotations: Record<string, AnnotationWrapper>, oldAnnotations: Record<string, AnnotationWrapper>) {
|
||||
return Object.values(newAnnotations).filter(newAnnotation => {
|
||||
const oldAnnotation = oldAnnotations[newAnnotation.id];
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user