import { useState } from "react"; import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; import { Table, TableBody } from "@/components/ui/table"; import { DockerContainer } from "@/types/docker.types"; import { DockerMetricsDialog } from "./DockerMetricsDialog"; import { useLanguage } from "@/contexts/LanguageContext"; import { DockerTableSearch, DockerTableHeader, DockerTableRow, DockerEmptyState } from "./table"; interface DockerContainersTableProps { containers: DockerContainer[]; isLoading: boolean; onRefresh: () => void; } export const DockerContainersTable = ({ containers, isLoading, onRefresh }: DockerContainersTableProps) => { const { t } = useLanguage(); const [searchTerm, setSearchTerm] = useState(""); const [selectedContainer, setSelectedContainer] = useState(null); const [metricsDialogOpen, setMetricsDialogOpen] = useState(false); const filteredContainers = containers.filter(container => container.name.toLowerCase().includes(searchTerm.toLowerCase()) || container.docker_id.toLowerCase().includes(searchTerm.toLowerCase()) || container.hostname.toLowerCase().includes(searchTerm.toLowerCase()) ); const handleContainerAction = (action: string, containerId: string, containerName: string) => { console.log(`${action} action for container ${containerName} (${containerId})`); // TODO: Implement container actions }; const handleRowClick = (container: DockerContainer) => { setSelectedContainer(container); setMetricsDialogOpen(true); }; const handleViewMetrics = (container: DockerContainer) => { setSelectedContainer(container); setMetricsDialogOpen(true); }; return ( <>
{t('dockerContainers', 'docker')}
{filteredContainers.length === 0 ? ( ) : ( filteredContainers.map((container) => ( )) )}
); };