diff --git a/lib/screens/library/project_tasks_screen.dart b/lib/screens/library/project_tasks_screen.dart index 9724df3..fb41c15 100644 --- a/lib/screens/library/project_tasks_screen.dart +++ b/lib/screens/library/project_tasks_screen.dart @@ -48,6 +48,12 @@ class _ProjectTasksScreenState extends ConsumerState { } } + void _openTask(int taskId) { + context + .push(Routes.taskEdit.replaceFirst(':id', '$taskId')) + .then((_) => ref.invalidate(projectTasksProvider(widget.projectId))); + } + Color _parseColor(String? hex) { if (hex == null || hex.isEmpty) return const Color(0xFF6366F1); try { @@ -171,6 +177,7 @@ class _ProjectTasksScreenState extends ConsumerState { task: task, effectiveStatus: _effectiveStatus(task), onStatusTap: () => _cycleStatus(task), + onTap: () => _openTask(task.id), ); }, ), @@ -198,6 +205,7 @@ class _ProjectTasksScreenState extends ConsumerState { task: task, effectiveStatus: _effectiveStatus(task), onStatusTap: () => _cycleStatus(task), + onTap: () => _openTask(task.id), ); }, ), @@ -282,11 +290,13 @@ class _TaskRow extends StatelessWidget { final Task task; final TaskStatus effectiveStatus; final VoidCallback onStatusTap; + final VoidCallback onTap; const _TaskRow({ required this.task, required this.effectiveStatus, required this.onStatusTap, + required this.onTap, }); IconData get _statusIcon => switch (effectiveStatus) { @@ -317,8 +327,7 @@ class _TaskRow extends StatelessWidget { return Card( margin: const EdgeInsets.symmetric(horizontal: 12, vertical: 3), child: InkWell( - onTap: () => context - .push(Routes.taskEdit.replaceFirst(':id', '${task.id}')), + onTap: onTap, borderRadius: BorderRadius.circular(14), child: Padding( padding: const EdgeInsets.fromLTRB(4, 6, 14, 6),