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 ErrorNavItem = require('../../navbar/error-navitem.jsx'); const { fetchThemeBundle } = require('../../../../shared/helpers.js'); const BaseEditPage = require('../basePages/editPage/editPage.jsx'); const SplitPane = require('client/components/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 }; }, getInitialState : function() { return { brew : this.props.brew, isSaving : false, 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); }, save : function(){ this.setState({ isSaving : true }); 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}`; }) .catch((err)=>{ this.setState({ isSaving: false, error: err }); }); }, 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 }, })); }, renderSaveButton : function(){ if(this.state.isSaving){ return save... ; } else { return save ; } }, renderNavbar : function(){ return <> {this.state.error ? : null } ; }, render : function(){ return
Save current
Create your own
} }); module.exports = HomePage;