diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/components/App.js | 10 | ||||
-rw-r--r-- | src/components/Login.js | 4 | ||||
-rw-r--r-- | src/components/ObjectView.js | 13 |
3 files changed, 16 insertions, 11 deletions
diff --git a/src/components/App.js b/src/components/App.js index 3a1d65d..592a062 100644 --- a/src/components/App.js +++ b/src/components/App.js @@ -40,8 +40,8 @@ class App extends React.Component { localStorage.removeItem("token"); } - setError(msg) { - this.setState({ error: msg }); + setError(e) { + this.setState({ error: e.message }); } clearError() { @@ -64,7 +64,7 @@ class App extends React.Component { <Header clearToken={this.clearToken} /> <Switch> <Route path="/:id"> - <MakeObjectView /> + <MakeObjectView setError={this.setError} /> </Route> <Route path="/"> <List setError={this.setError} /> @@ -75,9 +75,9 @@ class App extends React.Component { } } -function MakeObjectView() { +function MakeObjectView(props) { let { id } = useParams(); - return <ObjectView id={id} setError={this.setError} />; + return <ObjectView id={id} setError={props.setError} />; } export default App; diff --git a/src/components/Login.js b/src/components/Login.js index 7555dcf..7684703 100644 --- a/src/components/Login.js +++ b/src/components/Login.js @@ -41,7 +41,9 @@ class Login extends React.Component { if (resp.status === 401) this.setState({ error: true }); else this.props.setError( - `Unexpected response status: ${resp.status} ${resp.statusText}` + new Error( + `Unexpected response status: ${resp.status} ${resp.statusText}` + ) ); }); } diff --git a/src/components/ObjectView.js b/src/components/ObjectView.js index 4a04c93..e6556c1 100644 --- a/src/components/ObjectView.js +++ b/src/components/ObjectView.js @@ -23,13 +23,16 @@ class ObjectView extends React.Component { } }) .then(resp => resp.json()) + .then(resp => { + // TODO: Look at `status` or return code or both? + if (resp.status != "success") + throw `soc_collector responded: ${resp.status}`; + return resp.data; + }) // TODO: Proper API call to get single object .then(data => data.filter(x => x._id == this.props.id)[0]) - // .then(data => { - // console.log(data); - // return data; - // }) - .then(object => this.setState({ object: object })); + .then(object => this.setState({ object: object })) + .catch(e => this.props.setError(e)); } render() { |