diff --git a/lib/pages/task_overview_page.dart b/lib/pages/task_overview_page.dart index 4e15591..41447ef 100644 --- a/lib/pages/task_overview_page.dart +++ b/lib/pages/task_overview_page.dart @@ -1,7 +1,9 @@ import 'package:flutter/material.dart'; import '../example_data.dart'; +import '../model/callback_models/create_task_request.dart'; import '../model/task.dart'; +import '../service/tools.dart'; import 'task_edit_page.dart'; class TaskOverviewPage extends StatefulWidget { @@ -38,15 +40,22 @@ class _TaskOverviewPageState extends State { key: Key(task.id), title: Text(task.title), subtitle: Text(task.description), - onTap: () => onTaskTapped(task), + onTap: () async { + final result = await onTaskTapped(task); + if (result != null) { + tasks.remove(task); + tasks.add(result.toTask(id: task.id, position: task.position)); + setState(() {}); + } + }, ); } - Future onTaskTapped(Task task) async { + Future onTaskTapped(Task task) async { final result = await Navigator.of( context, ).pushNamed(TaskEditPage.routeName, arguments: task); - return result as Task?; + return result as CreateTaskRequest?; } List reorderList(List tasks, oldIndex, newIndex) { @@ -65,10 +74,12 @@ class _TaskOverviewPageState extends State { void onCreateTaskTapped() async { //TODO: example data call final result = - await Navigator.of(context).pushNamed(TaskEditPage.routeName) as Task?; + await Navigator.of(context).pushNamed(TaskEditPage.routeName) + as CreateTaskRequest?; if (result != null) { - tasks.add(result); + tasks.add(result.toTask(id: generateId(), position: tasks.length)); + setState(() {}); } } }