Move the parseCurrentHash helper function into PDFHistory

Looking at the `parseCurrentHash` function again it's now difficult for me to understand *what* I was thinking, since having a helper function that needs to be manually passed a `linkService` reference just looks weird.
This commit is contained in:
Jonas Jenwald 2019-12-03 16:29:14 +01:00
parent d621899d50
commit c5f2f870cb

View File

@ -50,17 +50,6 @@ function getCurrentHash() {
return document.location.hash; return document.location.hash;
} }
function parseCurrentHash(linkService) {
let hash = unescape(getCurrentHash()).substring(1);
let params = parseQueryString(hash);
let page = params.page | 0;
if (!(Number.isInteger(page) && page > 0 && page <= linkService.pagesCount)) {
page = null;
}
return { hash, page, rotation: linkService.rotation, };
}
class PDFHistory { class PDFHistory {
/** /**
* @param {PDFHistoryOptions} options * @param {PDFHistoryOptions} options
@ -125,7 +114,7 @@ class PDFHistory {
this._position = null; this._position = null;
if (!this._isValidState(state, /* checkReload = */ true) || resetHistory) { if (!this._isValidState(state, /* checkReload = */ true) || resetHistory) {
let { hash, page, rotation, } = parseCurrentHash(this.linkService); const { hash, page, rotation, } = this._parseCurrentHash();
if (!hash || reInitialized || resetHistory) { if (!hash || reInitialized || resetHistory) {
// Ensure that the browser history is reset on PDF document load. // Ensure that the browser history is reset on PDF document load.
@ -458,6 +447,20 @@ class PDFHistory {
this._numPositionUpdates = 0; this._numPositionUpdates = 0;
} }
/**
* @private
*/
_parseCurrentHash() {
const hash = unescape(getCurrentHash()).substring(1);
let page = parseQueryString(hash).page | 0;
if (!(Number.isInteger(page) &&
page > 0 && page <= this.linkService.pagesCount)) {
page = null;
}
return { hash, page, rotation: this.linkService.rotation, };
}
/** /**
* @private * @private
*/ */
@ -530,7 +533,7 @@ class PDFHistory {
// This case corresponds to the user changing the hash of the document. // This case corresponds to the user changing the hash of the document.
this._uid++; this._uid++;
let { hash, page, rotation, } = parseCurrentHash(this.linkService); const { hash, page, rotation, } = this._parseCurrentHash();
this._pushOrReplaceState({ hash, page, rotation, }, this._pushOrReplaceState({ hash, page, rotation, },
/* forceReplace = */ true); /* forceReplace = */ true);
return; return;