Refactor setScrollMode
/setSpreadMode
, in the viewer classes, such that they are no-ops in PDFSinglePageViewer
instances
Since the Scroll/Spread modes doesn't make (any) sense in `PDFSinglePageViewer` instances, the general structure of these methods can be improved to reflect that.
This commit is contained in:
parent
8bd1244298
commit
6a086fa0b9
@ -1020,26 +1020,10 @@ class BaseViewer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
setScrollMode(mode) {
|
setScrollMode(mode) {
|
||||||
if (mode === this.scrollMode) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (!Number.isInteger(mode) || !Object.values(ScrollMode).includes(mode)) {
|
if (!Number.isInteger(mode) || !Object.values(ScrollMode).includes(mode)) {
|
||||||
throw new Error(`Invalid scroll mode: ${mode}`);
|
throw new Error(`Invalid scroll mode: ${mode}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
this.scrollMode = mode;
|
this.scrollMode = mode;
|
||||||
this._updateScrollModeClasses();
|
|
||||||
this.eventBus.dispatch('scrollmodechanged', { mode, });
|
|
||||||
|
|
||||||
const pageNumber = this._currentPageNumber;
|
|
||||||
// Non-numeric scale modes can be sensitive to the scroll orientation.
|
|
||||||
// Call this before re-scrolling to the current page, to ensure that any
|
|
||||||
// changes in scale don't move the current page.
|
|
||||||
if (isNaN(this._currentScaleValue)) {
|
|
||||||
this._setScale(this._currentScaleValue, this.isInPresentationMode);
|
|
||||||
}
|
|
||||||
this.scrollPageIntoView({ pageNumber, });
|
|
||||||
this.update();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
_updateScrollModeClasses() {
|
_updateScrollModeClasses() {
|
||||||
@ -1047,16 +1031,10 @@ class BaseViewer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
setSpreadMode(mode) {
|
setSpreadMode(mode) {
|
||||||
if (mode === this.spreadMode) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (!Number.isInteger(mode) || !Object.values(SpreadMode).includes(mode)) {
|
if (!Number.isInteger(mode) || !Object.values(SpreadMode).includes(mode)) {
|
||||||
throw new Error(`Invalid spread mode: ${mode}`);
|
throw new Error(`Invalid spread mode: ${mode}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
this.spreadMode = mode;
|
this.spreadMode = mode;
|
||||||
this.eventBus.dispatch('spreadmodechanged', { mode, });
|
|
||||||
this._regroupSpreads();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
_regroupSpreads() {
|
_regroupSpreads() {
|
||||||
|
@ -87,6 +87,26 @@ class PDFViewer extends BaseViewer {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
setScrollMode(mode) {
|
||||||
|
if (mode === this.scrollMode) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
super.setScrollMode(mode);
|
||||||
|
|
||||||
|
this.eventBus.dispatch('scrollmodechanged', { mode, });
|
||||||
|
this._updateScrollModeClasses();
|
||||||
|
|
||||||
|
const pageNumber = this._currentPageNumber;
|
||||||
|
// Non-numeric scale modes can be sensitive to the scroll orientation.
|
||||||
|
// Call this before re-scrolling to the current page, to ensure that any
|
||||||
|
// changes in scale don't move the current page.
|
||||||
|
if (isNaN(this._currentScaleValue)) {
|
||||||
|
this._setScale(this._currentScaleValue, this.isInPresentationMode);
|
||||||
|
}
|
||||||
|
this.scrollPageIntoView({ pageNumber, });
|
||||||
|
this.update();
|
||||||
|
}
|
||||||
|
|
||||||
_updateScrollModeClasses() {
|
_updateScrollModeClasses() {
|
||||||
const { scrollMode, viewer, } = this;
|
const { scrollMode, viewer, } = this;
|
||||||
|
|
||||||
@ -102,6 +122,16 @@ class PDFViewer extends BaseViewer {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
setSpreadMode(mode) {
|
||||||
|
if (mode === this.spreadMode) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
super.setSpreadMode(mode);
|
||||||
|
|
||||||
|
this.eventBus.dispatch('spreadmodechanged', { mode, });
|
||||||
|
this._regroupSpreads();
|
||||||
|
}
|
||||||
|
|
||||||
_regroupSpreads() {
|
_regroupSpreads() {
|
||||||
const viewer = this.viewer, pages = this._pages;
|
const viewer = this.viewer, pages = this._pages;
|
||||||
// Temporarily remove all the pages from the DOM.
|
// Temporarily remove all the pages from the DOM.
|
||||||
|
Loading…
Reference in New Issue
Block a user