diff options
author | Noah Loomans <noahloomans@gmail.com> | 2018-06-28 14:11:00 +0200 |
---|---|---|
committer | Noah Loomans <noahloomans@gmail.com> | 2018-06-28 14:11:00 +0200 |
commit | e61429154d4c06e0362abd55482400a45b7636ab (patch) | |
tree | 5cf66a52d9c2e1769c41ab002d2237089ca5853b /src/client | |
parent | ecc6e06e92f23b16817985e87b2e997b754f527d (diff) |
Extract <WeekDisplay /> from <WeekSelector />
Diffstat (limited to 'src/client')
-rw-r--r-- | src/client/react/components/presentational/WeekDisplay.js | 26 | ||||
-rw-r--r-- | src/client/react/components/presentational/WeekSelector.js | 25 |
2 files changed, 33 insertions, 18 deletions
diff --git a/src/client/react/components/presentational/WeekDisplay.js b/src/client/react/components/presentational/WeekDisplay.js new file mode 100644 index 0000000..38125b2 --- /dev/null +++ b/src/client/react/components/presentational/WeekDisplay.js @@ -0,0 +1,26 @@ +import React from 'react'; +import PropTypes from 'prop-types'; + +class WeekDisplay extends React.Component { + static propTypes = { + selectedWeek: PropTypes.number.isRequired, + currentWeek: PropTypes.number.isRequired, + } + + render() { + const { selectedWeek, currentWeek } = this.props; + + switch (selectedWeek) { + case currentWeek: + return `Huidige week • ${selectedWeek}`; + case currentWeek + 1: + return `Volgende week • ${selectedWeek}`; + case currentWeek - 1: + return `Vorige week • ${selectedWeek}`; + default: + return `Week ${selectedWeek}`; + } + } +} + +export default WeekDisplay; diff --git a/src/client/react/components/presentational/WeekSelector.js b/src/client/react/components/presentational/WeekSelector.js index 9f69121..e47a175 100644 --- a/src/client/react/components/presentational/WeekSelector.js +++ b/src/client/react/components/presentational/WeekSelector.js @@ -28,6 +28,7 @@ import ArrowForwardIcon from 'react-icons/lib/md/arrow-forward'; import purifyWeek from '../../lib/purifyWeek'; import './WeekSelector.scss'; +import WeekDisplay from './WeekDisplay'; class WeekSelector extends React.Component { static propTypes = { @@ -36,23 +37,6 @@ class WeekSelector extends React.Component { setWeek: PropTypes.func.isRequired, }; - getWeekText() { - const { week } = this.props; - - const currentWeek = moment().week(); - - switch (week) { - case currentWeek: - return `Huidige week • ${week}`; - case currentWeek + 1: - return `Volgende week • ${week}`; - case currentWeek - 1: - return `Vorige week • ${week}`; - default: - return `Week ${week}`; - } - } - updateWeek(change) { const { week, setWeek } = this.props; const newWeek = purifyWeek(week + change); @@ -62,13 +46,18 @@ class WeekSelector extends React.Component { } render() { + const { week } = this.props; + return ( <div className="WeekSelector"> <button type="button" onClick={() => this.updateWeek(-1)}> <ArrowBackIcon /> </button> <div className="text"> - {this.getWeekText()} + <WeekDisplay + selectedWeek={week} + currentWeek={moment().week()} + /> </div> <button type="button" onClick={() => this.updateWeek(+1)}> <ArrowForwardIcon /> |