Skip to content

Commit 760489e

Browse files
authored
Merge pull request #3533 from woocommerce/PCP-4712-appswitch-qa
Block UI during onApprove callback (4712)
2 parents de21bfe + a6b1d35 commit 760489e

File tree

2 files changed

+14
-3
lines changed

2 files changed

+14
-3
lines changed

modules/ppcp-button/resources/js/modules/ActionHandler/CheckoutActionHandler.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,7 @@ class CheckoutActionHandler {
158158
};
159159
return {
160160
createOrder,
161-
onApprove: onApprove( this, this.errorHandler, this.spinner ),
161+
onApprove: onApprove( this, this.errorHandler ),
162162
onCancel: () => {
163163
spinner.unblock();
164164
},

modules/ppcp-button/resources/js/modules/OnApproveHandler/onApproveForPayNow.js

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,20 @@ import {
22
getCurrentPaymentMethod,
33
PaymentMethods,
44
} from '../Helper/CheckoutMethodState';
5+
import Spinner from '../Helper/Spinner';
56

6-
const onApprove = ( context, errorHandler, spinner ) => {
7+
import resumeFlowHelper from '../Helper/ResumeFlowHelper';
8+
9+
const onApprove = ( context, errorHandler ) => {
710
return ( data, actions ) => {
11+
const spinner = Spinner.fullPage();
812
spinner.block();
913
errorHandler.clear();
14+
// Pay Now submits via form (not AJAX), so we can't detect payment errors.
15+
// Preemptively remove hash params to prevent reload issues.
16+
if ( resumeFlowHelper.isResumeFlow() ) {
17+
resumeFlowHelper.cleanHashParams();
18+
}
1019

1120
return fetch( context.config.ajax.approve_order.endpoint, {
1221
method: 'POST',
@@ -24,7 +33,6 @@ const onApprove = ( context, errorHandler, spinner ) => {
2433
return res.json();
2534
} )
2635
.then( ( data ) => {
27-
spinner.unblock();
2836
if ( ! data.success ) {
2937
if ( data.data.code === 100 ) {
3038
errorHandler.message( data.data.message );
@@ -49,6 +57,9 @@ const onApprove = ( context, errorHandler, spinner ) => {
4957
}
5058

5159
document.querySelector( '#place_order' ).click();
60+
} )
61+
.finally( () => {
62+
spinner.unblock();
5263
} );
5364
};
5465
};

0 commit comments

Comments
 (0)