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 );