/**
* Internal dependencies
*/
import TYPES from './action-types';
const userInteractionsReducer = (
state = {
userInteractions: {
ads_modal_dismissed: false,
ads_notice_dismissed: false,
capi_modal_dismissed: false,
billingSetupFlowEntered: false,
},
isRequesting: false,
interactionsLoaded: false,
requestingErrors: {},
},
action
) => {
switch ( action.type ) {
case TYPES.RECEIVE_INTERACTIONS:
state = {
...state,
userInteractions: action.userInteractions,
interactionsLoaded: true,
};
break;
case TYPES.SET_IS_REQUESTING:
state = {
...state,
isRequesting: action.isRequesting,
};
break;
case TYPES.SET_ADS_MODAL_DISMISSED:
state = {
...state,
userInteractions: {
...state.userInteractions,
ads_modal_dismissed: action.modalDismissed,
},
};
break;
case TYPES.SET_ADS_NOTICE_DISMISSED:
state = {
...state,
userInteractions: {
...state.userInteractions,
ads_notice_dismissed: action.noticeDismissed,
},
};
break;
case TYPES.SET_CAPI_MODAL_DISMISSED:
state = {
...state,
userInteractions: {
...state.userInteractions,
capi_modal_dismissed: action.modalDismissed,
},
};
break;
case TYPES.SET_BILLING_SETUP_FLOW_ENTERED:
state = {
...state,
userInteractions: {
...state.userInteractions,
billingSetupFlowEntered: true,
},
};
break;
case TYPES.SET_REQUESTING_ERROR:
state = {
...state,
requestingErrors: {
[ action.name ]: action.error,
},
};
break;
}
return state;
};
export default userInteractionsReducer;