Skip to content

Instantly share code, notes, and snippets.

@dongsik-yoo
Created February 13, 2019 08:28
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dongsik-yoo/f17e6070da52f8c82528eeba850c661b to your computer and use it in GitHub Desktop.
Save dongsik-yoo/f17e6070da52f8c82528eeba850c661b to your computer and use it in GitHub Desktop.
/**
* Layout a page and return next page number
* @param {number} pageNumber - page number
* @returns {Promise} promise
*/
_layoutPage(pageNumber = 1) {
const promise = new Promise((resolve, reject) => {
const pageIndex = pageNumber - 1;
const totalPageCount = this.pageBodyElements.length;
if (pageNumber > totalPageCount || pageNumber > 100) {
reject(pageNumber + 1);
}
const pageBodyElement = this.pageBodyElements[pageIndex];
const pageBodyBottom = this._getBottom(pageBodyElement);
const exceedParagraph = this._findExceedParagraph(pageBodyElement, pageBodyBottom);
const insertBodyParagraph = false;
let allExceedParagraphs, nextPageBodyElement;
if (exceedParagraph) {
allExceedParagraphs = this._getExceedAllParagraphs(pageBodyElement, pageBodyBottom);
if (pageNumber >= totalPageCount) {
this._appendPage(insertBodyParagraph);
}
nextPageBodyElement = this.pageBodyElements[pageIndex + 1];
this._insertParagraphsToBodyAtFirst(nextPageBodyElement, allExceedParagraphs);
}
resolve(pageNumber + 1);
});
return promise;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment