1
0
mirror of https://github.com/stolksdorf/homebrewery.git synced 2025-12-24 05:31:28 +00:00
Files
homebrewery/client/homebrew/pageContainer/pageContainer.jsx

58 lines
1.2 KiB
JavaScript

var React = require('react');
var _ = require('lodash');
var cx = require('classnames');
var Markdown = require('marked');
var PAGE_HEIGHT = 1056 + 30;
var PageContainer = React.createClass({
getDefaultProps: function() {
return {
text : ""
};
},
getInitialState: function() {
return {
scrollPosition: 0
};
},
handleScroll : function(e){
this.setState({
scrollPosition : e.target.scrollTop
});
},
getViewablePageIndex : function(){
return Math.floor(this.state.scrollPosition / PAGE_HEIGHT);
},
renderDummyPage : function(key){
return <div className='phb' key={key}>
yo dawg
</div>
},
renderPages : function(){
var currentIndex = this.getViewablePageIndex();
return _.map(this.props.text.split('\\page'), (pageText, index) => {
if(currentIndex - 1 == index || currentIndex == index || currentIndex + 1 == index){
return <div className='phb' dangerouslySetInnerHTML={{__html:Markdown(pageText)}} key={index} />
}else{
return this.renderDummyPage(index);
}
})
},
render : function(){
return <div className="pageContainer" onScroll={this.handleScroll}>
<div className='pages'>
{this.renderPages()}
</div>
</div>;
}
});
module.exports = PageContainer;