about summary refs log tree commit diff
path: root/app/assets/javascripts/components/reducers/notifications.jsx
diff options
context:
space:
mode:
authorEugen Rochko <eugen@zeonfederated.com>2016-09-12 19:20:55 +0200
committerEugen Rochko <eugen@zeonfederated.com>2016-09-12 19:20:55 +0200
commitd6a64f45fd4530cfee4f7721f0c6e7ca28fe677f (patch)
tree64b6813d49d458c5833f40c9668c4677f56eaf42 /app/assets/javascripts/components/reducers/notifications.jsx
parent05b0c985b4d4b313e75ae506fb43b5690afade8d (diff)
Adding a notification stack for error messages
Diffstat (limited to 'app/assets/javascripts/components/reducers/notifications.jsx')
-rw-r--r--app/assets/javascripts/components/reducers/notifications.jsx27
1 files changed, 27 insertions, 0 deletions
diff --git a/app/assets/javascripts/components/reducers/notifications.jsx b/app/assets/javascripts/components/reducers/notifications.jsx
new file mode 100644
index 000000000..6ba453292
--- /dev/null
+++ b/app/assets/javascripts/components/reducers/notifications.jsx
@@ -0,0 +1,27 @@
+import { COMPOSE_SUBMIT_FAIL, COMPOSE_UPLOAD_FAIL } from '../actions/compose';
+import { FOLLOW_SUBMIT_FAIL }                       from '../actions/follow';
+import { REBLOG_FAIL, FAVOURITE_FAIL }              from '../actions/interactions';
+import { TIMELINE_REFRESH_FAIL }                    from '../actions/timelines';
+import { NOTIFICATION_DISMISS }                     from '../actions/notifications';
+import Immutable                                    from 'immutable';
+
+const initialState = Immutable.List();
+
+export default function meta(state = initialState, action) {
+  switch(action.type) {
+    case COMPOSE_SUBMIT_FAIL:
+    case COMPOSE_UPLOAD_FAIL:
+    case FOLLOW_SUBMIT_FAIL:
+    case REBLOG_FAIL:
+    case FAVOURITE_FAIL:
+    case TIMELINE_REFRESH_FAIL:
+      return state.push(Immutable.fromJS({
+        message: action.error.response.statusText,
+        title: `${action.error.response.status}`
+      }));
+    case NOTIFICATION_DISMISS:
+      return state.clear();
+    default:
+      return state;
+  }
+};