Remove one loop from BaseViewer.getPagesOverview

Currently, with `enablePrintAutoRotate = true` set, we're forced to loop through all the pages *twice* when checking for any landscape pages.
This seems completely unnecessary now, and using only *one* loop should be marginally more efficient in general.
This commit is contained in:
Jonas Jenwald 2021-03-19 12:19:29 +01:00
parent 3ce94a9f6d
commit 1de466896d

View File

@ -1347,25 +1347,21 @@ class BaseViewer {
* @returns {Array} Array of objects with width/height/rotation fields. * @returns {Array} Array of objects with width/height/rotation fields.
*/ */
getPagesOverview() { getPagesOverview() {
const pagesOverview = this._pages.map(function (pageView) { return this._pages.map(pageView => {
const viewport = pageView.pdfPage.getViewport({ scale: 1 }); const viewport = pageView.pdfPage.getViewport({ scale: 1 });
return {
width: viewport.width, if (!this.enablePrintAutoRotate || isPortraitOrientation(viewport)) {
height: viewport.height, return {
rotation: viewport.rotation, width: viewport.width,
}; height: viewport.height,
}); rotation: viewport.rotation,
if (!this.enablePrintAutoRotate) { };
return pagesOverview;
}
return pagesOverview.map(function (size) {
if (isPortraitOrientation(size)) {
return size;
} }
// Landscape orientation.
return { return {
width: size.height, width: viewport.height,
height: size.width, height: viewport.width,
rotation: (size.rotation - 90) % 360, rotation: (viewport.rotation - 90) % 360,
}; };
}); });
} }