diff options
Diffstat (limited to 'src/client/react/actions')
-rw-r--r-- | src/client/react/actions/search.js | 19 | ||||
-rw-r--r-- | src/client/react/actions/view.js | 31 |
2 files changed, 50 insertions, 0 deletions
diff --git a/src/client/react/actions/search.js b/src/client/react/actions/search.js new file mode 100644 index 0000000..22daeca --- /dev/null +++ b/src/client/react/actions/search.js @@ -0,0 +1,19 @@ +export const setUser = user => ({ + type: 'SEARCH/SET_USER', + user, +}); + +export const inputChange = searchText => ({ + type: 'SEARCH/INPUT_CHANGE', + searchText, +}); + +/** + * Change the selected result. + * @param {+1/-1} relativeChange usually +1 or -1, the change relative to the + * current result. + */ +export const changeSelectedResult = relativeChange => ({ + type: 'SEARCH/CHANGE_SELECTED_RESULT', + relativeChange, +}); diff --git a/src/client/react/actions/view.js b/src/client/react/actions/view.js new file mode 100644 index 0000000..79ec143 --- /dev/null +++ b/src/client/react/actions/view.js @@ -0,0 +1,31 @@ +// eslint-disable-next-line import/prefer-default-export +export const fetchSchedule = (user, week) => (dispatch) => { + dispatch({ + type: 'VIEW/FETCH_SCHEDULE_REQUEST', + user, + week, + }); + + fetch(`/get/${user}?week=${week}`).then( + // success + (r) => { + r.text().then((htmlStr) => { + dispatch({ + type: 'VIEW/FETCH_SCHEDULE_SUCCESS', + user, + week, + htmlStr, + }); + }); + }, + + // error + () => { + dispatch({ + type: 'VIEW/FETCH_SCHEDULE_FAILURE', + week, + user, + }); + }, + ); +}; |