35 lines
760 B
TypeScript
35 lines
760 B
TypeScript
|
/**
|
||
|
* External dependencies
|
||
|
*/
|
||
|
import type { Reducer } from 'redux';
|
||
|
|
||
|
/**
|
||
|
* Internal dependencies
|
||
|
*/
|
||
|
import { defaultStoreNoticesState, StoreNoticesState } from './default-state';
|
||
|
import { ACTION_TYPES } from './action-types';
|
||
|
|
||
|
const reducer: Reducer< StoreNoticesState > = (
|
||
|
state = defaultStoreNoticesState,
|
||
|
action
|
||
|
) => {
|
||
|
switch ( action.type ) {
|
||
|
case ACTION_TYPES.REGISTER_CONTAINER:
|
||
|
return {
|
||
|
...state,
|
||
|
containers: [ ...state.containers, action.containerContext ],
|
||
|
};
|
||
|
case ACTION_TYPES.UNREGISTER_CONTAINER:
|
||
|
const newContainers = state.containers.filter(
|
||
|
( container ) => container !== action.containerContext
|
||
|
);
|
||
|
return {
|
||
|
...state,
|
||
|
containers: newContainers,
|
||
|
};
|
||
|
}
|
||
|
return state;
|
||
|
};
|
||
|
|
||
|
export default reducer;
|