var React = require('react');
var _ = require('lodash');
var cx = require('classnames');
var Markdown = require('marked');
var renderer = new Markdown.Renderer();
//Processes the markdown within an HTML block if it's just a class-wrapper
renderer.html = function (html) {
if(_.startsWith(html, '
')){
var openTag = html.substring(0, html.indexOf('>')+1);
html = html.substring(html.indexOf('>')+1);
html = html.substring(0, html.lastIndexOf('
'));
console.log(html);
console.log(Markdown(html));
return `${openTag} ${Markdown(html)} `;
}
return html;
}
var PAGE_HEIGHT = 1056 + 30;
var BrewRenderer = React.createClass({
getDefaultProps: function() {
return {
text : ''
};
},
getInitialState: function() {
return {
viewablePageNumber: 0,
height : 0,
isMounted : false
};
},
totalPages : 0,
height : 0,
componentDidMount: function() {
this.setState({
height : this.refs.main.parentNode.clientHeight,
isMounted : true
});
},
handleScroll : function(e){
this.setState({
viewablePageNumber : Math.floor(e.target.scrollTop / PAGE_HEIGHT)
});
},
//Implement later
scrollToPage : function(pageNumber){
},
shouldRender : function(pageText, index){
if(!this.state.isMounted) return false;
var viewIndex = this.state.viewablePageNumber;
if(index == viewIndex - 1) return true;
if(index == viewIndex) return true;
if(index == viewIndex + 1) return true;
//Check for style tages
if(pageText.indexOf('