/** * Individual Request Card Component */ import { motion } from 'framer-motion'; import { Badge } from '@/components/ui/badge'; import { Card, CardContent } from '@/components/ui/card'; import { User, ArrowRight, TrendingUp, Clock } from 'lucide-react'; import { getPriorityConfig, getStatusConfig } from '../utils/configMappers'; import type { ConvertedRequest } from '../types/requests.types'; interface RequestCardProps { request: ConvertedRequest; index: number; onViewRequest: (requestId: string, requestTitle?: string, status?: string) => void; } export function RequestCard({ request, index, onViewRequest }: RequestCardProps) { const statusConfig = getStatusConfig(request.status); const priorityConfig = getPriorityConfig(request.priority); const StatusIcon = statusConfig.icon; const PriorityIcon = priorityConfig.icon; return ( onViewRequest(request.id, request.title, request.status)} data-testid={`request-card-${request.id}`} >
{/* Header with Title and Status Badges */}

{request.title}

{request.status} {request.priority} {request.department && ( {request.department} )}

{request.description}

ID: {request.displayId || request.id} Submitted: {request.submittedDate ? new Date(request.submittedDate).toLocaleDateString() : 'N/A'}
{/* Current Approver and Level Info */}
Current Approver: {request.currentApprover}
Approval Level: {request.approverLevel}
Submitted: {request.submittedDate ? new Date(request.submittedDate).toLocaleDateString() : 'N/A'}
); }