mirror of
https://github.com/cake-tech/cake_wallet.git
synced 2025-06-28 20:39:51 +00:00
Update send_page.dart (#2154)
This commit is contained in:
parent
7a5999d90e
commit
2b493ff6dc
1 changed files with 52 additions and 39 deletions
|
@ -496,7 +496,7 @@ class SendPage extends BasePage {
|
||||||
bitcoin!.updateFeeRates(sendViewModel.wallet);
|
bitcoin!.updateFeeRates(sendViewModel.wallet);
|
||||||
}
|
}
|
||||||
|
|
||||||
reaction((_) => sendViewModel.state, (ExecutionState state) {
|
reaction((_) => sendViewModel.state, (ExecutionState state) async {
|
||||||
if (dialogContext != null && dialogContext?.mounted == true) {
|
if (dialogContext != null && dialogContext?.mounted == true) {
|
||||||
Navigator.of(dialogContext!).pop();
|
Navigator.of(dialogContext!).pop();
|
||||||
}
|
}
|
||||||
|
@ -525,6 +525,14 @@ class SendPage extends BasePage {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (state is IsExecutingState) {
|
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((_) {
|
WidgetsBinding.instance.addPostFrameCallback((_) {
|
||||||
if (context.mounted) {
|
if (context.mounted) {
|
||||||
showModalBottomSheet<void>(
|
showModalBottomSheet<void>(
|
||||||
|
@ -590,50 +598,55 @@ class SendPage extends BasePage {
|
||||||
newContactAddress = null;
|
newContactAddress = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool showContactSheet = (newContactAddress != null && sendViewModel.showAddressBookPopup);
|
||||||
|
|
||||||
await showModalBottomSheet<void>(
|
await showModalBottomSheet<void>(
|
||||||
context: context,
|
context: context,
|
||||||
isDismissible: false,
|
isDismissible: false,
|
||||||
builder: (BuildContext bottomSheetContext) {
|
builder: (BuildContext bottomSheetContext) {
|
||||||
return newContactAddress != null && sendViewModel.showAddressBookPopup
|
return showContactSheet
|
||||||
? InfoBottomSheet(
|
? InfoBottomSheet(
|
||||||
currentTheme: currentTheme,
|
currentTheme: currentTheme,
|
||||||
showDontAskMeCheckbox: true,
|
showDontAskMeCheckbox: true,
|
||||||
onCheckboxChanged: (value) => sendViewModel.setShowAddressBookPopup(!value),
|
onCheckboxChanged: (value) => sendViewModel.setShowAddressBookPopup(!value),
|
||||||
titleText: S.of(bottomSheetContext).transaction_sent,
|
titleText: S.of(bottomSheetContext).transaction_sent,
|
||||||
contentImage: 'assets/images/contact_icon.svg',
|
contentImage: 'assets/images/contact_icon.svg',
|
||||||
contentImageColor: Theme.of(context).extension<CakeTextTheme>()!.titleColor,
|
contentImageColor: Theme.of(context)
|
||||||
content: S.of(bottomSheetContext).add_contact_to_address_book,
|
.extension<CakeTextTheme>()!
|
||||||
isTwoAction: true,
|
.titleColor,
|
||||||
leftButtonText: 'No',
|
content: S.of(bottomSheetContext).add_contact_to_address_book,
|
||||||
rightButtonText: 'Yes',
|
isTwoAction: true,
|
||||||
actionLeftButton: () {
|
leftButtonText: 'No',
|
||||||
Navigator.of(bottomSheetContext).pop();
|
rightButtonText: 'Yes',
|
||||||
Navigator.of(context)
|
actionLeftButton: () {
|
||||||
.pushNamedAndRemoveUntil(Routes.dashboard, (route) => false);
|
Navigator.of(bottomSheetContext).pop();
|
||||||
RequestReviewHandler.requestReview();
|
Navigator.of(context)
|
||||||
newContactAddress = null;
|
.pushNamedAndRemoveUntil(Routes.dashboard, (route) => false);
|
||||||
},
|
RequestReviewHandler.requestReview();
|
||||||
actionRightButton: () {
|
newContactAddress = null;
|
||||||
Navigator.of(bottomSheetContext).pop();
|
},
|
||||||
RequestReviewHandler.requestReview();
|
actionRightButton: () {
|
||||||
Navigator.of(context)
|
Navigator.of(bottomSheetContext).pop();
|
||||||
.pushNamed(Routes.addressBookAddContact, arguments: newContactAddress);
|
RequestReviewHandler.requestReview();
|
||||||
newContactAddress = null;
|
Navigator.of(context)
|
||||||
},
|
.pushNamed(Routes.addressBookAddContact, arguments: newContactAddress);
|
||||||
)
|
newContactAddress = null;
|
||||||
|
},
|
||||||
|
)
|
||||||
: InfoBottomSheet(
|
: InfoBottomSheet(
|
||||||
currentTheme: currentTheme,
|
currentTheme: currentTheme,
|
||||||
titleText: S.of(bottomSheetContext).transaction_sent,
|
titleText: S.of(bottomSheetContext).transaction_sent,
|
||||||
contentImage: 'assets/images/birthday_cake.svg',
|
contentImage: 'assets/images/birthday_cake.svg',
|
||||||
actionButtonText: S.of(bottomSheetContext).close,
|
actionButtonText: S.of(bottomSheetContext).close,
|
||||||
actionButtonKey: ValueKey('send_page_sent_dialog_ok_button_key'),
|
actionButtonKey: ValueKey('send_page_sent_dialog_ok_button_key'),
|
||||||
actionButton: () {
|
actionButton: () {
|
||||||
Navigator.of(bottomSheetContext).pop();
|
Navigator.of(bottomSheetContext).pop();
|
||||||
Navigator.of(context)
|
Navigator.of(context)
|
||||||
.pushNamedAndRemoveUntil(Routes.dashboard, (route) => false);
|
.pushNamedAndRemoveUntil(Routes.dashboard, (route) => false);
|
||||||
RequestReviewHandler.requestReview();
|
RequestReviewHandler.requestReview();
|
||||||
newContactAddress = null;
|
newContactAddress = null;
|
||||||
});
|
},
|
||||||
|
);
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue