Generic fixes (#1245)

* Remove error message if buy action is disabled

* Fix wallet list selected wallet issue

* Check if the widget is still mounted before showing popup

* minor code readability enhancement [skip ci]

* Code enhancement [skip ci]

* Revert removing ask each time localization

* Add Moonpay to sell flow
Code Enhancements

* remove error popup when sell option is disabled
This commit is contained in:
Omar Hatem
2024-01-01 15:05:37 +02:00
committed by GitHub
parent 4065a1bcab
commit 133fa2987a
23 changed files with 270 additions and 313 deletions
+15 -23
View File
@@ -1,5 +1,3 @@
import 'package:cake_wallet/buy/buy_provider.dart';
import 'package:cake_wallet/entities/buy_provider_types.dart';
import 'package:cake_wallet/generated/i18n.dart';
import 'package:cake_wallet/src/screens/base_page.dart';
import 'package:cake_wallet/src/widgets/option_tile.dart';
@@ -22,8 +20,7 @@ class BuySellOptionsPage extends BasePage {
@override
Widget body(BuildContext context) {
final isLightMode =
Theme.of(context).extension<OptionTileTheme>()?.useDarkImage ?? false;
final isLightMode = Theme.of(context).extension<OptionTileTheme>()?.useDarkImage ?? false;
final availableProviders = isBuyAction
? dashboardViewModel.availableBuyProviders
: dashboardViewModel.availableSellProviders;
@@ -46,31 +43,26 @@ class BuySellOptionsPage extends BasePage {
child: OptionTile(
image: icon,
title: provider.toString(),
description: isBuyAction
? provider.buyOptionDescription
: provider.sellOptionDescription,
onPressed: () =>
provider.launchProvider(context, isBuyAction),
description: provider.providerDescription,
onPressed: () => provider.launchProvider(context, isBuyAction),
),
);
}).toList(),
Spacer(),
Padding(
padding: EdgeInsets.fromLTRB(24, 24, 24, 32),
child: Text(
isBuyAction
? S.of(context).select_buy_provider_notice
: S.of(context).select_sell_provider_notice,
textAlign: TextAlign.center,
style: TextStyle(
fontSize: 14,
fontWeight: FontWeight.normal,
color: Theme.of(context)
.extension<TransactionTradeTheme>()!
.detailsTitlesColor,
),
Padding(
padding: EdgeInsets.fromLTRB(24, 24, 24, 32),
child: Text(
isBuyAction
? S.of(context).select_buy_provider_notice
: S.of(context).select_sell_provider_notice,
textAlign: TextAlign.center,
style: TextStyle(
fontSize: 14,
fontWeight: FontWeight.normal,
color: Theme.of(context).extension<TransactionTradeTheme>()!.detailsTitlesColor,
),
),
),
],
),
),
+1 -1
View File
@@ -1,7 +1,7 @@
import 'dart:async';
import 'dart:io';
import 'package:cake_wallet/buy/buy_provider.dart';
import 'package:cake_wallet/buy/moonpay/moonpay_buy_provider.dart';
import 'package:cake_wallet/buy/moonpay/moonpay_provider.dart';
import 'package:cake_wallet/buy/wyre/wyre_buy_provider.dart';
import 'package:cake_wallet/generated/i18n.dart';
import 'package:cake_wallet/palette.dart';
@@ -29,7 +29,7 @@ class BuyListItem extends StatelessWidget {
@override
Widget build(BuildContext context) {
final isSelected = selectedProvider?.buyOptionDescription == provider.buyOptionDescription;
final isSelected = selectedProvider?.providerDescription == provider.providerDescription;
final iconColor = isSelected ? Colors.white : Colors.black;
final providerIcon = Image.asset('assets/images/wyre-icon.png', width: 36, height: 36);
@@ -299,7 +299,8 @@ class ExchangeTradeState extends State<ExchangeTradeForm> {
}
void transactionStatePopup() {
showPopUp<void>(
if (this.mounted) {
showPopUp<void>(
context: context,
builder: (BuildContext popupContext) {
return Observer(builder: (_) {
@@ -344,7 +345,7 @@ class ExchangeTradeState extends State<ExchangeTradeForm> {
onPressed: () {
Navigator.of(popupContext).pop();
RequestReviewHandler.requestReview();
},
},
text: S.of(popupContext).got_it,
color: Theme.of(popupContext).primaryColor,
textColor: Colors.white))
@@ -391,5 +392,6 @@ class ExchangeTradeState extends State<ExchangeTradeForm> {
);
});
});
}
}
}
@@ -1,6 +1,5 @@
import 'package:cake_wallet/entities/wallet_list_order_types.dart';
import 'package:cake_wallet/src/screens/dashboard/widgets/filter_list_widget.dart';
import 'package:cake_wallet/src/screens/dashboard/widgets/filter_widget.dart';
import 'package:cake_wallet/src/screens/wallet_list/filtered_list.dart';
import 'package:cake_wallet/themes/extensions/cake_text_theme.dart';
import 'package:cake_wallet/core/auth_service.dart';
@@ -335,7 +334,9 @@ class WalletListBodyState extends State<WalletListBody> {
// in desktop platforms the navigation tree is different
if (responsiveLayoutUtil.shouldRenderMobileUI) {
WidgetsBinding.instance.addPostFrameCallback((_) {
Navigator.of(context).pop();
if (this.mounted) {
Navigator.of(context).pop();
}
});
}
} catch (e) {