createTaskList method

Future<String> createTaskList(
  1. String title, {
  2. String? description,
  3. List<String>? tasks,
  4. String? selectSpaceId,
})

Implementation

Future<String> createTaskList(
  String title, {
  String? description,
  List<String>? tasks,
  String? selectSpaceId,
}) async {
  final params = {
    CreateUpdateTaskList.titleKey: title,
  };
  if (description != null) {
    params[CreateUpdateTaskList.descKey] = description;
  }
  await fillForm(
    params,
    // we are coming from space, we don't need to select it.
    submitBtnKey: CreateUpdateTaskList.submitKey,
    selectSpaceId: selectSpaceId,
  );

  final taskListPage = find.byKey(TaskListDetailPage.pageKey);
  await taskListPage.should(findsOneWidget);
  // // read the actual spaceId
  final page = taskListPage.evaluate().first.widget as TaskListDetailPage;
  final taskListId = page.taskListId;

  final inlineAddBtn =
      find.byKey(Key('task-list-$taskListId-add-task-inline'));
  await inlineAddBtn.should(findsOneWidget);
  await ensureHasBackButton();
  if (tasks != null) {
    await inlineAddBtn.tap(); // activate inline add
    await addTasks(taskListId, tasks);
    // close inline add
    final cancelInlineAdd =
        find.byKey(Key('task-list-$taskListId-add-task-inline-cancel'));
    await cancelInlineAdd.should(findsOneWidget);
    await cancelInlineAdd.tap();
  }
  return taskListId;
}