build method

  1. @override
dynamic build(
  1. dynamic arg
)

Implementation

@override
ReactionManager build(ReactionManager arg) {
  _listener = arg.subscribeStream(); // keep it resident in memory
  _poller = _listener.listen(
    (data) async {
      _log.info('attempting to reload');
      final newManager = await arg.reload();
      _log.info('manager updated. likes: ${newManager.likesCount()}');
      state = newManager;
    },
    onError: (e, s) {
      _log.severe('stream errored', e, s);
    },
    onDone: () {
      _log.info('stream ended');
    },
  );
  ref.onDispose(() => _poller.cancel());
  return arg;
}