File size: 1,141 Bytes
4114d85 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
import { ENQUEUE_SNACKBAR, CLOSE_SNACKBAR, REMOVE_SNACKBAR } from '../actions'
export const initialState = {
notifications: []
}
const notifierReducer = (state = initialState, action) => {
switch (action.type) {
case ENQUEUE_SNACKBAR:
return {
...state,
notifications: [
...state.notifications,
{
key: action.key,
...action.notification
}
]
}
case CLOSE_SNACKBAR:
return {
...state,
notifications: state.notifications.map((notification) =>
action.dismissAll || notification.key === action.key ? { ...notification, dismissed: true } : { ...notification }
)
}
case REMOVE_SNACKBAR:
return {
...state,
notifications: state.notifications.filter((notification) => notification.key !== action.key)
}
default:
return state
}
}
export default notifierReducer
|