import 'dart:async'; import 'package:hive/hive.dart'; import 'package:mobx/mobx.dart'; import 'package:cake_wallet/di.dart'; import 'package:cw_core/node.dart'; import 'package:cake_wallet/utils/mobx.dart'; part 'node_list_store.g.dart'; class NodeListStore = NodeListStoreBase with _$NodeListStore; abstract class NodeListStoreBase with Store { NodeListStoreBase() : nodes = ObservableList(); static StreamSubscription _onNodesSourceChange; static NodeListStore _instance; static NodeListStore get instance { if (_instance != null) { return _instance; } final nodeSource = getIt.get>(); _instance = NodeListStore(); _instance.nodes.clear(); _instance.nodes.addAll(nodeSource.values); _onNodesSourceChange?.cancel(); _onNodesSourceChange = nodeSource.bindToList(_instance.nodes); return _instance; } final ObservableList nodes; }