From 67522b9557bbb4278322a14dd80c47ad38d1904b Mon Sep 17 00:00:00 2001 From: Philipp Stracker Date: Wed, 12 Feb 2025 13:24:52 +0100 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20Add=20store=20action=20to=20update?= =?UTF-8?q?=20merchant=20details?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../resources/js/data/common/action-types.js | 1 + .../ppcp-settings/resources/js/data/common/actions.js | 11 +++++++++++ .../ppcp-settings/resources/js/data/common/reducer.js | 4 ++++ 3 files changed, 16 insertions(+) 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 );