parent
05b0c985b4
commit
d6a64f45fd
@ -0,0 +1,8 @@ |
||||
export const NOTIFICATION_DISMISS = 'NOTIFICATION_DISMISS'; |
||||
|
||||
export function dismissNotification(notification) { |
||||
return { |
||||
type: NOTIFICATION_DISMISS, |
||||
notification: notification |
||||
}; |
||||
}; |
@ -0,0 +1,25 @@ |
||||
import { connect } from 'react-redux'; |
||||
import { NotificationStack } from 'react-notification'; |
||||
import { dismissNotification } from '../actions/notifications'; |
||||
|
||||
const mapStateToProps = (state, props) => { |
||||
return { |
||||
notifications: state.get('notifications').map((item, i) => ({ |
||||
message: item.get('message'), |
||||
title: item.get('title'), |
||||
key: i, |
||||
action: 'Dismiss', |
||||
dismissAfter: 5000 |
||||
})).toJS() |
||||
}; |
||||
}; |
||||
|
||||
const mapDispatchToProps = (dispatch) => { |
||||
return { |
||||
onDismiss: notifiction => { |
||||
dispatch(dismissNotification(notifiction)); |
||||
} |
||||
}; |
||||
}; |
||||
|
||||
export default connect(mapStateToProps, mapDispatchToProps)(NotificationStack); |
@ -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; |
||||
} |
||||
}; |
Loading…
Reference in new issue