21 lines
788 B
TypeScript
21 lines
788 B
TypeScript
import { FlashMessage, ReduxReducerAction } from '@/redux/types';
|
|
import { CLEAR_ALL_FLASH_MESSAGES, PUSH_FLASH_MESSAGE, REMOVE_FLASH_MESSAGE } from '@/redux/actions/flash';
|
|
|
|
export default (state: FlashMessage[] = [], action: ReduxReducerAction) => {
|
|
switch (action.type) {
|
|
case PUSH_FLASH_MESSAGE:
|
|
return [ ...state.filter(flash => {
|
|
if (action.payload.id && flash.id) {
|
|
return flash.id !== action.payload.id;
|
|
}
|
|
|
|
return true;
|
|
}), action.payload ];
|
|
case REMOVE_FLASH_MESSAGE:
|
|
return [ ...state.filter(flash => flash.id !== action.payload) ];
|
|
case CLEAR_ALL_FLASH_MESSAGES:
|
|
return [];
|
|
default:
|
|
return [ ...state ];
|
|
}
|
|
};
|