From 0bba766b4b89fdf841b93e46f567c1d20cdaba7f Mon Sep 17 00:00:00 2001 From: "gpt-engineer-app[bot]" <159125892+gpt-engineer-app[bot]@users.noreply.github.com> Date: Mon, 29 Sep 2025 13:31:07 +0000 Subject: [PATCH] Refactor: Update ParkDetail with RideCard --- src/pages/ParkDetail.tsx | 143 +++++---------------------------------- 1 file changed, 17 insertions(+), 126 deletions(-) diff --git a/src/pages/ParkDetail.tsx b/src/pages/ParkDetail.tsx index c0ef8a0e..9f184211 100644 --- a/src/pages/ParkDetail.tsx +++ b/src/pages/ParkDetail.tsx @@ -6,9 +6,9 @@ import { Badge } from '@/components/ui/badge'; import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card'; import { Tabs, TabsContent, TabsList, TabsTrigger } from '@/components/ui/tabs'; import { Separator } from '@/components/ui/separator'; -import { MapPin, Star, Clock, Phone, Globe, Calendar, ArrowLeft, Users, Zap, Camera, Castle, FerrisWheel, Waves, Tent, Theater, Train } from 'lucide-react'; +import { MapPin, Star, Clock, Phone, Globe, Calendar, ArrowLeft, Users, Zap, Camera, Castle, FerrisWheel, Waves, Tent } from 'lucide-react'; import { ReviewsSection } from '@/components/reviews/ReviewsSection'; -import { MeasurementDisplay } from '@/components/ui/measurement-display'; +import { RideCard } from '@/components/rides/RideCard'; import { Park, Ride } from '@/types/database'; import { supabase } from '@/integrations/supabase/client'; export default function ParkDetail() { @@ -81,24 +81,6 @@ export default function ParkDetail() { const formatParkType = (type: string) => { return type.split('_').map(word => word.charAt(0).toUpperCase() + word.slice(1)).join(' '); }; - const getRideIcon = (category: string) => { - switch (category) { - case 'roller_coaster': - return ; - case 'water_ride': - return ; - case 'dark_ride': - return ; - case 'flat_ride': - return ; - case 'kiddie_ride': - return ; - case 'transportation': - return ; - default: - return ; - } - }; if (loading) { return
@@ -283,26 +265,21 @@ export default function ParkDetail() { } - {/* Top Rides Preview */} + {/* Featured Rides */} Featured Rides -
- {rides.slice(0, 4).map(ride =>
navigate(`/parks/${park.slug}/rides/${ride.slug}`)}> -
{getRideIcon(ride.category)}
-
-

{ride.name}

-

- {ride.category.replace('_', ' ')} -

-
- {ride.average_rating > 0 &&
- - {ride.average_rating.toFixed(1)} -
} -
)} +
+ {rides.slice(0, 4).map(ride => ( + + ))}
@@ -372,99 +349,13 @@ export default function ParkDetail() { -
+
{rides.map(ride => ( - navigate(`/parks/${park.slug}/rides/${ride.slug}`)} - > -
- {ride.image_url ? ( - {ride.name} - ) : ( -
-
- {getRideIcon(ride.category)} -
-
- )} - - {/* Status Badge */} -
- - {ride.status} - -
- - {/* Rating */} - {ride.average_rating > 0 && ( -
-
- - - {ride.average_rating.toFixed(1)} - -
-
- )} -
- - -
- {/* Title and Category */} -
-

- {ride.name} -

-
-

- {ride.category.replace('_', ' ')} -

-
-
- - {/* Description */} - {ride.description && ( -

- {ride.description} -

- )} - - {/* Stats */} -
- {ride.max_speed_kmh && ride.max_speed_kmh > 0 && ( - - - - )} - {ride.max_height_meters && ride.max_height_meters > 0 && ( - - - - )} - {ride.inversions > 0 && ( - - {ride.inversions} inversions - - )} -
-
-
-
+ ride={ride} + showParkName={false} + /> ))}