addTask function
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;
}
}