dev
dart 52 lines 1.44 KB
Raw
1 import 'package:mobx/mobx.dart';
2 import 'package:cw_core/transaction_info.dart';
3
4 abstract class TransactionHistoryBase<TransactionType extends TransactionInfo> {
5 TransactionHistoryBase() : transactions = ObservableMap<String, TransactionType>();
6
7 @observable
8 ObservableMap<String, TransactionType> transactions;
9
10 Future<void> save();
11
12 void addOne(TransactionType transaction);
13
14 void addMany(Map<String, TransactionType> transactions);
15
16 void clear() => transactions.clear();
17
18 // bool _isUpdating;
19
20 // @action
21 // Future<void> update() async {
22 // if (_isUpdating) {
23 // return;
24 // }
25
26 // try {
27 // _isUpdating = true;
28 // final _transactions = await fetchTransactions();
29 // transactions.keys
30 // .toSet()
31 // .difference(_transactions.keys.toSet())
32 // .forEach((k) => transactions.remove(k));
33 // _transactions.forEach((key, value) => transactions[key] = value);
34 // _isUpdating = false;
35 // } catch (e) {
36 // _isUpdating = false;
37 // rethrow;
38 // }
39 // }
40
41 // void updateAsync({void Function() onFinished}) {
42 // fetchTransactionsAsync(
43 // (transaction) => transactions[transaction.id] = transaction,
44 // onFinished: onFinished);
45 // }
46
47 // void fetchTransactionsAsync(
48 // void Function(TransactionType transaction) onTransactionLoaded,
49 // {void Function() onFinished});
50
51 // Future<Map<String, TransactionType>> fetchTransactions();
52 }