cake_wallet/lib/view_model/send/template_view_model.dart
Serhii 14e99daa73
align the hint with the prefix in the text field (#1571)
* Update send_card.dart

* update currency amount text field widget

* Update qr_widget.dart
2024-08-10 00:48:36 +03:00

75 lines
2.1 KiB
Dart

import 'package:cake_wallet/entities/template.dart';
import 'package:cake_wallet/view_model/send/output.dart';
import 'package:mobx/mobx.dart';
import 'package:cw_core/wallet_base.dart';
import 'package:cw_core/crypto_currency.dart';
import 'package:cake_wallet/store/dashboard/fiat_conversion_store.dart';
import 'package:cake_wallet/store/settings_store.dart';
part 'template_view_model.g.dart';
class TemplateViewModel = TemplateViewModelBase with _$TemplateViewModel;
abstract class TemplateViewModelBase with Store {
final WalletBase _wallet;
final SettingsStore _settingsStore;
final FiatConversionStore _fiatConversationStore;
TemplateViewModelBase({
required WalletBase wallet,
required SettingsStore settingsStore,
required FiatConversionStore fiatConversationStore,
}) : _wallet = wallet,
_settingsStore = settingsStore,
_fiatConversationStore = fiatConversationStore,
_currency = wallet.currency,
output = Output(wallet, settingsStore, fiatConversationStore, () => wallet.currency) {
output = Output(_wallet, _settingsStore, _fiatConversationStore, () => _currency);
}
@observable
Output output;
@observable
String name = '';
@observable
String address = '';
@observable
CryptoCurrency _currency;
@observable
bool isCryptoSelected = true;
@action
void setCryptoCurrency(bool value) => isCryptoSelected = value;
@action
void reset() {
name = '';
address = '';
isCryptoSelected = true;
output.reset();
}
Template toTemplate({required String cryptoCurrency, required String fiatCurrency}) {
return Template(
isCurrencySelectedRaw: isCryptoSelected,
nameRaw: name,
addressRaw: address,
cryptoCurrencyRaw: cryptoCurrency,
fiatCurrencyRaw: fiatCurrency,
amountRaw: output.cryptoAmount,
amountFiatRaw: output.fiatAmount);
}
@action
void changeSelectedCurrency(CryptoCurrency currency) {
isCryptoSelected = true;
_currency = currency;
}
@computed
CryptoCurrency get selectedCurrency => _currency;
}