import { client } from "@/api/AxiosClient"; import { Status, TaskApiResponse } from "@/api/types"; import { Label } from "@/components/ui/label"; import { Textarea } from "@/components/ui/textarea"; import { useQuery } from "@tanstack/react-query"; import { useParams } from "react-router-dom"; import { Accordion, AccordionContent, AccordionItem, AccordionTrigger, } from "@/components/ui/accordion"; import { StatusBadge } from "@/components/StatusBadge"; import { Button } from "@/components/ui/button"; import { ReloadIcon } from "@radix-ui/react-icons"; import { basicTimeFormat } from "@/util/timeFormat"; import { StepArtifactsLayout } from "./StepArtifactsLayout"; import Zoom from "react-medium-image-zoom"; import { AspectRatio } from "@/components/ui/aspect-ratio"; import { getRecordingURL, getScreenshotURL } from "./artifactUtils"; import { Skeleton } from "@/components/ui/skeleton"; function TaskDetails() { const { taskId } = useParams(); const { data: task, isFetching: isTaskFetching, isError: isTaskError, error: taskError, refetch, } = useQuery({ queryKey: ["task", taskId, "details"], queryFn: async () => { return client.get(`/tasks/${taskId}`).then((response) => response.data); }, }); if (isTaskError) { return
Error: {taskError?.message}
; } return (
{task?.recording_url ? (
) : null}
{isTaskFetching ? ( ) : task ? ( ) : null}
{task?.status === Status.Completed ? (