Add support for flash messages utilizing redux
This commit is contained in:
parent
b93b40ba31
commit
435626f4b7
15 changed files with 268 additions and 34 deletions
21
resources/scripts/redux/reducers/flash.ts
Normal file
21
resources/scripts/redux/reducers/flash.ts
Normal file
|
@ -0,0 +1,21 @@
|
|||
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 ];
|
||||
}
|
||||
};
|
Loading…
Add table
Add a link
Reference in a new issue