cake_wallet/lib/entities/contact_record.dart

49 lines
1.3 KiB
Dart
Raw Permalink Normal View History

2020-09-26 19:17:31 +00:00
import 'package:cake_wallet/entities/contact.dart';
import 'package:cake_wallet/entities/contact_base.dart';
import 'package:cake_wallet/entities/record.dart';
import 'package:cw_core/crypto_currency.dart';
import 'package:hive/hive.dart';
import 'package:mobx/mobx.dart';
2020-09-26 19:17:31 +00:00
part 'contact_record.g.dart';
class ContactRecord = ContactRecordBase with _$ContactRecord;
abstract class ContactRecordBase extends Record<Contact> with Store implements ContactBase {
2020-09-26 19:17:31 +00:00
ContactRecordBase(Box<Contact> source, Contact original)
2022-10-12 17:09:57 +00:00
: name = original.name,
address = original.address,
type = original.type,
lastChange = original.lastChange,
super(source, original);
2020-09-26 19:17:31 +00:00
@override
2020-09-26 19:17:31 +00:00
@observable
String name;
@override
2020-09-26 19:17:31 +00:00
@observable
String address;
@override
2020-09-26 19:17:31 +00:00
@observable
CryptoCurrency type;
DateTime? lastChange;
2020-09-26 19:17:31 +00:00
@override
void toBind(Contact original) {
reaction((_) => name, (String name) => original.name = name);
reaction((_) => address, (String address) => original.address = address);
reaction((_) => type,
(CryptoCurrency currency) => original.updateCryptoCurrency(currency: currency));
2020-09-26 19:17:31 +00:00
}
@override
void fromBind(Contact original) {
name = original.name;
address = original.address;
type = original.type;
}
}