import { ExternalLink, RotateCcw } from 'lucide-react' import Link from 'next/link' import { ButtonTooltip } from '@/components/ui/ButtonTooltip' import { InlineLinkClassName } from '@/components/ui/InlineLink' import { ReplicationPipelineTableStatus } from '@/data/replication/pipeline-replication-status-query' import { useParams } from 'common' import { Badge, Button, cn, TableCell, TableRow, Tooltip, TooltipContent, TooltipTrigger } from 'ui' import { ErroredTableDetails } from '../ErroredTableDetails' import { TableState } from './ReplicationPipelineStatus.types' import { getDisabledStateConfig, getStatusConfig } from './ReplicationPipelineStatus.utils' interface TableReplicationRowProps { table: ReplicationPipelineTableStatus config: ReturnType isRestarting: boolean showDisabledState: boolean onSelectRestart: () => void onSelectShowError: () => void } export const TableReplicationRow = ({ table, config, isRestarting, showDisabledState, onSelectRestart, onSelectShowError, }: TableReplicationRowProps) => { const { ref } = useParams() const isErrorState = table.state.name === 'error' const statusConfig = getStatusConfig(table.state as TableState['state']) return (

{table.table_name}

} tooltip={{ content: { side: 'bottom', text: 'Open in Table Editor' }, }} >
{isRestarting ? ( Restarting ) : showDisabledState ? ( Not Available ) : ( statusConfig.badge )} {isRestarting ? (

Replication is being restarted for this table. The pipeline will restart automatically.

) : showDisabledState ? (

Status unavailable while pipeline is {config.badge.toLowerCase()}

) : (
{statusConfig.description}{' '} {isErrorState && 'reason' in table.state && ( )}
{table.state.name === 'error' && }
)}
) }