import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card'; import { Badge } from '@/components/ui/badge'; import { Button } from '@/components/ui/button'; import { Edit, MapPin, Zap, Building2, Image, Package } from 'lucide-react'; import { type SubmissionItemWithDeps } from '@/lib/submissionItemsService'; import { useIsMobile } from '@/hooks/use-mobile'; import { PhotoSubmissionDisplay } from './PhotoSubmissionDisplay'; import { SubmissionChangesDisplay } from './SubmissionChangesDisplay'; interface ItemReviewCardProps { item: SubmissionItemWithDeps; onEdit: () => void; onStatusChange: (status: 'approved' | 'rejected') => void; submissionId: string; } export function ItemReviewCard({ item, onEdit, onStatusChange, submissionId }: ItemReviewCardProps) { const isMobile = useIsMobile(); const getItemIcon = () => { switch (item.item_type) { case 'park': return ; case 'ride': return ; case 'manufacturer': case 'operator': case 'property_owner': case 'designer': return ; case 'ride_model': return ; case 'photo': return ; default: return null; } }; const getStatusColor = () => { switch (item.status) { case 'approved': return 'default'; case 'rejected': return 'destructive'; case 'pending': return 'secondary'; default: return 'outline'; } }; const renderItemPreview = () => { // Use detailed view for review manager with photo detection return ( ); }; return ( {getItemIcon()} {item.item_type.replace('_', ' ').toUpperCase()} {item.original_data && ( Edited )} {item.status} {item.status === 'pending' && ( {isMobile && Edit} )} {renderItemPreview()} {item.depends_on && ( Depends on another item in this submission )} {item.rejection_reason && ( Rejection Reason: {item.rejection_reason} )} ); }
Depends on another item in this submission
Rejection Reason:
{item.rejection_reason}