addTask function

Future<(String, String)?> addTask({
  1. required dynamic context,
  2. required dynamic ref,
  3. dynamic taskList,
  4. required String title,
  5. String? description,
  6. DateTime? dueDate,
})

Implementation

Future<(String, String)?> addTask({
  required BuildContext context,
  required WidgetRef ref,
  TaskList? taskList,
  required String title,
  String? description,
  DateTime? dueDate,
}) async {
  final lang = L10n.of(context);

  taskList ??= await selectTaskList(context: context, ref: ref);
  if (taskList == null) {
    EasyLoading.showError(
      lang.selectTaskList,
      duration: const Duration(seconds: 2),
    );
    return null;
  }

  EasyLoading.show(status: lang.addingTask);
  final taskDraft = taskList.taskBuilder();
  taskDraft.title(title);
  if (description != null && description.isNotEmpty == true) {
    taskDraft.descriptionText(description);
  }
  if (dueDate != null) {
    taskDraft.dueDate(dueDate.year, dueDate.month, dueDate.day);
  }
  try {
    final eventId = await taskDraft.send();
    EasyLoading.dismiss();
    return (taskList.eventIdStr(), eventId.toString());
  } catch (e, s) {
    _log.severe('Failed to create task', e, s);
    if (!context.mounted) {
      EasyLoading.dismiss();
    } else {
      EasyLoading.showError(
        lang.creatingTaskFailed(e),
        duration: const Duration(seconds: 3),
      );
    }
    return null;
  }
}