diff options
author | Eugen Rochko <eugen@zeonfederated.com> | 2016-09-12 19:20:55 +0200 |
---|---|---|
committer | Eugen Rochko <eugen@zeonfederated.com> | 2016-09-12 19:20:55 +0200 |
commit | d6a64f45fd4530cfee4f7721f0c6e7ca28fe677f (patch) | |
tree | 64b6813d49d458c5833f40c9668c4677f56eaf42 /app/assets/javascripts/components/reducers/notifications.jsx | |
parent | 05b0c985b4d4b313e75ae506fb43b5690afade8d (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.jsx | 27 |
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; + } +}; |