'use client'; import Link from 'next/link'; import { Pencil, Trash2 } from 'lucide-react'; import { useTranslations } from 'next-intl'; import { Button } from '@/components/ui/button'; import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow, } from '@/components/ui/table'; import { formatDateTime } from '@/lib/utils'; import type { NodeItem } from '@/lib/services/openflare'; import { NodeStatusBadge } from './node-status-badge'; import { formatRelativeTime, getApplyLabel, getApplyTone, getNodeStatusLabel, getNodeStatusTone, getNodeTypeLabel, getOpenrestyStatusLabel, getOpenrestyStatusTone, getRelayStatusLabel, getRelayStatusTone, isMeaningfulTime, isWSConnectedLastSeen, } from './node-utils'; export function NodesTable({ nodes, deletingId, onEdit, onDelete, }: { nodes: NodeItem[]; deletingId: number | null; onEdit: (node: NodeItem) => void; onDelete: (node: NodeItem) => void; }) { const t = useTranslations('nodes'); return (