require('./homePage.less'); const React = require('react'); const createClass = require('create-react-class'); const cx = require('classnames'); import request from '../../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 VaultNavItem = require('../../navbar/vault.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, currentEditorViewPageNum : 1, currentEditorCursorPageNum : 1, currentBrewRendererPageNum : 1, 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(); }, handleEditorViewPageChange : function(pageNumber){ this.setState({ currentEditorViewPageNum: pageNumber }); }, handleEditorCursorPageChange : function(pageNumber){ this.setState({ currentEditorCursorPageNum: pageNumber }); }, handleBrewRendererPageChange : function(pageNumber){ this.setState({ currentBrewRendererPageNum: pageNumber }); }, handleTextChange : function(text){ this.setState((prevState)=>({ brew : { ...prevState.brew, text: text }, })); }, renderNavbar : function(){ return {this.state.error ? : null } ; }, render : function(){ return
{this.renderNavbar()}
Save current
Create your own
; } }); module.exports = HomePage;