added ability to delete task

This commit is contained in:
2026-06-12 14:34:44 +02:00
parent ec4efff01a
commit f6043ce474
+25 -10
View File
@@ -1,7 +1,9 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import '../model/callback_models/create_task_request.dart'; import '../model/callback_models/create_task_request.dart';
import '../model/extensions/controller_context.dart';
import '../model/task.dart'; import '../model/task.dart';
import '../service/task_controller.dart';
import '../service/tools.dart'; import '../service/tools.dart';
import '../service/validators.dart'; import '../service/validators.dart';
@@ -14,6 +16,7 @@ class TaskEditPage extends StatefulWidget {
} }
class _TaskEditPageState extends State<TaskEditPage> { class _TaskEditPageState extends State<TaskEditPage> {
Task? task;
final titleController = TextEditingController(); final titleController = TextEditingController();
final descriptionController = TextEditingController(); final descriptionController = TextEditingController();
final categoryController = TextEditingController(); final categoryController = TextEditingController();
@@ -25,17 +28,17 @@ class _TaskEditPageState extends State<TaskEditPage> {
@override @override
void didChangeDependencies() { void didChangeDependencies() {
super.didChangeDependencies(); super.didChangeDependencies();
final task = ModalRoute.of(context)!.settings.arguments as Task?; task = ModalRoute.of(context)!.settings.arguments as Task?;
if (task != null) { if (task != null) {
titleController.text = task.title; titleController.text = task!.title;
descriptionController.text = task.description; descriptionController.text = task!.description;
categoryController.text = task.category; categoryController.text = task!.category;
urlController.text = task.url; urlController.text = task!.url;
dueDateController.text = task.due != null dueDateController.text = task!.due != null
? getIsoDateString(task.due!) ? getIsoDateString(task!.due!)
: ''; : '';
dueTimeController.text = task.due != null dueTimeController.text = task!.due != null
? TimeOfDay.fromDateTime(task.due!).format(context) ? TimeOfDay.fromDateTime(task!.due!).format(context)
: ''; : '';
} }
pageTitle = task?.title ?? 'CreateTask'; pageTitle = task?.title ?? 'CreateTask';
@@ -44,7 +47,19 @@ class _TaskEditPageState extends State<TaskEditPage> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Scaffold( return Scaffold(
appBar: AppBar(title: Text(pageTitle)), appBar: AppBar(
title: Text(pageTitle),
actions: [
if (task != null)
IconButton(
onPressed: () {
context.controller<TaskController>().deleteTask(task!);
Navigator.of(context).pop();
},
icon: Icon(Icons.delete),
),
],
),
body: Form( body: Form(
autovalidateMode: AutovalidateMode.onUnfocus, autovalidateMode: AutovalidateMode.onUnfocus,
child: Column( child: Column(