From 2b493ff6dc6182e44013404294fe586ef73751ea Mon Sep 17 00:00:00 2001 From: Serhii Date: Thu, 3 Apr 2025 17:34:07 +0300 Subject: [PATCH] Update send_page.dart (#2154) --- lib/src/screens/send/send_page.dart | 91 ++++++++++++++++------------- 1 file changed, 52 insertions(+), 39 deletions(-) diff --git a/lib/src/screens/send/send_page.dart b/lib/src/screens/send/send_page.dart index 6d91f0001..499bdb200 100644 --- a/lib/src/screens/send/send_page.dart +++ b/lib/src/screens/send/send_page.dart @@ -496,7 +496,7 @@ class SendPage extends BasePage { bitcoin!.updateFeeRates(sendViewModel.wallet); } - reaction((_) => sendViewModel.state, (ExecutionState state) { + reaction((_) => sendViewModel.state, (ExecutionState state) async { if (dialogContext != null && dialogContext?.mounted == true) { Navigator.of(dialogContext!).pop(); } @@ -525,6 +525,14 @@ class SendPage extends BasePage { } if (state is IsExecutingState) { + + // wait a bit to avoid showing the loading dialog if transaction is failed + await Future.delayed(const Duration(milliseconds: 300)); + final currentState = sendViewModel.state; + if (currentState is ExecutedSuccessfullyState || currentState is FailureState) { + return; + } + WidgetsBinding.instance.addPostFrameCallback((_) { if (context.mounted) { showModalBottomSheet( @@ -590,50 +598,55 @@ class SendPage extends BasePage { newContactAddress = null; } + bool showContactSheet = (newContactAddress != null && sendViewModel.showAddressBookPopup); + await showModalBottomSheet( context: context, isDismissible: false, builder: (BuildContext bottomSheetContext) { - return newContactAddress != null && sendViewModel.showAddressBookPopup + return showContactSheet ? InfoBottomSheet( - currentTheme: currentTheme, - showDontAskMeCheckbox: true, - onCheckboxChanged: (value) => sendViewModel.setShowAddressBookPopup(!value), - titleText: S.of(bottomSheetContext).transaction_sent, - contentImage: 'assets/images/contact_icon.svg', - contentImageColor: Theme.of(context).extension()!.titleColor, - content: S.of(bottomSheetContext).add_contact_to_address_book, - isTwoAction: true, - leftButtonText: 'No', - rightButtonText: 'Yes', - actionLeftButton: () { - Navigator.of(bottomSheetContext).pop(); - Navigator.of(context) - .pushNamedAndRemoveUntil(Routes.dashboard, (route) => false); - RequestReviewHandler.requestReview(); - newContactAddress = null; - }, - actionRightButton: () { - Navigator.of(bottomSheetContext).pop(); - RequestReviewHandler.requestReview(); - Navigator.of(context) - .pushNamed(Routes.addressBookAddContact, arguments: newContactAddress); - newContactAddress = null; - }, - ) + currentTheme: currentTheme, + showDontAskMeCheckbox: true, + onCheckboxChanged: (value) => sendViewModel.setShowAddressBookPopup(!value), + titleText: S.of(bottomSheetContext).transaction_sent, + contentImage: 'assets/images/contact_icon.svg', + contentImageColor: Theme.of(context) + .extension()! + .titleColor, + content: S.of(bottomSheetContext).add_contact_to_address_book, + isTwoAction: true, + leftButtonText: 'No', + rightButtonText: 'Yes', + actionLeftButton: () { + Navigator.of(bottomSheetContext).pop(); + Navigator.of(context) + .pushNamedAndRemoveUntil(Routes.dashboard, (route) => false); + RequestReviewHandler.requestReview(); + newContactAddress = null; + }, + actionRightButton: () { + Navigator.of(bottomSheetContext).pop(); + RequestReviewHandler.requestReview(); + Navigator.of(context) + .pushNamed(Routes.addressBookAddContact, arguments: newContactAddress); + newContactAddress = null; + }, + ) : InfoBottomSheet( - currentTheme: currentTheme, - titleText: S.of(bottomSheetContext).transaction_sent, - contentImage: 'assets/images/birthday_cake.svg', - actionButtonText: S.of(bottomSheetContext).close, - actionButtonKey: ValueKey('send_page_sent_dialog_ok_button_key'), - actionButton: () { - Navigator.of(bottomSheetContext).pop(); - Navigator.of(context) - .pushNamedAndRemoveUntil(Routes.dashboard, (route) => false); - RequestReviewHandler.requestReview(); - newContactAddress = null; - }); + currentTheme: currentTheme, + titleText: S.of(bottomSheetContext).transaction_sent, + contentImage: 'assets/images/birthday_cake.svg', + actionButtonText: S.of(bottomSheetContext).close, + actionButtonKey: ValueKey('send_page_sent_dialog_ok_button_key'), + actionButton: () { + Navigator.of(bottomSheetContext).pop(); + Navigator.of(context) + .pushNamedAndRemoveUntil(Routes.dashboard, (route) => false); + RequestReviewHandler.requestReview(); + newContactAddress = null; + }, + ); }, );