import { client } from "@/api/AxiosClient"; import { Status, TaskApiResponse } from "@/api/types"; import { keepPreviousData, useQuery } from "@tanstack/react-query"; import { useNavigate, useSearchParams } from "react-router-dom"; import { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, } from "@/components/ui/card"; import { PAGE_SIZE } from "../constants"; import { basicTimeFormat } from "@/util/timeFormat"; import { LatestScreenshot } from "./LatestScreenshot"; function RunningTasks() { const navigate = useNavigate(); const [searchParams] = useSearchParams(); const page = searchParams.get("page") ? Number(searchParams.get("page")) : 1; const { data: tasks } = useQuery>({ queryKey: ["tasks", page], queryFn: async () => { return client .get("/tasks", { params: { page: 1, page_size: PAGE_SIZE, }, }) .then((response) => response.data); }, refetchInterval: 3000, placeholderData: keepPreviousData, }); const runningTasks = tasks?.filter((task) => task.status === Status.Running); if (runningTasks?.length === 0) { return
No running tasks
; } return runningTasks?.map((task) => { return ( { navigate(`/tasks/${task.task_id}`); }} > {task.task_id} {task.request.url} Latest screenshot:
Created: {basicTimeFormat(task.created_at)}
); }); } export { RunningTasks };