fix getting correct currency from template (#898)

This commit is contained in:
Serhii 2023-05-03 10:01:51 +03:00 committed by GitHub
parent 0a35e5c3e1
commit f47f690803
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 51 additions and 28 deletions

View file

@ -4,14 +4,15 @@ part 'exchange_template.g.dart';
@HiveType(typeId: ExchangeTemplate.typeId) @HiveType(typeId: ExchangeTemplate.typeId)
class ExchangeTemplate extends HiveObject { class ExchangeTemplate extends HiveObject {
ExchangeTemplate({ ExchangeTemplate(
required this.amountRaw, {required this.amountRaw,
required this.depositCurrencyRaw, required this.depositCurrencyRaw,
required this.receiveCurrencyRaw, required this.receiveCurrencyRaw,
required this.providerRaw, required this.providerRaw,
required this.depositAddressRaw, required this.depositAddressRaw,
required this.receiveAddressRaw required this.receiveAddressRaw,
}); required this.depositCurrencyTitleRaw,
required this.receiveCurrencyTitleRaw});
static const typeId = 7; static const typeId = 7;
static const boxName = 'ExchangeTemplate'; static const boxName = 'ExchangeTemplate';
@ -34,6 +35,12 @@ class ExchangeTemplate extends HiveObject {
@HiveField(5) @HiveField(5)
String? receiveAddressRaw; String? receiveAddressRaw;
@HiveField(6)
String? depositCurrencyTitleRaw;
@HiveField(7)
String? receiveCurrencyTitleRaw;
String get amount => amountRaw ?? ''; String get amount => amountRaw ?? '';
String get depositCurrency => depositCurrencyRaw ?? ''; String get depositCurrency => depositCurrencyRaw ?? '';
@ -45,4 +52,8 @@ class ExchangeTemplate extends HiveObject {
String get depositAddress => depositAddressRaw ?? ''; String get depositAddress => depositAddressRaw ?? '';
String get receiveAddress => receiveAddressRaw ?? ''; String get receiveAddress => receiveAddressRaw ?? '';
}
String get depositCurrencyTitle => depositCurrencyTitleRaw ?? '';
String get receiveCurrencyTitle => receiveCurrencyTitleRaw ?? '';
}

View file

@ -280,8 +280,8 @@ class ExchangePage extends BasePage {
return TemplateTile( return TemplateTile(
key: UniqueKey(), key: UniqueKey(),
amount: template.amount, amount: template.amount,
from: template.depositCurrency, from: template.depositCurrencyTitle,
to: template.receiveCurrency, to: template.receiveCurrencyTitle,
onTap: () { onTap: () {
applyTemplate(context, exchangeViewModel, template); applyTemplate(context, exchangeViewModel, template);
}, },

View file

@ -239,9 +239,13 @@ class ExchangeTemplatePage extends BasePage {
exchangeViewModel.addTemplate( exchangeViewModel.addTemplate(
amount: exchangeViewModel.depositAmount, amount: exchangeViewModel.depositAmount,
depositCurrency: depositCurrency:
exchangeViewModel.depositCurrency.toString(), exchangeViewModel.depositCurrency.name,
depositCurrencyTitle: exchangeViewModel
.depositCurrency.title + ' ${exchangeViewModel.depositCurrency.tag ?? ''}',
receiveCurrency: receiveCurrency:
exchangeViewModel.receiveCurrency.toString(), exchangeViewModel.receiveCurrency.name,
receiveCurrencyTitle: exchangeViewModel
.receiveCurrency.title + ' ${exchangeViewModel.receiveCurrency.tag ?? ''}',
provider: exchangeViewModel.provider.toString(), provider: exchangeViewModel.provider.toString(),
depositAddress: exchangeViewModel.depositAddress, depositAddress: exchangeViewModel.depositAddress,
receiveAddress: exchangeViewModel.receiveAddress); receiveAddress: exchangeViewModel.receiveAddress);

View file

@ -8,8 +8,8 @@ part 'exchange_template_store.g.dart';
class ExchangeTemplateStore = ExchangeTemplateBase with _$ExchangeTemplateStore; class ExchangeTemplateStore = ExchangeTemplateBase with _$ExchangeTemplateStore;
abstract class ExchangeTemplateBase with Store { abstract class ExchangeTemplateBase with Store {
ExchangeTemplateBase({required this.templateSource}) ExchangeTemplateBase({required this.templateSource})
: templates = ObservableList<ExchangeTemplate>() { : templates = ObservableList<ExchangeTemplate>() {
templates = ObservableList<ExchangeTemplate>(); templates = ObservableList<ExchangeTemplate>();
update(); update();
} }
@ -20,27 +20,31 @@ abstract class ExchangeTemplateBase with Store {
Box<ExchangeTemplate> templateSource; Box<ExchangeTemplate> templateSource;
@action @action
void update() => void update() => templates.replaceRange(0, templates.length, templateSource.values.toList());
templates.replaceRange(0, templates.length, templateSource.values.toList());
@action @action
Future<void> addTemplate({ Future<void> addTemplate({
required String amount, required String amount,
required String depositCurrency, required String depositCurrency,
required String receiveCurrency, required String receiveCurrency,
required String provider, required String provider,
required String depositAddress, required String depositAddress,
required String receiveAddress}) async { required String receiveAddress,
required String depositCurrencyTitle,
required String receiveCurrencyTitle,
}) async {
final template = ExchangeTemplate( final template = ExchangeTemplate(
amountRaw: amount, amountRaw: amount,
depositCurrencyRaw: depositCurrency, depositCurrencyRaw: depositCurrency,
receiveCurrencyRaw: receiveCurrency, receiveCurrencyRaw: receiveCurrency,
providerRaw: provider, providerRaw: provider,
depositAddressRaw: depositAddress, depositAddressRaw: depositAddress,
receiveAddressRaw: receiveAddress); receiveAddressRaw: receiveAddress,
depositCurrencyTitleRaw: depositCurrencyTitle,
receiveCurrencyTitleRaw: receiveCurrencyTitle);
await templateSource.add(template); await templateSource.add(template);
} }
@action @action
Future<void> remove({required ExchangeTemplate template}) async => await template.delete(); Future<void> remove({required ExchangeTemplate template}) async => await template.delete();
} }

View file

@ -578,14 +578,18 @@ abstract class ExchangeViewModelBase with Store {
required String receiveCurrency, required String receiveCurrency,
required String provider, required String provider,
required String depositAddress, required String depositAddress,
required String receiveAddress}) => required String receiveAddress,
required String depositCurrencyTitle,
required String receiveCurrencyTitle}) =>
_exchangeTemplateStore.addTemplate( _exchangeTemplateStore.addTemplate(
amount: amount, amount: amount,
depositCurrency: depositCurrency, depositCurrency: depositCurrency,
receiveCurrency: receiveCurrency, receiveCurrency: receiveCurrency,
provider: provider, provider: provider,
depositAddress: depositAddress, depositAddress: depositAddress,
receiveAddress: receiveAddress); receiveAddress: receiveAddress,
depositCurrencyTitle: depositCurrencyTitle,
receiveCurrencyTitle: receiveCurrencyTitle);
void removeTemplate({required ExchangeTemplate template}) => void removeTemplate({required ExchangeTemplate template}) =>
_exchangeTemplateStore.remove(template: template); _exchangeTemplateStore.remove(template: template);