diff --git a/client/homebrew/brewRenderer/brewRenderer.jsx b/client/homebrew/brewRenderer/brewRenderer.jsx index 51921c8ca..1cd2a301e 100644 --- a/client/homebrew/brewRenderer/brewRenderer.jsx +++ b/client/homebrew/brewRenderer/brewRenderer.jsx @@ -19,6 +19,17 @@ const Themes = require('themes/themes.json'); const PAGE_HEIGHT = 1056; const PPR_THRESHOLD = 50; +const BrewPage = (props)=>{ + props = { + contents : '', + index : 0, + ...props + }; + return
+
+
; +}; + const BrewRenderer = createClass({ displayName : 'BrewRenderer', getDefaultProps : function() { @@ -55,8 +66,9 @@ const BrewRenderer = createClass({
` }; }, - height : 0, - lastRender :
, + height : 0, + lastRender :
, + renderedPages : [], componentWillUnmount : function() { window.removeEventListener('resize', this.updateSize); @@ -152,23 +164,21 @@ const BrewRenderer = createClass({ return
; 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) + const html = Markdown.render(cleanPageText); return ( -
-
-
+ ); } }, renderPages : function(){ if(this.state.usePPR){ - return _.map(this.state.pages, (page, index)=>{ - if(this.shouldRender(page, index) && typeof window !== 'undefined'){ - return this.renderPage(page, index); - } else { - return this.renderDummyPage(index); + _.forEach(this.state.pages, (page, index)=>{ + if((this.shouldRender(page, index) || !this.renderedPages[index]) && typeof window !== 'undefined'){ + this.renderedPages[index] = this.renderPage(page, index); // Render any page not yet rendered, but only re-render those in PPR range } }); + return this.renderedPages; } if(this.props.errors && this.props.errors.length) return this.lastRender; this.lastRender = _.map(this.state.pages, (page, index)=>{