woocommerce-paypal-payments/modules/ppcp-settings/resources/js/data/onboarding/reducer.js

79 lines
1.3 KiB
JavaScript
Raw Normal View History

import ACTION_TYPES from './action-types';
const defaultState = {
isSaving: false,
clientId: '',
clientSecret: '',
data: {
step: 0,
useSandbox: false,
useManualConnection: false,
},
};
export const onboardingReducer = (
state = defaultState,
{ type, ...action }
) => {
switch ( type ) {
2024-10-23 18:14:25 +02:00
// Transient data.
case ACTION_TYPES.SET_IS_SAVING_ONBOARDING_DETAILS:
return {
...state,
2024-10-23 18:14:25 +02:00
isSaving: action.isSaving,
};
case ACTION_TYPES.SET_CLIENT_ID:
return {
...state,
clientId: action.clientId,
};
case ACTION_TYPES.SET_CLIENT_SECRET:
return {
...state,
clientSecret: action.clientSecret,
};
2024-10-23 18:14:25 +02:00
// Persistent data.
case ACTION_TYPES.SET_ONBOARDING_DETAILS:
return {
...state,
2024-10-23 18:14:25 +02:00
data: action.payload,
};
2024-10-22 18:56:37 +02:00
case ACTION_TYPES.SET_ONBOARDING_STEP:
return {
...state,
data: {
...( state.data || {} ),
step: action.step,
},
};
case ACTION_TYPES.SET_SANDBOX_MODE:
return {
...state,
data: {
...( state.data || {} ),
useSandbox: action.useSandbox,
},
};
case ACTION_TYPES.SET_MANUAL_CONNECTION_MODE:
return {
...state,
data: {
...( state.data || {} ),
useManualConnection: action.useManualConnection,
},
};
2024-10-22 18:56:37 +02:00
default:
}
return state;
};
export default onboardingReducer;