diff options
author | Noah Loomans <noahloomans@gmail.com> | 2018-07-06 21:01:51 +0200 |
---|---|---|
committer | Noah Loomans <noahloomans@gmail.com> | 2018-07-06 21:01:59 +0200 |
commit | 7f1dc831265e0ba4f7f13a0e307daf28d91f8a90 (patch) | |
tree | c330848bf738aa90dee9e13ca1c10caa61d60b49 /src/client/react/components/presentational | |
parent | 74ef968a45e147069d044fbfde814886d7275aa3 (diff) |
client/schedule: Properly handle errors
Diffstat (limited to 'src/client/react/components/presentational')
3 files changed, 55 insertions, 2 deletions
diff --git a/src/client/react/components/presentational/Schedule.js b/src/client/react/components/presentational/Schedule.js index 727a1f4..9791658 100644 --- a/src/client/react/components/presentational/Schedule.js +++ b/src/client/react/components/presentational/Schedule.js @@ -38,8 +38,11 @@ class Schedule extends React.Component { this.updateScaling(); } - componentDidUpdate() { - this.updateScaling(); + componentDidUpdate(prevProps) { + const { htmlStr } = this.props; + if (prevProps.htmlStr !== htmlStr) { + this.updateScaling(); + } } componentWillUnmount() { diff --git a/src/client/react/components/presentational/ScheduleErrorDisplay.js b/src/client/react/components/presentational/ScheduleErrorDisplay.js new file mode 100644 index 0000000..59d1f69 --- /dev/null +++ b/src/client/react/components/presentational/ScheduleErrorDisplay.js @@ -0,0 +1,46 @@ +/** + * Copyright (C) 2018 Noah Loomans + * + * This file is part of rooster.hetmml.nl. + * + * rooster.hetmml.nl is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * rooster.hetmml.nl is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with rooster.hetmml.nl. If not, see <http://www.gnu.org/licenses/>. + * + */ + +import React from 'react'; +import PropTypes from 'prop-types'; +import './ScheduleErrorDisplay.scss'; + +class ScheduleErrorDisplay extends React.Component { + static propTypes = { + statusCode: PropTypes.string.isRequired, + }; + + render() { + const { statusCode } = this.props; + const errorMessage = ( + statusCode === 404 + ? 'Sorry, er is (nog) geen rooster voor deze week.' + : 'Sorry, er is iets mis gegaan tijdens het laden van deze week.' + ); + + return ( + <div className="ScheduleErrorDisplay"> + {errorMessage} + </div> + ); + } +} + +export default ScheduleErrorDisplay; diff --git a/src/client/react/components/presentational/ScheduleErrorDisplay.scss b/src/client/react/components/presentational/ScheduleErrorDisplay.scss new file mode 100644 index 0000000..15b9c2a --- /dev/null +++ b/src/client/react/components/presentational/ScheduleErrorDisplay.scss @@ -0,0 +1,4 @@ +.ScheduleErrorDisplay { + margin: 64px 32px; + text-align: center; +} |