4 Commits

Author SHA1 Message Date
marco 81222de7fe Merge pull request 'Added app theming' (#2) from development into main
Flutter APK Build / Build Flutter APK (push) Successful in 5m44s
Reviewed-on: #2
2026-06-19 01:37:42 +02:00
marco 6dc7161b41 added title 2026-06-19 01:36:22 +02:00
marco f1756b30d1 added padding to views 2026-06-19 01:35:46 +02:00
marco 392ec22dcd Merge pull request 'Feature: dismissible tasks' (#1) from development into main
Flutter APK Build / Build Flutter APK (push) Successful in 5m43s
Reviewed-on: #1
2026-06-19 00:36:43 +02:00
2 changed files with 35 additions and 24 deletions
+2
View File
@@ -80,7 +80,9 @@ class _TaskEditPageState extends State<TaskEditPage> {
horizontal: MediaQuery.of(context).size.width * 0.05, horizontal: MediaQuery.of(context).size.width * 0.05,
), ),
child: Column( child: Column(
spacing: 12,
children: [ children: [
SizedBox(height: 6),
TextFormField( TextFormField(
autofocus: true, autofocus: true,
controller: titleController, controller: titleController,
+33 -24
View File
@@ -22,11 +22,16 @@ class _TaskOverviewPageState extends State<TaskOverviewPage> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Scaffold( return Scaffold(
appBar: AppBar(), appBar: AppBar(title: Text('Hallo Yannick')),
body: ReorderableListView.builder( body: Padding(
itemBuilder: itemBuilder, padding: EdgeInsetsGeometry.symmetric(
itemCount: tasks.length, horizontal: MediaQuery.of(context).size.width * 0.05,
onReorderItem: context.controller<TaskController>().reorderTask, ),
child: ReorderableListView.builder(
itemBuilder: itemBuilder,
itemCount: tasks.length,
onReorderItem: context.controller<TaskController>().reorderTask,
),
), ),
floatingActionButton: FloatingActionButton( floatingActionButton: FloatingActionButton(
onPressed: onCreateTaskTapped, onPressed: onCreateTaskTapped,
@@ -38,27 +43,31 @@ class _TaskOverviewPageState extends State<TaskOverviewPage> {
Widget itemBuilder(BuildContext context, int index) { Widget itemBuilder(BuildContext context, int index) {
final task = tasks.elementAt(index); final task = tasks.elementAt(index);
return TaskDismissible( return Padding(
key: Key(task.id), key: Key(task.id),
onDismissedRight: () => padding: const EdgeInsets.only(bottom: 12),
context.controller<TaskController>().deleteTask(task), child: TaskDismissible(
child: ListTile( key: Key(task.id),
title: Text(task.title), onDismissedRight: () =>
subtitle: task.description.isNotEmpty ? Text(task.description) : null, context.controller<TaskController>().deleteTask(task),
trailing: Checkbox( child: ListTile(
value: task.isCompleted, title: Text(task.title),
onChanged: (isCompleted) => context subtitle: task.description.isNotEmpty ? Text(task.description) : null,
.controller<TaskController>() trailing: Checkbox(
.saveTask(task.copyWith(isCompleted: isCompleted)), value: task.isCompleted,
onChanged: (isCompleted) => context
.controller<TaskController>()
.saveTask(task.copyWith(isCompleted: isCompleted)),
),
onTap: () async {
final result = await onTaskTapped(task);
if (result != null && context.mounted) {
context.controller<TaskController>().saveTask(
result.toTask(id: task.id),
);
}
},
), ),
onTap: () async {
final result = await onTaskTapped(task);
if (result != null && context.mounted) {
context.controller<TaskController>().saveTask(
result.toTask(id: task.id),
);
}
},
), ),
); );
} }