import { getClient } from "@/api/AxiosClient"; import { TaskApiResponse } from "@/api/types"; import { useQuery } from "@tanstack/react-query"; import { useNavigate } from "react-router-dom"; import { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, } from "@/components/ui/card"; import { basicTimeFormat } from "@/util/timeFormat"; import { LatestScreenshot } from "./LatestScreenshot"; import { useCredentialGetter } from "@/hooks/useCredentialGetter"; function RunningTasks() { const navigate = useNavigate(); const credentialGetter = useCredentialGetter(); const { data: runningTasks } = useQuery>({ queryKey: ["tasks", "running"], queryFn: async () => { const client = await getClient(credentialGetter); return client .get("/tasks", { params: { task_status: "running", only_standalone_tasks: "true", }, }) .then((response) => response.data); }, refetchOnMount: true, }); if (runningTasks?.length === 0) { return
No running tasks
; } 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`); } } return runningTasks?.map((task) => { return ( handleNavigate(event, task.task_id)} > {task.task_id} {task.request.url}
Created: {basicTimeFormat(task.created_at)}
); }); } export { RunningTasks };