import { useQuery } from "@tanstack/react-query"; import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; import { Badge } from "@/components/ui/badge"; import { Shield, Clock, CheckCircle } from "lucide-react"; interface EvidenceChainPanelProps { expanded?: boolean; } export function EvidenceChainPanel({ expanded = false }: EvidenceChainPanelProps) { const { data: recentCases = [] } = useQuery({ queryKey: ['/api/cases'], refetchInterval: 10000, }); const { data: auditLogs = [] } = useQuery({ queryKey: ['/api/audit/trail'], refetchInterval: 5000, }); const getStatusBadge = (status: string) => { switch (status) { case 'active': return Active; case 'resolved': return Resolved; case 'pending': return Pending; default: return Unknown; } }; return (
{/* Recent Cases */} Recent Cases {recentCases.length === 0 ? (

No recent cases

) : ( recentCases.slice(0, expanded ? 10 : 3).map((caseItem: any, index: number) => (

{caseItem.caseNumber || `Case #${index + 1}`}

{caseItem.title || 'Property Dispute'}

{getStatusBadge(caseItem.status || 'active')}
)) )}
{/* Chain of Custody */} Chain of Custody {[ { action: "Evidence Submitted", timestamp: new Date(Date.now() - 1000 * 60 * 5), user: "Attorney Johnson", icon: , }, { action: "Forensic Verification", timestamp: new Date(Date.now() - 1000 * 60 * 15), user: "Expert Wilson", icon: , }, { action: "Blockchain Recording", timestamp: new Date(Date.now() - 1000 * 60 * 25), user: "System", icon: , }, ].map((entry, index) => (
{entry.icon}

{entry.action}

by {entry.user} • {entry.timestamp.toLocaleTimeString()}

))}
{/* Compliance Status */} Compliance Status
Cook County Standards Compliant
7-Year Retention Compliant
Audit Trail Complete Yes
Blockchain Verified 100%
Overall Compliance Score 98.7%
); }