loading method

Future<void> loading({
  1. required String label,
  2. required dynamic task(),
})

Show loading with a task

Implementation

Future<void> loading({
  required String label,
  required Function() task,
}) async {
  final loadingTask = UiTask(label: label, action: task);
  final preState = UiRouterState(
    pageRoutes: state.value.pageRoutes,
    dialogRoutes: state.value.dialogRoutes,
    tasks: [...state.value.tasks, loadingTask],
  );
  state.value = preState;
  // await task action
  await loadingTask.action();
  final postState = UiRouterState(
    pageRoutes: state.value.pageRoutes,
    dialogRoutes: state.value.dialogRoutes,
    tasks: state.value.tasks..remove(loadingTask),
  );
  state.value = postState;
}