From 1c75fe472a30a2843277b138aefc2199640a385a Mon Sep 17 00:00:00 2001 From: Dennis Cornwell Date: Wed, 25 Sep 2024 04:03:58 -0400 Subject: [PATCH] Fix a couple issues that arose in platform pay on web after the package:web upgrade (#1917) * Restore call to preventDefaul on payment request button * * Fix marshaling of paymentRequest complete function args * --- .../lib/src/js/payment_requests/payment_request.dart | 2 +- .../stripe_web/lib/src/widgets/platform_pay_button.dart | 6 ++---- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/packages/stripe_js/lib/src/js/payment_requests/payment_request.dart b/packages/stripe_js/lib/src/js/payment_requests/payment_request.dart index eb0190acd..fca5def37 100644 --- a/packages/stripe_js/lib/src/js/payment_requests/payment_request.dart +++ b/packages/stripe_js/lib/src/js/payment_requests/payment_request.dart @@ -62,7 +62,7 @@ extension type JsPaymentResponse._(JSObject o) { @JS('complete') external JSFunction get _complete; void Function(String) get complete { - return (String val) => _complete.callAsFunction(val.toJS); + return _complete.dartify() as void Function(String); } } diff --git a/packages/stripe_web/lib/src/widgets/platform_pay_button.dart b/packages/stripe_web/lib/src/widgets/platform_pay_button.dart index b169d64cd..fe811abeb 100644 --- a/packages/stripe_web/lib/src/widgets/platform_pay_button.dart +++ b/packages/stripe_web/lib/src/widgets/platform_pay_button.dart @@ -1,13 +1,11 @@ import 'dart:js_interop'; - -import 'package:web/web.dart' as web; import 'dart:ui' as ui; import 'package:flutter/material.dart'; import 'package:flutter_stripe_web/flutter_stripe_web.dart'; import 'package:flutter_stripe_web/src/parser/payment_request.dart'; - import 'package:stripe_js/stripe_js.dart'; +import 'package:web/web.dart' as web; const kPlatformPayButtonDefaultHeight = 40.0; @@ -76,7 +74,7 @@ class _WebPlatformPayButtonState extends State { height: '${constraints.maxHeight}px', )))) ..on('click', (event) { - //callMethod(event, 'preventDefault', []); + event.toDart['preventDefault'](); widget.onPressed(); }) ..mount('#platform-pay-button'.toJS);