MPEDA / src /components /dashboard /RecentApplications.tsx
sarveshpatel's picture
Upload 139 files
f305a41 verified
import { hatcheryApplications, farmApplications, getStatusColor, formatStatus } from '@/data/dummyData';
import { Badge } from '@/components/ui/badge';
import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card';
import { Button } from '@/components/ui/button';
import { ArrowRight, Fish, Warehouse } from 'lucide-react';
import { Link } from 'react-router-dom';
export function RecentApplications() {
const allApplications = [
...hatcheryApplications.map(h => ({ ...h, type: 'hatchery' as const })),
...farmApplications.map(f => ({ ...f, type: 'farm' as const })),
]
.sort((a, b) => new Date(b.submittedDate).getTime() - new Date(a.submittedDate).getTime())
.slice(0, 5);
return (
<Card className="card-hover">
<CardHeader className="flex flex-row items-center justify-between pb-2">
<CardTitle className="text-lg font-semibold">Recent Applications</CardTitle>
<Button variant="ghost" size="sm" asChild className="text-primary">
<Link to="/applications">
View all <ArrowRight className="ml-1 h-4 w-4" />
</Link>
</Button>
</CardHeader>
<CardContent>
<div className="space-y-4">
{allApplications.map((app) => (
<div
key={app.id}
className="flex flex-col sm:flex-row items-start sm:items-center gap-3 sm:gap-4 p-3 rounded-lg bg-muted/30 hover:bg-muted/50 transition-colors"
>
<div className={`rounded-lg p-2 ${app.type === 'hatchery' ? 'bg-primary/10 text-primary' : 'bg-emerald-100 text-emerald-700'}`}>
{app.type === 'hatchery' ? <Fish className="h-5 w-5" /> : <Warehouse className="h-5 w-5" />}
</div>
<div className="flex-1 min-w-0">
<p className="font-medium text-sm truncate">
{app.type === 'hatchery' ? (app as any).hatcheryName : (app as any).farmName}
</p>
<p className="text-xs text-muted-foreground">{app.applicationNo}</p>
</div>
<div className="w-full sm:w-auto sm:text-right">
<Badge className={getStatusColor(app.status)}>{formatStatus(app.status)}</Badge>
<p className="text-xs text-muted-foreground mt-1">{app.submittedDate}</p>
</div>
</div>
))}
</div>
</CardContent>
</Card>
);
}