Skip to content

Commit 1b79ca4

Browse files
committed
W-21012995, W-21103673: Addressing comments
1 parent 0bc675e commit 1b79ca4

File tree

1 file changed

+12
-24
lines changed

1 file changed

+12
-24
lines changed

packages/template-retail-react-app/app/pages/checkout/partials/sf-payments-sheet.jsx

Lines changed: 12 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -528,29 +528,18 @@ const SFPaymentsSheet = forwardRef((props, ref) => {
528528
[customer, paymentConfig]
529529
)
530530

531-
const canSaveForFutureUsage = isRegistered && !!customer?.customerId
532-
533531
useEffect(() => {
534-
const isCustomerDataReady = !isCustomerDataLoading
535-
const hasNoCheckoutInstance = !checkoutComponent.current
536-
const hasSfp = !!sfp
537-
const hasMetadata = !!metadata
538-
const hasContainer = !!containerElementRef.current
539-
const hasPaymentConfig = !!paymentConfig
540-
541-
const readyToMountSFP =
542-
isCustomerDataReady &&
543-
hasNoCheckoutInstance &&
544-
hasSfp &&
545-
hasMetadata &&
546-
hasContainer &&
547-
hasPaymentConfig
548-
549-
if (!readyToMountSFP) {
550-
return
551-
}
532+
// Mount SFP only when all required data and DOM are ready; otherwise skip or wait for a later run.
533+
534+
if (isCustomerDataLoading) return // Wait for savedPaymentMethods data to load for registered users
535+
if (checkoutComponent.current) return // Skip if Componenet Already mounted
536+
if (!sfp) return // Skip if SFP SDK not loaded yet
537+
if (!metadata) return // Skip if SFP metadata not available yet
538+
if (!containerElementRef.current) return // Skip if Payment container ref not attached to DOM yet
539+
if (!paymentConfig) return // Skip if Payment config not loaded yet
540+
552541

553-
const paymentMethodSetAccounts = (paymentConfig.paymentMethodSetAccounts || []).map(
542+
const paymentMethodSetAccounts = (paymentConfig.paymentMethodSetAccounts || []).map(
554543
(account) => ({
555544
...account,
556545
gatewayId: account.accountId
@@ -571,7 +560,7 @@ const SFPaymentsSheet = forwardRef((props, ref) => {
571560
options: {
572561
useManualCapture: !cardCaptureAutomatic,
573562
returnUrl: `${window.location.protocol}//${window.location.host}/checkout/payment-processing`,
574-
showSaveForFutureUsageCheckbox: canSaveForFutureUsage,
563+
showSaveForFutureUsageCheckbox: isRegistered,
575564
// Suppress "Make payment method default" checkbox since we don't support default SPM yet
576565
showSaveAsDefaultCheckbox: false,
577566
savedPaymentMethods: savedPaymentMethods
@@ -612,8 +601,7 @@ const SFPaymentsSheet = forwardRef((props, ref) => {
612601
metadata,
613602
containerElementRef.current,
614603
paymentConfig,
615-
cardCaptureAutomatic,
616-
canSaveForFutureUsage
604+
cardCaptureAutomatic
617605
])
618606

619607
useEffect(() => {

0 commit comments

Comments
 (0)