This commit is contained in:
M
2020-10-24 15:55:24 +03:00
parent 0c197660a8
commit 588d93c1a4
6 changed files with 82 additions and 85 deletions
+66 -74
View File
@@ -1,26 +1,25 @@
import 'dart:ui';
import 'package:cake_wallet/exchange/exchange_provider.dart';
import 'package:cake_wallet/core/execution_state.dart';
import 'package:cake_wallet/exchange/exchange_template.dart';
import 'package:cake_wallet/src/screens/base_page.dart';
import 'package:cake_wallet/src/widgets/alert_with_two_actions.dart';
import 'package:cake_wallet/src/widgets/keyboard_done_button.dart';
import 'package:cake_wallet/src/widgets/template_tile.dart';
import 'package:cake_wallet/src/widgets/trail_button.dart';
import 'package:cake_wallet/utils/show_pop_up.dart';
import 'package:dotted_border/dotted_border.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter_mobx/flutter_mobx.dart';
import 'package:keyboard_actions/keyboard_actions.dart';
import 'package:mobx/mobx.dart';
import 'package:cake_wallet/exchange/exchange_provider.dart';
import 'package:cake_wallet/core/execution_state.dart';
import 'package:cake_wallet/exchange/exchange_template.dart';
import 'package:cake_wallet/exchange/exchange_trade_state.dart';
import 'package:cake_wallet/exchange/limits_state.dart';
import 'package:cake_wallet/src/screens/base_page.dart';
import 'package:cake_wallet/src/widgets/alert_with_two_actions.dart';
import 'package:cake_wallet/src/widgets/keyboard_done_button.dart';
import 'package:cake_wallet/src/widgets/template_tile.dart';
import 'package:cake_wallet/src/widgets/trail_button.dart';
import 'package:cake_wallet/utils/show_pop_up.dart';
import 'package:cake_wallet/routes.dart';
import 'package:cake_wallet/generated/i18n.dart';
import 'package:cake_wallet/entities/crypto_currency.dart';
import 'package:cake_wallet/exchange/xmrto/xmrto_exchange_provider.dart';
// import 'package:cake_wallet/exchange/exchange_trade_state.dart';
// import 'package:cake_wallet/exchange/limits_state.dart';
import 'package:cake_wallet/src/screens/exchange/widgets/exchange_card.dart';
import 'package:cake_wallet/src/widgets/primary_button.dart';
import 'package:cake_wallet/src/widgets/scollable_with_bottom_section.dart';
@@ -209,9 +208,10 @@ class ExchangePage extends BasePage {
exchangeViewModel.wallet.currency
? exchangeViewModel.wallet.address
: exchangeViewModel.receiveAddress,
initialIsAmountEditable:
exchangeViewModel.provider is
XMRTOExchangeProvider ? true : false,
initialIsAmountEditable: exchangeViewModel
.provider is XMRTOExchangeProvider
? true
: false,
initialIsAddressEditable:
exchangeViewModel
.isReceiveAddressEnabled,
@@ -401,7 +401,7 @@ class ExchangePage extends BasePage {
Theme.of(context).accentTextTheme.body2.color,
textColor: Colors.white,
isLoading: exchangeViewModel.tradeState
is IsExecutingState,
is TradeIsCreating,
)),
]),
)),
@@ -447,20 +447,16 @@ class ExchangePage extends BasePage {
final receiveAmountController = receiveKey.currentState.amountController;
final limitsState = exchangeViewModel.limitsState;
// FIXME: FIXME
// final limitsState = exchangeViewModel.limitsState;
//
// if (limitsState is LimitsLoadedSuccessfully) {
// final min = limitsState.limits.min != null
// ? limitsState.limits.min.toString()
// : null;
// final max = limitsState.limits.max != null
// ? limitsState.limits.max.toString()
// : null;
// final key = depositKey;
// key.currentState.changeLimits(min: min, max: max);
// }
if (limitsState is LimitsLoadedSuccessfully) {
final min = limitsState.limits.min != null
? limitsState.limits.min.toString()
: null;
final max = limitsState.limits.max != null
? limitsState.limits.max.toString()
: null;
final key = depositKey;
key.currentState.changeLimits(min: min, max: max);
}
_onCurrencyChange(
exchangeViewModel.receiveCurrency, exchangeViewModel, receiveKey);
@@ -523,55 +519,51 @@ class ExchangePage extends BasePage {
reaction((_) => exchangeViewModel.provider, (ExchangeProvider provider) {
provider is XMRTOExchangeProvider
? receiveKey.currentState.isAmountEditable(isEditable: true)
: receiveKey.currentState.isAmountEditable(isEditable: false);
? receiveKey.currentState.isAmountEditable(isEditable: true)
: receiveKey.currentState.isAmountEditable(isEditable: false);
});
// FIXME: FIXME
reaction((_) => exchangeViewModel.tradeState, (ExchangeTradeState state) {
if (state is TradeIsCreatedFailure) {
WidgetsBinding.instance.addPostFrameCallback((_) {
showPopUp<void>(
context: context,
builder: (BuildContext context) {
return AlertWithOneAction(
alertTitle: S.of(context).error,
alertContent: state.error,
buttonText: S.of(context).ok,
buttonAction: () => Navigator.of(context).pop());
});
});
}
if (state is TradeIsCreatedSuccessfully) {
Navigator.of(context).pushNamed(Routes.exchangeConfirm);
}
});
// reaction((_) => exchangeViewModel.tradeState, (ExchangeTradeState state) {
// if (state is TradeIsCreatedFailure) {
// WidgetsBinding.instance.addPostFrameCallback((_) {
// showPopUp<void>(
// context: context,
// builder: (BuildContext context) {
// return AlertWithOneAction(
// alertTitle: S.of(context).error,
// alertContent: state.error,
// buttonText: S.of(context).ok,
// buttonAction: () => Navigator.of(context).pop());
// });
// });
// }
// if (state is TradeIsCreatedSuccessfully) {
// Navigator.of(context).pushNamed(Routes.exchangeConfirm);
// }
// });
reaction((_) => exchangeViewModel.limitsState, (LimitsState state) {
String min;
String max;
// FIXME: FIXME
if (state is LimitsLoadedSuccessfully) {
min = state.limits.min != null ? state.limits.min.toString() : null;
max = state.limits.max != null ? state.limits.max.toString() : null;
}
// reaction((_) => exchangeViewModel.limitsState, (LimitsState state) {
// String min;
// String max;
//
// if (state is LimitsLoadedSuccessfully) {
// min = state.limits.min != null ? state.limits.min.toString() : null;
// max = state.limits.max != null ? state.limits.max.toString() : null;
// }
//
// if (state is LimitsLoadedFailure) {
// min = '0';
// max = '0';
// }
//
// if (state is LimitsIsLoading) {
// min = '...';
// max = '...';
// }
//
// depositKey.currentState.changeLimits(min: min, max: max);
// receiveKey.currentState.changeLimits(min: null, max: null);
// });
if (state is LimitsLoadedFailure) {
min = '0';
max = '0';
}
if (state is LimitsIsLoading) {
min = '...';
max = '...';
}
depositKey.currentState.changeLimits(min: min, max: max);
receiveKey.currentState.changeLimits(min: null, max: null);
});
depositAddressController.addListener(
() => exchangeViewModel.depositAddress = depositAddressController.text);