import { MapPin, Star, FerrisWheel, Zap } from 'lucide-react'; import { useParkPreview } from '@/hooks/preview/useParkPreview'; import { Badge } from '@/components/ui/badge'; import { Separator } from '@/components/ui/separator'; interface ParkPreviewCardProps { slug: string; } export function ParkPreviewCard({ slug }: ParkPreviewCardProps) { const { data: park, isLoading } = useParkPreview(slug); if (isLoading) { return (
); } if (!park) { return (
Park not found
); } const getStatusColor = (status: string) => { switch (status) { case 'operating': return 'bg-green-500/20 text-green-400 border-green-500/30'; case 'seasonal': return 'bg-yellow-500/20 text-yellow-400 border-yellow-500/30'; case 'under_construction': return 'bg-blue-500/20 text-blue-400 border-blue-500/30'; default: return 'bg-red-500/20 text-red-400 border-red-500/30'; } }; const formatParkType = (type: string) => { return type.split('_').map(word => word.charAt(0).toUpperCase() + word.slice(1)).join(' '); }; return (
{/* Image */} {park.card_image_url && (
{park.name}
)} {/* Header */}

{park.name}

{park.status.replace('_', ' ').toUpperCase()} {formatParkType(park.park_type)}
{/* Location */} {park.location && (
{[park.location.city, park.location.state_province, park.location.country] .filter(Boolean) .join(', ')}
)} {/* Stats */}
{park.ride_count || 0} rides
{park.coaster_count || 0} coasters
{park.average_rating && park.average_rating > 0 && (
{park.average_rating.toFixed(1)} ({park.review_count} reviews)
)}
); }