build method

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

Implementation

@override
Future<TasksOverview> build(TaskList arg) async {
  // Load initial todo list from the remote repository
  final taskList = arg;
  _listener = taskList.subscribeStream(); // keep it resident in memory
  _poller = _listener.listen(
    (data) async {
      _log.info('got tasks list update');
      state = await AsyncValue.guard(() async {
        final freshTaskList = await taskList.refresh();
        return await _refresh(freshTaskList);
      });
    },
    onError: (e, s) {
      _log.severe('tasks overview stream errored', e, s);
    },
    onDone: () {
      _log.info('tasks overview stream ended');
    },
  );
  ref.onDispose(() => _poller.cancel());
  return await _refresh(taskList);
}