import { reducerWithInitialState } from 'typescript-fsa-reducers' import { filter } from 'lodash' import { IToastMessage } from './interfaces' import * as actions from './actions' import { logout } from '../auth/actions' export default reducerWithInitialState([] as IToastMessage[]) .case(actions.showToastMessage, (state, message: IToastMessage) => [...state, message]) .case(actions.removeToastMessage, (state, message: IToastMessage) => filter(state, toast => message.uuid !== toast.uuid)) .case(logout, () => [])