import { useQuery } from "@tanstack/react-query"; import { Unplug } from "lucide-react"; import * as YML from "yaml"; import { getContainersUsingVolumeOptions } from "~/client/api-client/@tanstack/react-query.gen"; import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "~/client/components/ui/card"; import { CodeBlock } from "~/client/components/ui/code-block"; import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from "~/client/components/ui/table"; import type { Volume } from "~/client/lib/types"; type Props = { volume: Volume; }; export const DockerTabContent = ({ volume }: Props) => { const yamlString = YML.stringify({ services: { nginx: { image: "nginx:latest", volumes: [`im-${volume.name}:/path/in/container`], }, }, volumes: { [`im-${volume.name}`]: { external: true, }, }, }); const dockerRunCommand = `docker run -v im-${volume.name}:/path/in/container nginx:latest`; const { data: containersData, isLoading, error, } = useQuery({ ...getContainersUsingVolumeOptions({ path: { name: volume.name } }), refetchInterval: 10000, refetchOnWindowFocus: true, }); const containers = containersData || []; const getStateClass = (state: string) => { switch (state) { case "running": return "bg-green-100 text-green-800"; case "exited": return "bg-orange-100 text-orange-800"; default: return "bg-gray-100 text-gray-800"; } }; return (
No Docker containers are currently using this volume.