mirror of
https://github.com/naturalcrit/homebrewery.git
synced 2026-01-09 09:22:38 +00:00
Merge pull request #3156 from naturalcrit/renderAllPages
Render all pages
This commit is contained in:
@@ -19,6 +19,17 @@ const Themes = require('themes/themes.json');
|
|||||||
const PAGE_HEIGHT = 1056;
|
const PAGE_HEIGHT = 1056;
|
||||||
const PPR_THRESHOLD = 50;
|
const PPR_THRESHOLD = 50;
|
||||||
|
|
||||||
|
const BrewPage = (props)=>{
|
||||||
|
props = {
|
||||||
|
contents : '',
|
||||||
|
index : 0,
|
||||||
|
...props
|
||||||
|
};
|
||||||
|
return <div className='page' id={`p${props.index + 1}`} >
|
||||||
|
<div className='columnWrapper' dangerouslySetInnerHTML={{ __html: props.contents }} />
|
||||||
|
</div>;
|
||||||
|
};
|
||||||
|
|
||||||
const BrewRenderer = createClass({
|
const BrewRenderer = createClass({
|
||||||
displayName : 'BrewRenderer',
|
displayName : 'BrewRenderer',
|
||||||
getDefaultProps : function() {
|
getDefaultProps : function() {
|
||||||
@@ -55,8 +66,9 @@ const BrewRenderer = createClass({
|
|||||||
</head><body style='overflow: hidden'><div></div></body></html>`
|
</head><body style='overflow: hidden'><div></div></body></html>`
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
height : 0,
|
height : 0,
|
||||||
lastRender : <div></div>,
|
lastRender : <div></div>,
|
||||||
|
renderedPages : [],
|
||||||
|
|
||||||
componentWillUnmount : function() {
|
componentWillUnmount : function() {
|
||||||
window.removeEventListener('resize', this.updateSize);
|
window.removeEventListener('resize', this.updateSize);
|
||||||
@@ -152,23 +164,21 @@ const BrewRenderer = createClass({
|
|||||||
return <div className='phb page' id={`p${index + 1}`} dangerouslySetInnerHTML={{ __html: MarkdownLegacy.render(cleanPageText) }} key={index} />;
|
return <div className='phb page' id={`p${index + 1}`} dangerouslySetInnerHTML={{ __html: MarkdownLegacy.render(cleanPageText) }} key={index} />;
|
||||||
else {
|
else {
|
||||||
cleanPageText += `\n\n \n\\column\n `; //Artificial column break at page end to emulate column-fill:auto (until `wide` is used, when column-fill:balance will reappear)
|
cleanPageText += `\n\n \n\\column\n `; //Artificial column break at page end to emulate column-fill:auto (until `wide` is used, when column-fill:balance will reappear)
|
||||||
|
const html = Markdown.render(cleanPageText);
|
||||||
return (
|
return (
|
||||||
<div className='page' id={`p${index + 1}`} key={index} >
|
<BrewPage index={index} key={index} contents={html} />
|
||||||
<div className='columnWrapper' dangerouslySetInnerHTML={{ __html: Markdown.render(cleanPageText) }} />
|
|
||||||
</div>
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
renderPages : function(){
|
renderPages : function(){
|
||||||
if(this.state.usePPR){
|
if(this.state.usePPR){
|
||||||
return _.map(this.state.pages, (page, index)=>{
|
_.forEach(this.state.pages, (page, index)=>{
|
||||||
if(this.shouldRender(page, index) && typeof window !== 'undefined'){
|
if((this.shouldRender(page, index) || !this.renderedPages[index]) && typeof window !== 'undefined'){
|
||||||
return this.renderPage(page, index);
|
this.renderedPages[index] = this.renderPage(page, index); // Render any page not yet rendered, but only re-render those in PPR range
|
||||||
} else {
|
|
||||||
return this.renderDummyPage(index);
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
return this.renderedPages;
|
||||||
}
|
}
|
||||||
if(this.props.errors && this.props.errors.length) return this.lastRender;
|
if(this.props.errors && this.props.errors.length) return this.lastRender;
|
||||||
this.lastRender = _.map(this.state.pages, (page, index)=>{
|
this.lastRender = _.map(this.state.pages, (page, index)=>{
|
||||||
|
|||||||
Reference in New Issue
Block a user