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 && ( )}
); }