Prevent double send actions in SendPage (#2542)
Serhii committed
Sep 28, 2025 at 21:52 UTC
dd4c941d2f356d7c4f2d39e9744ab43bbe1962c7
1 file changed
+11
lib/src/screens/send/send_page.dart
+11
@@ -64,6 +64,7 @@ class SendPage extends BasePage {
64
final PaymentRequest? initialPaymentRequest;
65
66
bool _effectsInstalled = false;
67
+ bool _sendInProgress = false;
68
ContactRecord? newContactAddress;
69
70
@override
@@ -412,6 +413,9 @@ class SendPage extends BasePage {
413
return LoadingPrimaryButton(
414
key: ValueKey('send_page_send_button_key'),
415
onPressed: () async {
416
+ // Prevent double taps
417
+ if (_sendInProgress) return;
418
+
419
//Request dummy node to get the focus out of the text fields
420
FocusScope.of(context).requestFocus(FocusNode());
421
@@ -467,6 +471,8 @@ class SendPage extends BasePage {
471
}
472
}
473
474
+ _sendInProgress = true;
475
+
476
final check = sendViewModel.shouldDisplayTotp();
477
authService.authenticateAction(
478
context,
@@ -474,6 +480,8 @@ class SendPage extends BasePage {
480
onAuthSuccess: (value) async {
481
if (value) {
482
await sendViewModel.createTransaction();
483
+ } else {
484
+ _sendInProgress = false;
485
}
486
},
487
);
@@ -522,6 +530,7 @@ class SendPage extends BasePage {
530
}
531
532
if (state is FailureState) {
533
+ _sendInProgress = false;
534
WidgetsBinding.instance.addPostFrameCallback(
535
(_) {
536
showPopUp<void>(
@@ -602,11 +611,13 @@ class SendPage extends BasePage {
611
);
612
613
if (result == null) sendViewModel.dismissTransaction();
614
+ _sendInProgress = false;
615
}
616
});
617
}
618
619
if (state is TransactionCommitted) {
620
+ _sendInProgress = false;
621
WidgetsBinding.instance.addPostFrameCallback((_) async {
622
if (!context.mounted) {
623
return;