From 6ddf0bb8893aa166073fdcb7249119c3603db45f Mon Sep 17 00:00:00 2001 From: Charlie Humphreys Date: Mon, 23 Jan 2023 09:35:19 -0600 Subject: [PATCH] update metadata editor to include error handling --- client/homebrew/editor/editor.jsx | 4 +++- .../editor/metadataEditor/metadataEditor.jsx | 13 +++++++++---- .../pages/basePages/listPage/brewItem/brewItem.jsx | 4 ++-- client/homebrew/pages/editPage/editPage.jsx | 7 +++++++ 4 files changed, 21 insertions(+), 7 deletions(-) diff --git a/client/homebrew/editor/editor.jsx b/client/homebrew/editor/editor.jsx index 75ab08de4..58e84e4fc 100644 --- a/client/homebrew/editor/editor.jsx +++ b/client/homebrew/editor/editor.jsx @@ -32,6 +32,7 @@ const Editor = createClass({ onTextChange : ()=>{}, onStyleChange : ()=>{}, onMetaChange : ()=>{}, + reportError : ()=>{}, renderer : 'legacy' }; @@ -291,7 +292,8 @@ const Editor = createClass({ rerenderParent={this.rerenderParent} /> + onChange={this.props.onMetaChange} + reportError={this.props.reportError}/> ; } }, diff --git a/client/homebrew/editor/metadataEditor/metadataEditor.jsx b/client/homebrew/editor/metadataEditor/metadataEditor.jsx index 03f40e7cf..913e79d20 100644 --- a/client/homebrew/editor/metadataEditor/metadataEditor.jsx +++ b/client/homebrew/editor/metadataEditor/metadataEditor.jsx @@ -4,7 +4,7 @@ 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 Nav = require('naturalcrit/nav/nav.jsx'); const StringArrayEditor = require('../stringArrayEditor/stringArrayEditor.jsx'); @@ -37,7 +37,8 @@ const MetadataEditor = createClass({ renderer : 'legacy', theme : '5ePHB' }, - onChange : ()=>{} + onChange : ()=>{}, + reportError : ()=>{} }; }, @@ -121,8 +122,12 @@ const MetadataEditor = createClass({ request.delete(`/api/${this.props.metadata.googleId ?? ''}${this.props.metadata.editId}`) .send() - .end(function(err, res){ - window.location.href = '/'; + .end((err, res)=>{ + if(err) { + this.props.reportError(err.response); + } else { + window.location.href = '/'; + } }); }, diff --git a/client/homebrew/pages/basePages/listPage/brewItem/brewItem.jsx b/client/homebrew/pages/basePages/listPage/brewItem/brewItem.jsx index 327fe21be..1c150800e 100644 --- a/client/homebrew/pages/basePages/listPage/brewItem/brewItem.jsx +++ b/client/homebrew/pages/basePages/listPage/brewItem/brewItem.jsx @@ -19,7 +19,7 @@ const BrewItem = createClass({ authors : [], stubbed : true }, - reportError : null + reportError : ()=>{} }; }, @@ -35,7 +35,7 @@ const BrewItem = createClass({ request.delete(`/api/${this.props.brew.googleId ?? ''}${this.props.brew.editId}`) .send() .end((err, res)=>{ - if(err && this.props.reportError) { + if(err) { this.props.reportError(err.response); } else { location.reload(); diff --git a/client/homebrew/pages/editPage/editPage.jsx b/client/homebrew/pages/editPage/editPage.jsx index 481ac280f..59a0163bf 100644 --- a/client/homebrew/pages/editPage/editPage.jsx +++ b/client/homebrew/pages/editPage/editPage.jsx @@ -305,6 +305,12 @@ const EditPage = createClass({ this.warningTimer; }, + errorReported : function(error) { + this.setState({ + error + }); + }, + renderAutoSaveButton : function(){ return Autosave @@ -393,6 +399,7 @@ const EditPage = createClass({ onTextChange={this.handleTextChange} onStyleChange={this.handleStyleChange} onMetaChange={this.handleMetaChange} + reportError={this.errorReported} renderer={this.state.brew.renderer} />