0
0
mirror of https://github.com/naturalcrit/homebrewery.git synced 2026-01-16 12:32:39 +00:00

adjust frontend error handling, add client/server mismatch middleware

This commit is contained in:
Charlie Humphreys
2023-01-06 21:29:21 -06:00
parent 67a76f9d86
commit 385bee964d
12 changed files with 221 additions and 297 deletions

View File

@@ -1,9 +1,10 @@
require('./homePage.less');
require('../../styles/nav-item-error-container.less');
const React = require('react');
const createClass = require('create-react-class');
const _ = require('lodash');
const cx = require('classnames');
const request = require('superagent');
const request = require('../../utils/request-middleware.js');
const { Meta } = require('vitreum/headtags');
const Nav = require('naturalcrit/nav/nav.jsx');
@@ -31,14 +32,18 @@ const HomePage = createClass({
getInitialState : function() {
return {
brew : this.props.brew,
welcomeText : this.props.brew.text
welcomeText : this.props.brew.text,
error : undefined
};
},
handleSave : function(){
request.post('/api')
.send(this.state.brew)
.end((err, res)=>{
if(err) return;
if(err) {
this.setState({ error: err.response });
return;
}
const brew = res.body;
window.location = `/edit/${brew.editId}`;
});
@@ -51,9 +56,16 @@ const HomePage = createClass({
brew : { ...prevState.brew, text: text }
}));
},
renderSaveError : function(){
if(this.state.error) {
return require('../../utils/render-error-nav-item.js')(this, this.state.error);
}
return null;
},
renderNavbar : function(){
return <Navbar ver={this.props.ver}>
<Nav.section>
{this.renderSaveError()}
<NewBrewItem />
<HelpNavItem />
<RecentNavItem />

View File

@@ -40,4 +40,15 @@
right : 350px;
}
}
.navItem.save{
background-color: @orange;
&:hover{
background-color: @green;
}
&.error{
position : relative;
background-color : @red;
}
}
}