Improve project-task integration and sub-task support
- TasksApi: add getSubTasks(parentId) + parentId param to create() - TasksRepository: expose new API methods - app.dart: invalidate projectsProvider + projectMilestonesProvider after quick capture creates a task; taskNew route reads ?projectId= query param and passes as initialProjectId to TaskEditScreen - project_list_screen.dart: _AddTaskRow passes projectId query param so the task editor pre-fills the project on navigation - task_edit_screen.dart: fully rewritten with initialProjectId support, sub-task fetching/creation, and _SubTasksSection widget Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
+11
-1
@@ -7,7 +7,9 @@ import 'core/exceptions.dart';
|
||||
import 'providers/api_client_provider.dart';
|
||||
import 'providers/auth_provider.dart';
|
||||
import 'providers/capture_queue_provider.dart';
|
||||
import 'providers/milestones_provider.dart';
|
||||
import 'providers/notes_provider.dart';
|
||||
import 'providers/projects_provider.dart';
|
||||
import 'providers/settings_provider.dart';
|
||||
import 'providers/update_provider.dart';
|
||||
import 'providers/tasks_provider.dart';
|
||||
@@ -94,7 +96,11 @@ final routerProvider = Provider<GoRouter>((ref) {
|
||||
),
|
||||
GoRoute(
|
||||
path: Routes.taskNew,
|
||||
builder: (_, _) => const TaskEditScreen(),
|
||||
builder: (_, state) => TaskEditScreen(
|
||||
initialProjectId: state.uri.queryParameters['projectId'] != null
|
||||
? int.tryParse(state.uri.queryParameters['projectId']!)
|
||||
: null,
|
||||
),
|
||||
),
|
||||
GoRoute(
|
||||
path: Routes.taskEdit,
|
||||
@@ -347,6 +353,8 @@ class _QuickCaptureBarState extends ConsumerState<_QuickCaptureBar> {
|
||||
case 'task':
|
||||
case 'todo':
|
||||
ref.invalidate(tasksProvider);
|
||||
ref.invalidate(projectsProvider);
|
||||
ref.invalidate(projectMilestonesProvider);
|
||||
}
|
||||
|
||||
final msg = result.message.isNotEmpty
|
||||
@@ -398,6 +406,8 @@ class _QuickCaptureBarState extends ConsumerState<_QuickCaptureBar> {
|
||||
case 'task':
|
||||
case 'todo':
|
||||
ref.invalidate(tasksProvider);
|
||||
ref.invalidate(projectsProvider);
|
||||
ref.invalidate(projectMilestonesProvider);
|
||||
}
|
||||
} on NetworkException {
|
||||
break; // Still offline — stop draining.
|
||||
|
||||
Reference in New Issue
Block a user