diff --git a/modules/ppcp-settings/resources/js/data/common/action-types.js b/modules/ppcp-settings/resources/js/data/common/action-types.js index 4a5569b11..ca44a470e 100644 --- a/modules/ppcp-settings/resources/js/data/common/action-types.js +++ b/modules/ppcp-settings/resources/js/data/common/action-types.js @@ -12,6 +12,7 @@ export default { SET_PERSISTENT: 'ppcp/common/SET_PERSISTENT', RESET: 'ppcp/common/RESET', HYDRATE: 'ppcp/common/HYDRATE', + SET_MERCHANT: 'ppcp/common/SET_MERCHANT', RESET_MERCHANT: 'ppcp/common/RESET_MERCHANT', // Activity management (advanced solution that replaces the isBusy state). diff --git a/modules/ppcp-settings/resources/js/data/common/actions.js b/modules/ppcp-settings/resources/js/data/common/actions.js index 4dded01ac..fbbe022de 100644 --- a/modules/ppcp-settings/resources/js/data/common/actions.js +++ b/modules/ppcp-settings/resources/js/data/common/actions.js @@ -110,6 +110,17 @@ export const setManualConnectionMode = ( useManualConnection ) => export const setWebhooks = ( webhooks ) => setPersistent( 'webhooks', webhooks ); +/** + * Replace merchant details in the store. + * + * @param {Object} merchant - The new merchant details. + * @return {Action} The action. + */ +export const setMerchant = ( merchant ) => ( { + type: ACTION_TYPES.SET_MERCHANT, + payload: { merchant }, +} ); + /** * Reset merchant details in the store. * diff --git a/modules/ppcp-settings/resources/js/data/common/reducer.js b/modules/ppcp-settings/resources/js/data/common/reducer.js index c8fb9a8dc..2f207b335 100644 --- a/modules/ppcp-settings/resources/js/data/common/reducer.js +++ b/modules/ppcp-settings/resources/js/data/common/reducer.js @@ -113,6 +113,10 @@ const commonReducer = createReducer( defaultTransient, defaultPersistent, { features: Object.freeze( { ...defaultTransient.features } ), } ), + [ ACTION_TYPES.SET_MERCHANT ]: ( state, payload ) => { + return changePersistent( state, { merchant: payload.merchant } ); + }, + [ ACTION_TYPES.HYDRATE ]: ( state, payload ) => { const newState = changePersistent( state, payload.data );