import { getClient } from "@/api/AxiosClient"; import { TaskApiResponse, WorkflowRunStatusApiResponse } from "@/api/types"; import { StatusBadge } from "@/components/StatusBadge"; import { Skeleton } from "@/components/ui/skeleton"; import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow, } from "@/components/ui/table"; import { useCredentialGetter } from "@/hooks/useCredentialGetter"; import { useQuery } from "@tanstack/react-query"; import { useNavigate, useParams } from "react-router-dom"; import { TaskListSkeletonRows } from "../tasks/list/TaskListSkeletonRows"; import { basicTimeFormat } from "@/util/timeFormat"; import { TaskActions } from "../tasks/list/TaskActions"; import { Label } from "@/components/ui/label"; import { Input } from "@/components/ui/input"; function WorkflowRun() { const { workflowRunId, workflowPermanentId } = useParams(); const credentialGetter = useCredentialGetter(); const navigate = useNavigate(); const { data: workflowRun, isLoading: workflowRunIsLoading } = useQuery({ queryKey: ["workflowRun", workflowPermanentId, workflowRunId], queryFn: async () => { const client = await getClient(credentialGetter); return client .get(`/workflows/${workflowPermanentId}/runs/${workflowRunId}`) .then((response) => response.data); }, }); const { data: workflowTasks, isLoading: workflowTasksIsLoading } = useQuery< Array >({ queryKey: ["workflowTasks", workflowRunId], queryFn: async () => { const client = await getClient(credentialGetter); return client .get(`/tasks?workflow_run_id=${workflowRunId}&page_size=200`) .then((response) => response.data); }, }); function handleNavigate(event: React.MouseEvent, id: string) { if (event.ctrlKey || event.metaKey) { window.open( window.location.origin + `/tasks/${id}/actions`, "_blank", "noopener,noreferrer", ); } else { navigate(`/tasks/${id}/actions`); } } const parameters = workflowRun?.parameters ?? {}; return (

{workflowRunId}

{workflowRunIsLoading ? ( ) : workflowRun ? ( ) : null}

Tasks

ID URL Status Created At {workflowTasksIsLoading ? ( ) : workflowTasks?.length === 0 ? ( This workflow run does not have any tasks ) : ( workflowTasks?.map((task) => { return ( handleNavigate(event, task.task_id)} > {task.task_id} handleNavigate(event, task.task_id)} > {task.request.url} handleNavigate(event, task.task_id)} > handleNavigate(event, task.task_id)} > {basicTimeFormat(task.created_at)} ); }) )}

Parameters

{Object.entries(parameters).map(([key, value]) => { return (
{typeof value === "string" ? ( ) : ( )}
); })}
); } export { WorkflowRun };