2020-08-27 16:54:34 +00:00
|
|
|
import 'package:mobx/mobx.dart';
|
|
|
|
|
2020-08-31 08:44:58 +00:00
|
|
|
void connectDifferent<T, Y>(
|
|
|
|
ObservableList<T> source, ObservableList<Y> dest, Y Function(T) transform,
|
|
|
|
{bool Function(T) filter}) {
|
|
|
|
source.observe((ListChange<T> change) {
|
|
|
|
// switch (change.type) {
|
|
|
|
// case OperationType.add:
|
|
|
|
// final _values = change.added;
|
|
|
|
// Iterable<T> values;
|
2020-08-27 16:54:34 +00:00
|
|
|
|
2020-08-31 08:44:58 +00:00
|
|
|
// if (filter != null) {
|
|
|
|
// values = _values.where(filter);
|
|
|
|
// }
|
2020-08-27 16:54:34 +00:00
|
|
|
|
2020-08-31 08:44:58 +00:00
|
|
|
// dest.addAll(values.map((e) => transform(e)));
|
|
|
|
// break;
|
|
|
|
// case OperationType.remove:
|
|
|
|
// change.removed.forEach((element) {
|
|
|
|
// dest.remove(element);
|
|
|
|
// });
|
2020-08-27 16:54:34 +00:00
|
|
|
|
2020-08-31 08:44:58 +00:00
|
|
|
// // dest.removeAt(change.index);
|
|
|
|
// break;
|
|
|
|
// case OperationType.update:
|
|
|
|
// // change.index
|
|
|
|
// break;
|
|
|
|
// }
|
2020-08-27 16:54:34 +00:00
|
|
|
});
|
|
|
|
}
|
|
|
|
|
2020-08-31 08:44:58 +00:00
|
|
|
void connect<T>(ObservableList<T> source, ObservableList<T> dest) {
|
|
|
|
source.observe((ListChange<T> 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;
|
|
|
|
// }
|
2020-08-27 16:54:34 +00:00
|
|
|
});
|
|
|
|
}
|