require('./homePage.less'); const React = require('react'); const createClass = require('create-react-class'); const _ = require('lodash'); const cx = require('classnames'); const request = require('../../utils/request-middleware.js'); const { Meta } = require('vitreum/headtags'); const Nav = require('naturalcrit/nav/nav.jsx'); const Navbar = require('../../navbar/navbar.jsx'); const NewBrewItem = require('../../navbar/newbrew.navitem.jsx'); const HelpNavItem = require('../../navbar/help.navitem.jsx'); const RecentNavItem = require('../../navbar/recent.navitem.jsx').both; const AccountNavItem = require('../../navbar/account.navitem.jsx'); const ErrorNavItem = require('../../navbar/error-navitem.jsx'); const { fetchThemeBundle } = require('../../../../shared/helpers.js'); const SplitPane = require('naturalcrit/splitPane/splitPane.jsx'); const Editor = require('../../editor/editor.jsx'); const BrewRenderer = require('../../brewRenderer/brewRenderer.jsx'); const { DEFAULT_BREW } = require('../../../../server/brewDefaults.js'); const HomePage = createClass({ displayName : 'HomePage', getDefaultProps : function() { return { brew : DEFAULT_BREW, ver : '0.0.0' }; }, getInitialState : function() { return { brew : this.props.brew, welcomeText : this.props.brew.text, error : undefined, currentEditorPage : 0, themeBundle : {} }; }, editor : React.createRef(null), componentDidMount : function() { fetchThemeBundle(this, this.props.brew.renderer, this.props.brew.theme); }, handleSave : function(){ request.post('/api') .send(this.state.brew) .end((err, res)=>{ if(err) { this.setState({ error: err }); return; } const brew = res.body; window.location = `/edit/${brew.editId}`; }); }, handleSplitMove : function(){ this.editor.current.update(); }, handleTextChange : function(text){ this.setState((prevState)=>({ brew : { ...prevState.brew, text: text }, currentEditorPage : this.editor.current.getCurrentPage() - 1 //Offset index since Marked starts pages at 0 })); }, renderNavbar : function(){ return {this.state.error ? : null } ; }, render : function(){ return
{this.renderNavbar()}
Save current
Create your own
; } }); module.exports = HomePage;