feat(FN-4412): complete Step 1 — wire bulk action handlers to ListView

Fusion-Task-Id: FN-4412
Fusion-Task-Lineage: 20883b92-0de6-4b95-b8f8-9075f1d9d54e
This commit is contained in:
Fusion
2026-05-13 19:19:00 -07:00
committed by gsxdsm
parent c9d0fcd0be
commit 746dc9633d
3 changed files with 15 additions and 2 deletions

View File

@@ -372,7 +372,7 @@ function AppInner() {
// Tasks hook with project context and search query
// SSE is only enabled for board/list views to free connection slots for mission detail fetches
const taskSseEnabled = taskView === "board" || taskView === "list";
const { tasks, createTask, moveTask, pauseTask, deleteTask, mergeTask, retryTask, resetTask, updateTask, duplicateTask, archiveTask, unarchiveTask, archiveAllDone, loadArchivedTasks, ingestCreatedTasks, lastFetchTimeMs } = useTasks(
const { tasks, createTask, moveTask, pauseTask, unpauseTask, deleteTask, mergeTask, retryTask, resetTask, updateTask, duplicateTask, archiveTask, unarchiveTask, archiveAllDone, loadArchivedTasks, ingestCreatedTasks, lastFetchTimeMs } = useTasks(
{
...(currentProject ? { projectId: currentProject.id } : {}),
searchQuery: searchQuery || undefined,
@@ -1556,6 +1556,9 @@ function AppInner() {
onMoveTask={moveTask}
onRetryTask={retryTask}
onDeleteTask={deleteTask}
onPauseTask={pauseTask}
onUnpauseTask={unpauseTask}
onArchiveTask={archiveTask}
onMergeTask={mergeTask}
onResetTask={resetTask}
onDuplicateTask={duplicateTask}

View File

@@ -168,6 +168,9 @@ interface ListViewProps {
onMoveTask: (id: string, column: Column, optionsOrPosition?: { preserveProgress?: boolean } | number) => Promise<Task>;
onRetryTask?: (id: string) => Promise<Task>;
onDeleteTask: (id: string, options?: { removeDependencyReferences?: boolean; githubIssueAction?: GithubIssueAction }) => Promise<Task>;
onPauseTask?: (id: string) => Promise<Task>;
onUnpauseTask?: (id: string) => Promise<Task>;
onArchiveTask?: (id: string) => Promise<Task>;
onMergeTask: (id: string) => Promise<MergeResult>;
onResetTask?: (id: string) => Promise<Task>;
onDuplicateTask?: (id: string) => Promise<Task>;
@@ -229,6 +232,9 @@ export function ListView({
onMoveTask,
onRetryTask,
onDeleteTask,
onPauseTask,
onUnpauseTask,
onArchiveTask,
onMergeTask,
onResetTask,
onDuplicateTask,

View File

@@ -365,6 +365,10 @@ export function useTasks(options?: UseTasksOptions) {
return normalizeTask(await api.pauseTask(id, projectId));
}, [projectId]);
const unpauseTask = useCallback(async (id: string): Promise<Task> => {
return normalizeTask(await api.unpauseTask(id, projectId));
}, [projectId]);
const deleteTask = useCallback(async (
id: string,
options?: { removeDependencyReferences?: boolean; githubIssueAction?: GithubIssueAction },
@@ -493,5 +497,5 @@ export function useTasks(options?: UseTasksOptions) {
lastFetchTimeMs.current = Date.now();
}, []);
return { tasks, createTask, moveTask, pauseTask, deleteTask, mergeTask, retryTask, resetTask, duplicateTask, updateTask, archiveTask, unarchiveTask, archiveAllDone, loadArchivedTasks, includeArchived, ingestCreatedTasks, lastFetchTimeMs: lastFetchTimeMs.current };
return { tasks, createTask, moveTask, pauseTask, unpauseTask, deleteTask, mergeTask, retryTask, resetTask, duplicateTask, updateTask, archiveTask, unarchiveTask, archiveAllDone, loadArchivedTasks, includeArchived, ingestCreatedTasks, lastFetchTimeMs: lastFetchTimeMs.current };
}