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) {
|
async viewerPageChanged(page: any) {
|
||||||
if (typeof $event !== 'number') {
|
if (typeof page !== 'number') {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
this._scrollViews();
|
this._scrollViews();
|
||||||
this.multiSelectService.deactivate();
|
this.multiSelectService.deactivate();
|
||||||
|
await this.#updateQueryParamsPage(page);
|
||||||
// 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();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
viewerReady() {
|
viewerReady() {
|
||||||
@ -367,8 +358,16 @@ export class FilePreviewScreenComponent extends AutoUnsubscribe implements OnIni
|
|||||||
// Go to initial page from query params
|
// Go to initial page from query params
|
||||||
const pageNumber: string = this._lastPage || this._activatedRoute.snapshot.queryParams.page;
|
const pageNumber: string = this._lastPage || this._activatedRoute.snapshot.queryParams.page;
|
||||||
if (pageNumber) {
|
if (pageNumber) {
|
||||||
setTimeout(() => {
|
setTimeout(async () => {
|
||||||
this.selectPage(parseInt(pageNumber, 10));
|
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._scrollViews();
|
||||||
this._changeDetectorRef.markForCheck();
|
this._changeDetectorRef.markForCheck();
|
||||||
this._loadingService.stop();
|
this._loadingService.stop();
|
||||||
@ -455,6 +454,18 @@ export class FilePreviewScreenComponent extends AutoUnsubscribe implements OnIni
|
|||||||
return this._cleanupAndRedrawAnnotations(annotationsToDraw);
|
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>) {
|
#getAnnotationsToDraw(newAnnotations: Record<string, AnnotationWrapper>, oldAnnotations: Record<string, AnnotationWrapper>) {
|
||||||
return Object.values(newAnnotations).filter(newAnnotation => {
|
return Object.values(newAnnotations).filter(newAnnotation => {
|
||||||
const oldAnnotation = oldAnnotations[newAnnotation.id];
|
const oldAnnotation = oldAnnotations[newAnnotation.id];
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user