/** * Request Card Component * Displays a single request card in the My Requests list */ import { Card, CardContent } from '@/components/ui/card'; import { Badge } from '@/components/ui/badge'; import { ArrowRight, User, TrendingUp, Clock, FileText } from 'lucide-react'; import { motion } from 'framer-motion'; import { MyRequest } from '../types/myRequests.types'; import { getPriorityConfig, getStatusConfig } from '../utils/configMappers'; import { formatDateDDMMYYYY } from '@/utils/dateFormatter'; interface RequestCardProps { request: MyRequest; 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.templateType && ( Template: {request.templateName} )}

{request.description}

ID: {request.displayId || request.id} Submitted:{' '} {formatDateDDMMYYYY(request.submittedDate)}
{/* Current Approver and Level Info */}
Current Approver:{' '} {request.currentApprover}
Approval Level:{' '} {request.approverLevel}
Submitted: {formatDateDDMMYYYY(request.submittedDate)}
); }