aboutsummaryrefslogtreecommitdiff
path: root/src/client/react/actions
diff options
context:
space:
mode:
Diffstat (limited to 'src/client/react/actions')
-rw-r--r--src/client/react/actions/search.js19
-rw-r--r--src/client/react/actions/view.js31
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,
+ });
+ },
+ );
+};