From 2b2d5585b1a51dc7fda28ac361ab98ab7c1a9581 Mon Sep 17 00:00:00 2001
From: Philipp Stracker
Date: Fri, 6 Dec 2024 19:22:32 +0100
Subject: [PATCH] =?UTF-8?q?=E2=99=BB=EF=B8=8F=20Minor:=20Freeze=20read-onl?=
=?UTF-8?q?y=20state=20objects?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../resources/js/data/common/reducer.js | 16 ++++++++--------
.../resources/js/data/onboarding/reducer.js | 17 ++++++++++-------
2 files changed, 18 insertions(+), 15 deletions(-)
diff --git a/modules/ppcp-settings/resources/js/data/common/reducer.js b/modules/ppcp-settings/resources/js/data/common/reducer.js
index 5e94a2fa4..7d3f5697f 100644
--- a/modules/ppcp-settings/resources/js/data/common/reducer.js
+++ b/modules/ppcp-settings/resources/js/data/common/reducer.js
@@ -12,30 +12,30 @@ import ACTION_TYPES from './action-types';
// Store structure.
-const defaultTransient = {
+const defaultTransient = Object.freeze( {
isReady: false,
activities: new Map(),
// Read only values, provided by the server via hydrate.
- merchant: {
+ merchant: Object.freeze( {
isConnected: false,
isSandbox: false,
id: '',
email: '',
- },
+ } ),
- wooSettings: {
+ wooSettings: Object.freeze( {
storeCountry: '',
storeCurrency: '',
- },
-};
+ } ),
+} );
-const defaultPersistent = {
+const defaultPersistent = Object.freeze( {
useSandbox: false,
useManualConnection: false,
clientId: '',
clientSecret: '',
-};
+} );
// Reducer logic.
diff --git a/modules/ppcp-settings/resources/js/data/onboarding/reducer.js b/modules/ppcp-settings/resources/js/data/onboarding/reducer.js
index d886a07e8..9dedefc09 100644
--- a/modules/ppcp-settings/resources/js/data/onboarding/reducer.js
+++ b/modules/ppcp-settings/resources/js/data/onboarding/reducer.js
@@ -12,24 +12,24 @@ import ACTION_TYPES from './action-types';
// Store structure.
-const defaultTransient = {
+const defaultTransient = Object.freeze( {
isReady: false,
// Read only values, provided by the server.
- flags: {
+ flags: Object.freeze( {
canUseCasualSelling: false,
canUseVaulting: false,
canUseCardPayments: false,
- },
-};
+ } ),
+} );
-const defaultPersistent = {
+const defaultPersistent = Object.freeze( {
completed: false,
step: 0,
isCasualSeller: null, // null value will uncheck both options in the UI.
areOptionalPaymentMethodsEnabled: null,
products: [],
-};
+} );
// Reducer logic.
@@ -63,7 +63,10 @@ const onboardingReducer = createReducer( defaultTransient, defaultPersistent, {
// Flags are not updated by `setPersistent()`.
if ( payload.flags ) {
- newState.flags = { ...newState.flags, ...payload.flags };
+ newState.flags = Object.freeze( {
+ ...newState.flags,
+ ...payload.flags,
+ } );
}
return newState;