From c39d1afdf8a7147aca80e36004aacfdaad0880c3 Mon Sep 17 00:00:00 2001 From: Eric Jinks <3147296+Jinksi@users.noreply.github.com> Date: Tue, 2 Jan 2024 16:40:26 +1000 Subject: [PATCH 1/3] Fix broken dispute details UI (#7959) --- ...nsaction-details-dispute-details-broken-ui | 5 + .../test/__snapshots__/index.test.tsx.snap | 78 +- client/payment-details/summary/index.tsx | 535 ++++---- client/payment-details/summary/style.scss | 6 +- .../test/__snapshots__/index.test.tsx.snap | 1208 +++++++++-------- .../test/__snapshots__/index.test.tsx.snap | 224 +-- 6 files changed, 1074 insertions(+), 982 deletions(-) create mode 100644 changelog/fix-7958-transaction-details-dispute-details-broken-ui diff --git a/changelog/fix-7958-transaction-details-dispute-details-broken-ui b/changelog/fix-7958-transaction-details-dispute-details-broken-ui new file mode 100644 index 00000000000..b196bc9910c --- /dev/null +++ b/changelog/fix-7958-transaction-details-dispute-details-broken-ui @@ -0,0 +1,5 @@ +Significance: patch +Type: fix +Comment: Not user-facing: fixes styling bug introduced in develop branch + + diff --git a/client/payment-details/order-details/test/__snapshots__/index.test.tsx.snap b/client/payment-details/order-details/test/__snapshots__/index.test.tsx.snap index f28176053a7..ea41fb13ccb 100644 --- a/client/payment-details/order-details/test/__snapshots__/index.test.tsx.snap +++ b/client/payment-details/order-details/test/__snapshots__/index.test.tsx.snap @@ -20,55 +20,61 @@ exports[`Order details page should match the snapshot - Charge without payment i data-wp-component="CardBody" >
-

- $15.00 - - USD - - - Pending - -

- -

- Fees: - -$0.00 -

- -

- Net: +

$15.00 + + USD + + + Pending +

+
+ +

+ Fees: + -$0.00 +

+ +

+ Net: + $15.00 +

+
-
-
- Payment ID: - 776 +
+ Payment ID: + 776 +
+
-

= ( { return ( -
-
-

- - { formattedAmount } - - { charge.currency || 'USD' } - - { charge.dispute ? ( - - ) : ( - - ) } - -

-
- { renderStorePrice ? ( -

- { formatExplicitCurrency( - balance.amount, - balance.currency - ) } -

- ) : null } - { balance.refunded ? ( -

- { `${ - disputeFee - ? __( - 'Deducted', - 'woocommerce-payments' - ) - : __( - 'Refunded', - 'woocommerce-payments' - ) - }: ` } - { formatExplicitCurrency( - -balance.refunded, - balance.currency - ) } -

- ) : ( - '' - ) } -

+ +

+
+

- { `${ __( - 'Fees', - 'woocommerce-payments' - ) }: ` } - { formatCurrency( - -balance.fee, - balance.currency - ) } - { disputeFee && ( - } - buttonLabel={ __( - 'Fee breakdown', - 'woocommerce-payments' - ) } - content={ - <> - - - - { formatCurrency( - transactionFee.fee, - transactionFee.currency - ) } - - - - - - { disputeFee } - - - - - - { formatCurrency( - balance.fee, - balance.currency - ) } - - - + { formattedAmount } + + { charge.currency || 'USD' } + + { charge.dispute ? ( + + ) : ( + ) }

- { charge.paydown ? ( +
+ { renderStorePrice ? ( +

+ { formatExplicitCurrency( + balance.amount, + balance.currency + ) } +

+ ) : null } + { balance.refunded ? ( +

+ { `${ + disputeFee + ? __( + 'Deducted', + 'woocommerce-payments' + ) + : __( + 'Refunded', + 'woocommerce-payments' + ) + }: ` } + { formatExplicitCurrency( + -balance.refunded, + balance.currency + ) } +

+ ) : ( + '' + ) }

- { `${ __( - 'Loan repayment', - 'woocommerce-payments' - ) }: ` } - { formatExplicitCurrency( - charge.paydown.amount, - balance.currency - ) } + + { `${ __( + 'Fees', + 'woocommerce-payments' + ) }: ` } + { formatCurrency( + -balance.fee, + balance.currency + ) } + { disputeFee && ( + + } + buttonLabel={ __( + 'Fee breakdown', + 'woocommerce-payments' + ) } + content={ + <> + + + + { formatCurrency( + transactionFee.fee, + transactionFee.currency + ) } + + + + + + { disputeFee } + + + + + + { formatCurrency( + balance.fee, + balance.currency + ) } + + + + } + /> + ) } + +

+ { charge.paydown ? ( +

+ { `${ __( + 'Loan repayment', + 'woocommerce-payments' + ) }: ` } + { formatExplicitCurrency( + charge.paydown.amount, + balance.currency + ) } +

+ ) : ( + '' + ) } +

+ + { `${ __( + 'Net', + 'woocommerce-payments' + ) }: ` } + { formatExplicitCurrency( + charge.paydown + ? balance.net - + Math.abs( + charge.paydown + .amount + ) + : balance.net, + balance.currency + ) } +

- ) : ( - '' +
+
+
+ { ! isLoading && isFraudOutcomeReview && ( +
+ { + wcpayTracks.recordEvent( + 'wcpay_fraud_protection_transaction_reviewed_merchant_blocked', + { + payment_intent_id: + charge.payment_intent, + } + ); + wcpayTracks.recordEvent( + 'payments_transactions_details_cancel_charge_button_click', + { + payment_intent_id: + charge.payment_intent, + } + ); + } } + > + { __( 'Block transaction' ) } + + + { + wcpayTracks.recordEvent( + 'wcpay_fraud_protection_transaction_reviewed_merchant_approved', + { + payment_intent_id: + charge.payment_intent, + } + ); + wcpayTracks.recordEvent( + 'payments_transactions_details_capture_charge_button_click', + { + payment_intent_id: + charge.payment_intent, + } + ); + } } + > + { __( 'Approve Transaction' ) } + +
) } -

+

{ `${ __( - 'Net', + 'Payment ID', 'woocommerce-payments' ) }: ` } - { formatExplicitCurrency( - charge.paydown - ? balance.net - - Math.abs( - charge.paydown.amount - ) - : balance.net, - balance.currency - ) } + { charge.payment_intent + ? charge.payment_intent + : charge.id } -

+
-
- { ! isLoading && isFraudOutcomeReview && ( -
- { - wcpayTracks.recordEvent( - 'wcpay_fraud_protection_transaction_reviewed_merchant_blocked', - { - payment_intent_id: - charge.payment_intent, - } - ); - wcpayTracks.recordEvent( - 'payments_transactions_details_cancel_charge_button_click', - { - payment_intent_id: - charge.payment_intent, - } - ); - } } - > - { __( 'Block transaction' ) } - - - { - wcpayTracks.recordEvent( - 'wcpay_fraud_protection_transaction_reviewed_merchant_approved', - { - payment_intent_id: - charge.payment_intent, - } - ); - wcpayTracks.recordEvent( - 'payments_transactions_details_capture_charge_button_click', - { - payment_intent_id: - charge.payment_intent, - } - ); - } } - > - { __( 'Approve Transaction' ) } - -
- ) } -
+
+ { ! charge?.refunded && charge?.captured && ( - { `${ __( - 'Payment ID', - 'woocommerce-payments' - ) }: ` } - { charge.payment_intent - ? charge.payment_intent - : charge.id } - -
-
-
-
- { ! charge?.refunded && charge?.captured && ( - - - { ( { onClose } ) => ( - - { - setIsRefundModalOpen( true ); - wcpayTracks.recordEvent( - 'payments_transactions_details_refund_modal_open', - { - payment_intent_id: - charge.payment_intent, - } - ); - onClose(); - } } - > - { __( - 'Refund in full', - 'woocommerce-payments' - ) } - - { charge.order && ( + + { ( { onClose } ) => ( + { + setIsRefundModalOpen( + true + ); wcpayTracks.recordEvent( - 'payments_transactions_details_partial_refund', + 'payments_transactions_details_refund_modal_open', { payment_intent_id: charge.payment_intent, - order_id: - charge.order - ?.number, } ); - window.location = - charge.order?.url; + onClose(); } } > { __( - 'Partial refund', + 'Refund in full', 'woocommerce-payments' ) } - ) } - - ) } - - - ) } -
+ { charge.order && ( + { + wcpayTracks.recordEvent( + 'payments_transactions_details_partial_refund', + { + payment_intent_id: + charge.payment_intent, + order_id: + charge.order + ?.number, + } + ); + window.location = + charge.order?.url; + } } + > + { __( + 'Partial refund', + 'woocommerce-payments' + ) } + + ) } + + ) } + + + ) } +
+ diff --git a/client/payment-details/summary/style.scss b/client/payment-details/summary/style.scss index 95df0d33edd..0ee051834fb 100755 --- a/client/payment-details/summary/style.scss +++ b/client/payment-details/summary/style.scss @@ -8,11 +8,6 @@ margin-bottom: 24px; } -.components-card__body:first-of-type { - display: flex; - flex-direction: row; -} - .payment-details-summary { display: flex; flex: 1; @@ -30,6 +25,7 @@ padding: 0; margin: 0; display: flex; + flex-wrap: wrap; align-items: center; .payment-details-summary__amount-currency { diff --git a/client/payment-details/summary/test/__snapshots__/index.test.tsx.snap b/client/payment-details/summary/test/__snapshots__/index.test.tsx.snap index b719e25c342..4d582a000c7 100644 --- a/client/payment-details/summary/test/__snapshots__/index.test.tsx.snap +++ b/client/payment-details/summary/test/__snapshots__/index.test.tsx.snap @@ -16,55 +16,61 @@ exports[`PaymentDetailsSummary capture notification and fraud buttons renders ca data-wp-component="CardBody" >
-

- $20.00 - - usd - - - Payment authorized - -

- -

- Fees: - -$0.70 -

- -

- Net: - $19.30 +

+ $20.00 + + usd + + + Payment authorized +

+
+ +

+ Fees: + -$0.70 +

+ +

+ Net: + $19.30 +

+
-
-
- Payment ID: - ch_38jdHA39KKA +
+ Payment ID: + ch_38jdHA39KKA +
+
-

-

- $20.00 - - usd - - - Needs review - -

- -

- Fees: - -$0.70 -

- -

- Net: - $19.30 +

+ $20.00 + + usd + + + Needs review +

+
+ +

+ Fees: + -$0.70 +

+ +

+ Net: + $19.30 +

+
-
-
- - + +
+
- Approve Transaction - -
-
- Payment ID: - ch_38jdHA39KKA + Payment ID: + ch_38jdHA39KKA +
+
-

-

- $20.00 - - usd - - - Paid - -

- -

- Fees: - -$0.70 -

- -

- Net: - $19.30 +

+ $20.00 + + usd + + + Paid +

+
+ +

+ Fees: + -$0.70 +

+ +

+ Net: + $19.30 +

+
-
-
- Payment ID: - ch_38jdHA39KKA +
+ Payment ID: + ch_38jdHA39KKA +
-
-
- + + +
@@ -923,79 +941,85 @@ exports[`PaymentDetailsSummary order missing notice does not render notice if or data-wp-component="CardBody" >
-

- $20.00 - - usd - - - Paid - -

- -

- Fees: - -$0.70 -

- -

- Net: - $19.30 +

+ $20.00 + + usd + + + Paid +

+
+ +

+ Fees: + -$0.70 +

+ +

+ Net: + $19.30 +

+
-
-
- Payment ID: - ch_38jdHA39KKA +
+ Payment ID: + ch_38jdHA39KKA +
-
-
- + + +
@@ -1212,79 +1236,85 @@ exports[`PaymentDetailsSummary order missing notice renders notice if order miss data-wp-component="CardBody" >
-

- $20.00 - - usd - - - Paid - -

- -

- Fees: - -$0.70 -

- -

- Net: - $19.30 +

+ $20.00 + + usd + + + Paid +

+
+ +

+ Fees: + -$0.70 +

+ +

+ Net: + $19.30 +

+
-
-
- Payment ID: - ch_38jdHA39KKA +
+ Payment ID: + ch_38jdHA39KKA +
-
-
- + + +
@@ -1524,79 +1554,85 @@ exports[`PaymentDetailsSummary renders a charge with subscriptions 1`] = ` data-wp-component="CardBody" >
-

- $20.00 - - usd - - - Paid - -

- -

- Fees: - -$0.70 -

- -

- Net: - $19.30 +

+ $20.00 + + usd + + + Paid +

+
+ +

+ Fees: + -$0.70 +

+ +

+ Net: + $19.30 +

+
-
-
- Payment ID: - ch_38jdHA39KKA +
+ Payment ID: + ch_38jdHA39KKA +
-
-
- + + +
@@ -1840,58 +1876,64 @@ exports[`PaymentDetailsSummary renders fully refunded information for a charge 1 data-wp-component="CardBody" >
-

- $20.00 - - usd - - - Refunded - -

-

- Refunded: - -$20.00 -

-

- Fees: - -$0.70 -

- -

- Net: - -$0.70 +

+ $20.00 + + usd + + + Refunded +

+
+

+ Refunded: + -$20.00 +

+

+ Fees: + -$0.70 +

+ +

+ Net: + -$0.70 +

+
-
-
- Payment ID: - ch_38jdHA39KKA +
+ Payment ID: + ch_38jdHA39KKA +
+
-

-

- - - USD - - -

- -

- Fees: - $0.00 -

- -

- Net: - $0.00 +

+ + + USD + +

+
+ +

+ Fees: + $0.00 +

+ +

+ Net: + $0.00 +

+
-
-
- Payment ID: +
+ Payment ID: +
+
-

-

- $20.00 - - usd - - - Partial refund - -

-

- Refunded: - -$12.00 -

-

- Fees: - -$0.70 -

- -

- Net: - $7.30 +

+ $20.00 + + usd + + + Partial refund +

+
+

+ Refunded: + -$12.00 +

+

+ Fees: + -$0.70 +

+ +

+ Net: + $7.30 +

+
-
-
- Payment ID: - ch_38jdHA39KKA +
+ Payment ID: + ch_38jdHA39KKA +
-
-
- + + +
@@ -2634,79 +2688,85 @@ exports[`PaymentDetailsSummary renders the Tap to Pay channel from metadata 1`] data-wp-component="CardBody" >
-

- $20.00 - - usd - - - Paid - -

- -

- Fees: - -$0.70 -

- -

- Net: - $19.30 +

+ $20.00 + + usd + + + Paid +

+
+ +

+ Fees: + -$0.70 +

+ +

+ Net: + $19.30 +

+
-
-
- Payment ID: - ch_38jdHA39KKA +
+ Payment ID: + ch_38jdHA39KKA +
-
-
- + + +
@@ -2923,79 +2983,85 @@ exports[`PaymentDetailsSummary renders the information of a dispute-reversal cha data-wp-component="CardBody" >
-

- $20.00 - - usd - - - Disputed: Won - -

- -

- Fees: - -$0.70 -

- -

- Net: - $19.30 +

+ $20.00 + + usd + + + Disputed: Won +

+
+ +

+ Fees: + -$0.70 +

+ +

+ Net: + $19.30 +

+
-
-
- Payment ID: - ch_38jdHA39KKA +
+ Payment ID: + ch_38jdHA39KKA +
-
-
- + + +
diff --git a/client/payment-details/test/__snapshots__/index.test.tsx.snap b/client/payment-details/test/__snapshots__/index.test.tsx.snap index 7a3274751bf..ebe9d418a92 100644 --- a/client/payment-details/test/__snapshots__/index.test.tsx.snap +++ b/client/payment-details/test/__snapshots__/index.test.tsx.snap @@ -20,78 +20,84 @@ exports[`Payment details page should match the snapshot - Charge query param 1`] data-wp-component="CardBody" >
-

- - Amount placeholder - -

- -

+

- Fee amount + Amount placeholder

- -

+

+ +

+ + Fee amount + +

+ +

+ + Net amount + +

+
+
+
+
- Net amount + Payment ID: pi_xxxxxxxxxxxxxxxxxxxxxxxx -

+
-
- -
+ + +
-
- - - -

-

- $1,500.00 - - usd - - - Paid - -

- -

- Fees: - -$74.00 -

- -

- Net: - $1,426.00 +

+ $1,500.00 + + usd + + + Paid +

+
+ +

+ Fees: + -$74.00 +

+ +

+ Net: + $1,426.00 +

+
-
-
- Payment ID: - pi_mock +
+ Payment ID: + pi_mock +
-
-
- + + +
From 8af9441403234dd72b8b7b110352ae6ca7b109c0 Mon Sep 17 00:00:00 2001 From: Malith Senaweera <6216000+malithsen@users.noreply.github.com> Date: Tue, 2 Jan 2024 09:25:04 -0600 Subject: [PATCH 2/3] Remove URL params from woopay_source_url (#7924) --- changelog/fix-trim-woopay-source-url | 4 ++++ client/checkout/woopay/email-input-iframe.js | 5 ++++- .../components/woopay/save-user/checkout-page-save-user.js | 7 +++++-- tests/js/jest-test-file-setup.js | 5 +++++ 4 files changed, 18 insertions(+), 3 deletions(-) create mode 100644 changelog/fix-trim-woopay-source-url diff --git a/changelog/fix-trim-woopay-source-url b/changelog/fix-trim-woopay-source-url new file mode 100644 index 00000000000..d0542cc8201 --- /dev/null +++ b/changelog/fix-trim-woopay-source-url @@ -0,0 +1,4 @@ +Significance: patch +Type: fix + +Checkout error when page URL is too long diff --git a/client/checkout/woopay/email-input-iframe.js b/client/checkout/woopay/email-input-iframe.js index f57c3b4e90f..4a2efe861e5 100644 --- a/client/checkout/woopay/email-input-iframe.js +++ b/client/checkout/woopay/email-input-iframe.js @@ -263,7 +263,10 @@ export const handleWooPayEmailInput = async ( ); urlParams.append( 'wcpayVersion', getConfig( 'wcpayVersionNumber' ) ); urlParams.append( 'is_blocks', isBlocksCheckout ? 'true' : 'false' ); - urlParams.append( 'source_url', window.location.href ); + urlParams.append( + 'source_url', + wcSettings?.storePages?.checkout?.permalink + ); urlParams.append( 'viewport', `${ viewportWidth }x${ viewportHeight }` diff --git a/client/components/woopay/save-user/checkout-page-save-user.js b/client/components/woopay/save-user/checkout-page-save-user.js index 8edd7c583d4..c38bcae2929 100644 --- a/client/components/woopay/save-user/checkout-page-save-user.js +++ b/client/components/woopay/save-user/checkout-page-save-user.js @@ -73,7 +73,8 @@ const CheckoutPageSaveUser = ( { isBlocksCheckout } ) => { ? {} : { save_user_in_woopay: isSaveDetailsChecked, - woopay_source_url: window.location.href, + woopay_source_url: + wcSettings?.storePages?.checkout?.permalink, woopay_is_blocks: true, woopay_viewport: `${ viewportWidth }x${ viewportHeight }`, woopay_user_phone_field: { @@ -291,7 +292,9 @@ const CheckoutPageSaveUser = ( { isBlocksCheckout } ) => { Date: Tue, 2 Jan 2024 11:30:15 -0600 Subject: [PATCH 3/3] Track payment request button load events (#7919) --- changelog/add-prb-load-tracks | 4 ++ .../blocks/payment-request-express.js | 38 ++++++++++++++++++- client/payment-request/index.js | 18 +++++++++ client/tracks/index.js | 2 + 4 files changed, 60 insertions(+), 2 deletions(-) create mode 100644 changelog/add-prb-load-tracks diff --git a/changelog/add-prb-load-tracks b/changelog/add-prb-load-tracks new file mode 100644 index 00000000000..5109e5ce0ca --- /dev/null +++ b/changelog/add-prb-load-tracks @@ -0,0 +1,4 @@ +Significance: minor +Type: dev + +Track payment-request-button loads diff --git a/client/payment-request/blocks/payment-request-express.js b/client/payment-request/blocks/payment-request-express.js index a44cc527b16..01e32444050 100644 --- a/client/payment-request/blocks/payment-request-express.js +++ b/client/payment-request/blocks/payment-request-express.js @@ -1,3 +1,5 @@ +/* global wcpayPaymentRequestParams */ + /** * External dependencies */ @@ -9,6 +11,7 @@ import { Elements, PaymentRequestButtonElement } from '@stripe/react-stripe-js'; import { useInitialization } from './use-initialization'; import { getPaymentRequestData } from '../utils'; import wcpayTracks from 'tracks'; +import { useEffect, useState } from 'react'; /** * PaymentRequestExpressComponent @@ -24,6 +27,7 @@ const PaymentRequestExpressComponent = ( { setExpressPaymentError, onClick, onClose, + onPaymentRequestAvailable, } ) => { // TODO: Don't display custom button when result.requestType // is `apple_pay` or `google_pay`. @@ -68,6 +72,7 @@ const PaymentRequestExpressComponent = ( { } else if ( result.googlePay ) { paymentRequestType = 'google_pay'; } + onPaymentRequestAvailable( paymentRequestType ); } ); const onPaymentRequestButtonClick = () => { @@ -80,7 +85,9 @@ const PaymentRequestExpressComponent = ( { if ( paymentRequestTypeEvents.hasOwnProperty( paymentRequestType ) ) { const event = paymentRequestTypeEvents[ paymentRequestType ]; - wcpayTracks.recordUserEvent( event, { source: 'checkout' } ); + wcpayTracks.recordUserEvent( event, { + source: wcpayPaymentRequestParams?.button_context, + } ); } }; @@ -104,9 +111,36 @@ const PaymentRequestExpressComponent = ( { */ export const PaymentRequestExpress = ( props ) => { const { stripe } = props; + const [ paymentRequestType, setPaymentRequestType ] = useState( false ); + + const handlePaymentRequestAvailability = ( paymentType ) => { + setPaymentRequestType( paymentType ); + }; + + useEffect( () => { + if ( paymentRequestType ) { + const paymentRequestTypeEvents = { + google_pay: wcpayTracks.events.GOOGLEPAY_BUTTON_LOAD, + apple_pay: wcpayTracks.events.APPLEPAY_BUTTON_LOAD, + }; + + if ( + paymentRequestTypeEvents.hasOwnProperty( paymentRequestType ) + ) { + const event = paymentRequestTypeEvents[ paymentRequestType ]; + wcpayTracks.recordUserEvent( event, { + source: wcpayPaymentRequestParams?.button_context, + } ); + } + } + }, [ paymentRequestType ] ); + return ( - + ); }; diff --git a/client/payment-request/index.js b/client/payment-request/index.js index 9578b42517c..fc4b6f6853a 100644 --- a/client/payment-request/index.js +++ b/client/payment-request/index.js @@ -4,6 +4,7 @@ */ import { __ } from '@wordpress/i18n'; import { doAction } from '@wordpress/hooks'; +import { debounce } from 'lodash'; /** * Internal dependencies */ @@ -65,6 +66,19 @@ jQuery( ( $ ) => { } }; + // Track the payment request button load event. + const trackPaymentRequestButtonLoad = debounce( ( source ) => { + const paymentRequestTypeEvents = { + google_pay: wcpayTracks.events.GOOGLEPAY_BUTTON_LOAD, + apple_pay: wcpayTracks.events.APPLEPAY_BUTTON_LOAD, + }; + + if ( paymentRequestTypeEvents.hasOwnProperty( paymentRequestType ) ) { + const event = paymentRequestTypeEvents[ paymentRequestType ]; + wcpayTracks.recordUserEvent( event, { source } ); + } + }, 1000 ); + /** * Object to handle Stripe payment forms. */ @@ -236,6 +250,10 @@ jQuery( ( $ ) => { paymentRequestType: paymentRequestType, } ); + trackPaymentRequestButtonLoad( + wcpayPaymentRequestParams.button_context + ); + wcpayPaymentRequest.attachPaymentRequestButtonEventListeners( prButton, paymentRequest diff --git a/client/tracks/index.js b/client/tracks/index.js index c862f189954..fa94e5d32bc 100644 --- a/client/tracks/index.js +++ b/client/tracks/index.js @@ -61,6 +61,7 @@ function recordUserEvent( eventName, eventProperties, isLegacy = false ) { const events = { APPLEPAY_BUTTON_CLICK: 'applepay_button_click', + APPLEPAY_BUTTON_LOAD: 'applepay_button_load', CONNECT_ACCOUNT_CLICKED: 'wcpay_connect_account_clicked', CONNECT_ACCOUNT_VIEW: 'page_view', CONNECT_ACCOUNT_LEARN_MORE: 'wcpay_welcome_learn_more', @@ -76,6 +77,7 @@ const events = { DISPUTE_INQUIRY_REFUND_MODAL_VIEW: 'wcpay_dispute_inquiry_refund_modal_view', GOOGLEPAY_BUTTON_CLICK: 'gpay_button_click', + GOOGLEPAY_BUTTON_LOAD: 'gpay_button_load', OVERVIEW_BALANCES_CURRENCY_CLICK: 'wcpay_overview_balances_currency_tab_click', OVERVIEW_DEPOSITS_VIEW_HISTORY_CLICK: