build method
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);
}