about summary refs log tree commit diff
path: root/app/assets/javascripts/components/reducers
diff options
context:
space:
mode:
authorEugen Rochko <eugen@zeonfederated.com>2016-10-18 17:09:45 +0200
committerEugen Rochko <eugen@zeonfederated.com>2016-10-18 17:09:45 +0200
commitf88b8ce757f62486d5843e1ea0191db1e5c61194 (patch)
tree79109cf3cd77240152c041641bb77915fcfc553d /app/assets/javascripts/components/reducers
parentaea151a0ded4f7cc3a16901727931aff78a8b050 (diff)
Improve how errors are displayed in the UI
Diffstat (limited to 'app/assets/javascripts/components/reducers')
-rw-r--r--app/assets/javascripts/components/reducers/notifications.jsx72
1 files changed, 12 insertions, 60 deletions
diff --git a/app/assets/javascripts/components/reducers/notifications.jsx b/app/assets/javascripts/components/reducers/notifications.jsx
index 63a814bef..886587bdb 100644
--- a/app/assets/javascripts/components/reducers/notifications.jsx
+++ b/app/assets/javascripts/components/reducers/notifications.jsx
@@ -1,68 +1,20 @@
-import { COMPOSE_SUBMIT_FAIL, COMPOSE_UPLOAD_FAIL } from '../actions/compose';
-import { FOLLOW_SUBMIT_FAIL }                       from '../actions/follow';
 import {
-  REBLOG_FAIL,
-  UNREBLOG_FAIL,
-  FAVOURITE_FAIL,
-  UNFAVOURITE_FAIL
-}                                                   from '../actions/interactions';
-import {
-  TIMELINE_REFRESH_FAIL,
-  TIMELINE_EXPAND_FAIL
-}                                                   from '../actions/timelines';
-import { NOTIFICATION_DISMISS, NOTIFICATION_CLEAR } from '../actions/notifications';
-import {
-  ACCOUNT_FETCH_FAIL,
-  ACCOUNT_FOLLOW_FAIL,
-  ACCOUNT_UNFOLLOW_FAIL,
-  ACCOUNT_TIMELINE_FETCH_FAIL,
-  ACCOUNT_TIMELINE_EXPAND_FAIL
-}                                                   from '../actions/accounts';
-import {
-  STATUS_FETCH_FAIL,
-  STATUS_DELETE_FAIL
-}                                                   from '../actions/statuses';
-import Immutable                                    from 'immutable';
-
-const initialState = Immutable.List();
+  NOTIFICATION_SHOW,
+  NOTIFICATION_DISMISS,
+  NOTIFICATION_CLEAR
+}                            from '../actions/notifications';
+import Immutable             from 'immutable';
 
-function notificationFromError(state, error) {
-  let n = Immutable.Map({
-    key: state.size > 0 ? state.last().get('key') + 1 : 0,
-    message: ''
-  });
-
-  if (error.response) {
-    n = n.withMutations(map => {
-      map.set('message', error.response.statusText);
-      map.set('title', `${error.response.status}`);
-    });
-  } else {
-    n = n.set('message', `${error}`);
-  }
-
-  return state.push(n);
-};
+const initialState = Immutable.List([]);
 
 export default function notifications(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:
-    case TIMELINE_EXPAND_FAIL:
-    case ACCOUNT_FETCH_FAIL:
-    case ACCOUNT_FOLLOW_FAIL:
-    case ACCOUNT_UNFOLLOW_FAIL:
-    case ACCOUNT_TIMELINE_FETCH_FAIL:
-    case ACCOUNT_TIMELINE_EXPAND_FAIL:
-    case STATUS_FETCH_FAIL:
-    case STATUS_DELETE_FAIL:
-    case UNREBLOG_FAIL:
-    case UNFAVOURITE_FAIL:
-      return notificationFromError(state, action.error);
+    case NOTIFICATION_SHOW:
+      return state.push(Immutable.Map({
+        key: state.size > 0 ? state.last().get('key') + 1 : 0,
+        title: action.title,
+        message: action.message
+      }));
     case NOTIFICATION_DISMISS:
       return state.filterNot(item => item.get('key') === action.notification.key);
     case NOTIFICATION_CLEAR: