dev
dart 47 lines 1.38 KB
Raw
1 import 'dart:async';
2 import 'package:mobx/mobx.dart';
3 import 'package:hive/hive.dart';
4 import 'package:cake_wallet/entities/template.dart';
5
6 part 'send_template_store.g.dart';
7
8 class SendTemplateStore = SendTemplateBase with _$SendTemplateStore;
9
10 abstract class SendTemplateBase with Store {
11 SendTemplateBase({required this.templateSource}) : templates = ObservableList<Template>() {
12 update();
13 }
14
15 @observable
16 ObservableList<Template> templates;
17
18 Box<Template> templateSource;
19
20 @action
21 void update() => templates.replaceRange(0, templates.length, templateSource.values.toList());
22
23 @action
24 Future<void> addTemplate(
25 {required String name,
26 required bool isCurrencySelected,
27 required String address,
28 required String cryptoCurrency,
29 required String fiatCurrency,
30 required String amount,
31 required String amountFiat,
32 required List<Template> additionalRecipients}) async {
33 final template = Template(
34 nameRaw: name,
35 isCurrencySelectedRaw: isCurrencySelected,
36 addressRaw: address,
37 cryptoCurrencyRaw: cryptoCurrency,
38 fiatCurrencyRaw: fiatCurrency,
39 amountRaw: amount,
40 amountFiatRaw: amountFiat,
41 additionalRecipientsRaw: additionalRecipients);
42 await templateSource.add(template);
43 }
44
45 @action
46 Future<void> remove({required Template template}) async => await template.delete();
47 }