diff --git a/site/src/pages/TasksPage/TasksTable.tsx b/site/src/pages/TasksPage/TasksTable.tsx index be0700c815..028386d243 100644 --- a/site/src/pages/TasksPage/TasksTable.tsx +++ b/site/src/pages/TasksPage/TasksTable.tsx @@ -23,11 +23,12 @@ import { TooltipProvider, TooltipTrigger, } from "components/Tooltip/Tooltip"; +import { useClickableTableRow } from "hooks"; import { RotateCcwIcon, TrashIcon } from "lucide-react"; import { TaskDeleteDialog } from "modules/tasks/TaskDeleteDialog/TaskDeleteDialog"; import { TaskStatus } from "modules/tasks/TaskStatus/TaskStatus"; import { type FC, type ReactNode, useState } from "react"; -import { Link as RouterLink } from "react-router"; +import { useNavigate } from "react-router"; import { relativeTime } from "utils/time"; type TasksTableProps = { @@ -116,24 +117,27 @@ type TaskRowProps = { task: Task }; const TaskRow: FC = ({ task }) => { const [isDeleteDialogOpen, setIsDeleteDialogOpen] = useState(false); const templateDisplayName = task.template_display_name ?? task.template_name; + const navigate = useNavigate(); + + const taskPageLink = `/tasks/${task.owner_name}/${task.id}`; + // Discard role, breaks Chromatic. + const { role, ...clickableRowProps } = useClickableTableRow({ + onClick: () => navigate(taskPageLink), + }); return ( <> - + - - {task.initial_prompt} - - - Access task - - + + {task.initial_prompt} + } subtitle={templateDisplayName} avatar={ @@ -171,8 +175,10 @@ const TaskRow: FC = ({ task }) => {