import { useTranslation } from 'react-i18next'; import { MoreHorizontal, CheckCircle, XCircle, MinusCircle } from 'lucide-react'; import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow, } from '@/components/ui/table'; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger, } from '@/components/ui/dropdown-menu'; import { Button } from '@/components/ui/button'; import type { CmsInstance, CmsInstanceStatus } from '@/features/cms/services/types'; const STATUS_BADGE_CONFIG: Record< CmsInstanceStatus, { colorClass: string; Icon: React.ComponentType<{ className?: string }> } > = { Available: { colorClass: 'bg-green-100 text-green-800 dark:bg-green-900 dark:text-green-200', Icon: CheckCircle, }, NotAvailable: { colorClass: 'bg-red-100 text-red-800 dark:bg-red-900 dark:text-red-200', Icon: XCircle, }, Inactive: { colorClass: 'bg-gray-100 text-gray-800 dark:bg-gray-800 dark:text-gray-300', Icon: MinusCircle, }, }; function formatDate(iso: string | null): string { if (!iso) return '—'; return new Date(iso).toLocaleString(undefined, { dateStyle: 'medium', timeStyle: 'short' }); } interface CmsInstanceListProps { instances: CmsInstance[]; onSetStatus: (instance: CmsInstance) => void; } export function CmsInstanceList({ instances, onSetStatus }: CmsInstanceListProps) { const { t } = useTranslation(); return (