import { NOTIFICATION_SHOW, NOTIFICATION_DISMISS, NOTIFICATION_CLEAR } from '../actions/notifications'; import Immutable from 'immutable'; const initialState = Immutable.List([]); export default function notifications(state = initialState, action) { switch(action.type) { 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: return state.clear(); default: return state; } };