mirror of
https://github.com/pacnpal/thrilltrack-explorer.git
synced 2025-12-22 22:11:12 -05:00
Refactor profile stats calculation
This commit is contained in:
@@ -261,6 +261,27 @@ export default function RideDetail() {
|
||||
</CardContent>
|
||||
</Card>
|
||||
)}
|
||||
|
||||
{/* New roller coaster specific stats */}
|
||||
{ride.drop_height_meters && (
|
||||
<Card>
|
||||
<CardContent className="p-4 text-center">
|
||||
<div className="text-2xl mb-2">⬇️</div>
|
||||
<div className="text-2xl font-bold text-destructive">{ride.drop_height_meters}m</div>
|
||||
<div className="text-sm text-muted-foreground">drop</div>
|
||||
</CardContent>
|
||||
</Card>
|
||||
)}
|
||||
|
||||
{ride.max_g_force && (
|
||||
<Card>
|
||||
<CardContent className="p-4 text-center">
|
||||
<div className="text-2xl mb-2">⚡</div>
|
||||
<div className="text-2xl font-bold text-warning">{ride.max_g_force}g</div>
|
||||
<div className="text-sm text-muted-foreground">max G-force</div>
|
||||
</CardContent>
|
||||
</Card>
|
||||
)}
|
||||
</div>
|
||||
|
||||
{/* Requirements & Warnings */}
|
||||
@@ -367,6 +388,49 @@ export default function RideDetail() {
|
||||
</div>
|
||||
)}
|
||||
|
||||
{/* Roller Coaster Specific Info */}
|
||||
{ride.category === 'roller_coaster' && (ride.coaster_type || ride.seating_type || ride.intensity_level) && (
|
||||
<>
|
||||
<Separator />
|
||||
<div className="space-y-3">
|
||||
<div className="font-medium">Coaster Details</div>
|
||||
{ride.coaster_type && (
|
||||
<div className="flex items-center gap-3">
|
||||
<div className="text-lg">🎢</div>
|
||||
<div>
|
||||
<div className="font-medium">Type</div>
|
||||
<div className="text-sm text-muted-foreground">
|
||||
{ride.coaster_type.charAt(0).toUpperCase() + ride.coaster_type.slice(1)}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
)}
|
||||
{ride.seating_type && (
|
||||
<div className="flex items-center gap-3">
|
||||
<div className="text-lg">💺</div>
|
||||
<div>
|
||||
<div className="font-medium">Seating</div>
|
||||
<div className="text-sm text-muted-foreground">
|
||||
{ride.seating_type.replace('_', ' ').replace(/\b\w/g, l => l.toUpperCase())}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
)}
|
||||
{ride.intensity_level && (
|
||||
<div className="flex items-center gap-3">
|
||||
<div className="text-lg">🔥</div>
|
||||
<div>
|
||||
<div className="font-medium">Intensity</div>
|
||||
<div className="text-sm text-muted-foreground">
|
||||
{ride.intensity_level.charAt(0).toUpperCase() + ride.intensity_level.slice(1)}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
</>
|
||||
)}
|
||||
|
||||
<Separator />
|
||||
|
||||
<div className="space-y-2">
|
||||
@@ -424,6 +488,18 @@ export default function RideDetail() {
|
||||
<span className="font-medium">{ride.inversions}</span>
|
||||
</div>
|
||||
)}
|
||||
{ride.drop_height_meters && (
|
||||
<div className="flex justify-between">
|
||||
<span>Drop Height</span>
|
||||
<span className="font-medium">{ride.drop_height_meters}m</span>
|
||||
</div>
|
||||
)}
|
||||
{ride.max_g_force && (
|
||||
<div className="flex justify-between">
|
||||
<span>Maximum G-Force</span>
|
||||
<span className="font-medium">{ride.max_g_force}g</span>
|
||||
</div>
|
||||
)}
|
||||
</CardContent>
|
||||
</Card>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user