diff options
author | Noah Loomans <noahloomans@gmail.com> | 2018-07-06 16:51:41 +0200 |
---|---|---|
committer | Noah Loomans <noahloomans@gmail.com> | 2018-07-06 17:01:03 +0200 |
commit | 53bb2628748e5967514251606d1fece9f4388b35 (patch) | |
tree | e85ea68ce281cf6abb724843972a49a6ad4ca097 /src/client/react/store/selectors.js | |
parent | ebb14ffc54670c8e2cbeba18eac238965eee4e81 (diff) |
client: Switch to connected-react-router
Diffstat (limited to 'src/client/react/store/selectors.js')
-rw-r--r-- | src/client/react/store/selectors.js | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/src/client/react/store/selectors.js b/src/client/react/store/selectors.js new file mode 100644 index 0000000..8264cdb --- /dev/null +++ b/src/client/react/store/selectors.js @@ -0,0 +1,30 @@ +import moment from 'moment'; +import queryString from 'query-string'; +import purifyWeek from '../lib/purifyWeek'; +import users from '../users'; + +export function selectUser(store) { + const { location } = store.router; + const match = location.pathname.match(/^\/([stcr])\/([-0-9a-zA-Z]+)/); + if (!match) return null; + + const user = `${match[1]}/${match[2]}`; + if (!users.allIds.includes(user)) return null; + + return user; +} + +export function selectCurrentWeek(store) { + return moment(store.now).week(); +} + +export function selectWeek(store) { + const { location } = store.router; + const weekStr = queryString.parse(location.search).week; + + if (!weekStr) { + return selectCurrentWeek(store); + } + + return purifyWeek(parseInt(weekStr, 10)); +} |