mirror of
https://github.com/cake-tech/cake_wallet.git
synced 2025-06-29 12:59:52 +00:00
46 lines
1.1 KiB
Dart
46 lines
1.1 KiB
Dart
|
import 'package:mobx/mobx.dart';
|
||
|
|
||
|
Dispose connectDifferent<T, Y>(ObservableList<T> source, ObservableList<Y> dest,
|
||
|
Y Function(T) transform, {bool Function(T) filter}) {
|
||
|
return source.observe((change) {
|
||
|
switch (change.type) {
|
||
|
case OperationType.add:
|
||
|
final _values = change.added;
|
||
|
Iterable<T> values;
|
||
|
|
||
|
if (filter != null) {
|
||
|
values = _values.where(filter);
|
||
|
}
|
||
|
|
||
|
dest.addAll(values.map((e) => transform(e)));
|
||
|
break;
|
||
|
case OperationType.remove:
|
||
|
print(change.index);
|
||
|
print(change.removed);
|
||
|
change.removed.forEach((element) { dest.remove(element); });
|
||
|
|
||
|
// dest.removeAt(change.index);
|
||
|
break;
|
||
|
case OperationType.update:
|
||
|
// change.index
|
||
|
break;
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
|
||
|
Dispose connect<T>(ObservableList<T> source, ObservableList<T> dest) {
|
||
|
return source.observe((change) {
|
||
|
switch (change.type) {
|
||
|
case OperationType.add:
|
||
|
dest.addAll(change.added);
|
||
|
break;
|
||
|
case OperationType.remove:
|
||
|
dest.removeAt(change.index);
|
||
|
break;
|
||
|
case OperationType.update:
|
||
|
// change.index
|
||
|
break;
|
||
|
}
|
||
|
});
|
||
|
}
|