diff --git a/frontend/src/components/tasks/TaskDetailsPanel.tsx b/frontend/src/components/tasks/TaskDetailsPanel.tsx index c2de47d5..213dad7f 100644 --- a/frontend/src/components/tasks/TaskDetailsPanel.tsx +++ b/frontend/src/components/tasks/TaskDetailsPanel.tsx @@ -9,6 +9,8 @@ import { ChevronDown, ChevronUp, Settings2, + Edit, + Trash2, } from "lucide-react"; import { Button } from "@/components/ui/button"; @@ -45,6 +47,8 @@ interface TaskDetailsPanelProps { projectId: string; isOpen: boolean; onClose: () => void; + onEditTask?: (task: TaskWithAttemptStatus) => void; + onDeleteTask?: (taskId: string) => void; } const statusLabels: Record = { @@ -119,6 +123,8 @@ export function TaskDetailsPanel({ projectId, isOpen, onClose, + onEditTask, + onDeleteTask, }: TaskDetailsPanelProps) { const [taskAttempts, setTaskAttempts] = useState([]); const [selectedAttempt, setSelectedAttempt] = useState( @@ -350,6 +356,24 @@ export function TaskDetailsPanel({
+ {onEditTask && ( + + )} + {onDeleteTask && ( + + )} @@ -590,8 +614,14 @@ export function TaskDetailsPanel({ ] && (
)} @@ -606,7 +636,7 @@ export function TaskDetailsPanel({
{/* Footer */} -
+ {/*
-
+
*/} diff --git a/frontend/src/pages/project-tasks.tsx b/frontend/src/pages/project-tasks.tsx index 67e26a4e..84d7bf59 100644 --- a/frontend/src/pages/project-tasks.tsx +++ b/frontend/src/pages/project-tasks.tsx @@ -104,6 +104,15 @@ export function ProjectTasks() { if (JSON.stringify(prevTasks) === JSON.stringify(newTasks)) { return prevTasks; // Return same reference to prevent re-render } + + // Update selectedTask if it exists and has been modified + if (selectedTask) { + const updatedSelectedTask = newTasks.find(task => task.id === selectedTask.id); + if (updatedSelectedTask && JSON.stringify(selectedTask) !== JSON.stringify(updatedSelectedTask)) { + setSelectedTask(updatedSelectedTask); + } + } + return newTasks; }); } @@ -375,6 +384,8 @@ export function ProjectTasks() { projectId={projectId!} isOpen={isPanelOpen} onClose={handleClosePanel} + onEditTask={handleEditTask} + onDeleteTask={handleDeleteTask} /> )}