import Link from 'next/link'; import { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle } from '@/components/ui/card'; import { Button } from '@/components/ui/button'; import { Badge } from '@/components/ui/badge'; import type { Deployment, DeploymentStatus } from '@/lib/types'; import { ExternalLink, Zap, AlertTriangle, CheckCircle2, Hourglass, PowerOff, Layers } from 'lucide-react'; import { cn } from '@/lib/utils'; interface DeploymentCardProps { deployment: Deployment; } function getStatusBadgeVariant(status: DeploymentStatus) { switch (status) { case 'succeeded': return 'default'; case 'deploying': return 'secondary'; case 'pending': return 'outline'; case 'failed': return 'destructive'; case 'stopped': return 'outline'; default: return 'outline'; } } function getStatusIcon(status: DeploymentStatus) { switch (status) { case 'succeeded': return ; case 'deploying': return ; case 'pending': return ; case 'failed': return ; case 'stopped': return ; default: return ; } } export function DeploymentCard({ deployment }: DeploymentCardProps) { return ( {deployment.appName} Deployed: {new Date(deployment.createdAt).toLocaleDateString()} {getStatusIcon(deployment.status)} {deployment.status} Region: {deployment.region || 'N/A'} {deployment.lastDeployedAt && ( Last Activity: {new Date(deployment.lastDeployedAt).toLocaleDateString()} )} {deployment.url && ( Visit App )} Manage ); }
Region: {deployment.region || 'N/A'}
Last Activity: {new Date(deployment.lastDeployedAt).toLocaleDateString()}