mirror of
https://github.com/pacnpal/thrilltrack-explorer.git
synced 2025-12-26 11:06:59 -05:00
Fix TypeScript strict mode errors
This commit is contained in:
@@ -90,8 +90,8 @@ export default function RideDetail() {
|
||||
useOpenGraph({
|
||||
title: ride?.name ? `${ride.name}${ride.park?.name ? ` at ${ride.park.name}` : ''}` : '',
|
||||
description: ride?.description || (ride ? `${ride.name} - A thrilling ride${ride.park?.name ? ` at ${ride.park.name}` : ''}` : ''),
|
||||
imageUrl: ride?.banner_image_url,
|
||||
imageId: ride?.banner_image_id,
|
||||
imageUrl: ride?.banner_image_url ?? undefined,
|
||||
imageId: ride?.banner_image_id ?? undefined,
|
||||
type: 'website',
|
||||
enabled: !!ride
|
||||
});
|
||||
@@ -140,7 +140,7 @@ export default function RideDetail() {
|
||||
|
||||
toast({
|
||||
title: "Edit Submitted",
|
||||
description: isModerator
|
||||
description: isModerator()
|
||||
? "Your edit has been submitted. You can approve it in the moderation queue."
|
||||
: "Your ride edit has been submitted for review."
|
||||
});
|
||||
@@ -222,10 +222,10 @@ export default function RideDetail() {
|
||||
<picture>
|
||||
<source
|
||||
media="(max-width: 768px)"
|
||||
srcSet={getBannerUrls(ride.banner_image_id).mobile || ride.banner_image_url}
|
||||
srcSet={getBannerUrls(ride.banner_image_id ?? undefined).mobile || ride.banner_image_url || undefined}
|
||||
/>
|
||||
<img
|
||||
src={getBannerUrls(ride.banner_image_id).desktop || ride.banner_image_url}
|
||||
src={getBannerUrls(ride.banner_image_id ?? undefined).desktop || ride.banner_image_url || undefined}
|
||||
alt={ride.name}
|
||||
className="w-full h-full object-cover"
|
||||
loading="eager"
|
||||
@@ -268,12 +268,12 @@ export default function RideDetail() {
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{ride.average_rating > 0 && (
|
||||
{(ride.average_rating ?? 0) > 0 && (
|
||||
<div className="bg-black/30 backdrop-blur-md rounded-lg p-6 text-center min-w-[160px]">
|
||||
<div className="flex items-center justify-center gap-2 text-white mb-2">
|
||||
<Star className="w-6 h-6 fill-yellow-400 text-yellow-400" />
|
||||
<span className="text-3xl font-bold">
|
||||
{ride.average_rating.toFixed(1)}
|
||||
{(ride.average_rating ?? 0).toFixed(1)}
|
||||
</span>
|
||||
</div>
|
||||
<div className="text-white/90 text-sm mb-3">
|
||||
@@ -393,7 +393,7 @@ export default function RideDetail() {
|
||||
<TabsTrigger value="overview">Overview</TabsTrigger>
|
||||
<TabsTrigger value="specs">Specifications</TabsTrigger>
|
||||
<TabsTrigger value="reviews">
|
||||
Reviews {ride.review_count > 0 && `(${ride.review_count})`}
|
||||
Reviews {(ride.review_count ?? 0) > 0 && `(${ride.review_count})`}
|
||||
</TabsTrigger>
|
||||
<TabsTrigger value="photos">
|
||||
Photos {!statsLoading && photoCount > 0 && `(${photoCount})`}
|
||||
@@ -424,7 +424,7 @@ export default function RideDetail() {
|
||||
|
||||
<SimilarRides
|
||||
currentRideId={ride.id}
|
||||
parkId={ride.currentParkId}
|
||||
parkId={ride.currentParkId || ''}
|
||||
parkSlug={parkSlug || ''}
|
||||
category={ride.category}
|
||||
/>
|
||||
@@ -438,8 +438,8 @@ export default function RideDetail() {
|
||||
<div className="space-y-6">
|
||||
<RatingDistribution
|
||||
rideId={ride.id}
|
||||
totalReviews={ride.review_count}
|
||||
averageRating={ride.average_rating}
|
||||
totalReviews={ride.review_count ?? 0}
|
||||
averageRating={ride.average_rating ?? 0}
|
||||
/>
|
||||
{/* Ride Information */}
|
||||
<Card>
|
||||
@@ -650,9 +650,9 @@ export default function RideDetail() {
|
||||
|
||||
{/* Coaster Materials & Propulsion */}
|
||||
{ride.category === 'roller_coaster' && (
|
||||
ride.track_material?.length > 0 ||
|
||||
ride.support_material?.length > 0 ||
|
||||
ride.propulsion_method?.length > 0
|
||||
(ride.track_material?.length ?? 0) > 0 ||
|
||||
(ride.support_material?.length ?? 0) > 0 ||
|
||||
(ride.propulsion_method?.length ?? 0) > 0
|
||||
) && (
|
||||
<Card>
|
||||
<CardHeader>
|
||||
@@ -994,8 +994,8 @@ export default function RideDetail() {
|
||||
entityType="ride"
|
||||
entityId={ride.id}
|
||||
entityName={ride.name}
|
||||
averageRating={ride.average_rating}
|
||||
reviewCount={ride.review_count}
|
||||
averageRating={ride.average_rating ?? 0}
|
||||
reviewCount={ride.review_count ?? 0}
|
||||
/>
|
||||
</TabsContent>
|
||||
|
||||
@@ -1025,7 +1025,7 @@ export default function RideDetail() {
|
||||
<DialogHeader>
|
||||
<DialogTitle>Edit Ride</DialogTitle>
|
||||
<DialogDescription>
|
||||
{isModerator
|
||||
{isModerator()
|
||||
? "Make changes to this ride. Changes will be applied immediately."
|
||||
: "Submit changes to this ride for review. A moderator will review your submission."}
|
||||
</DialogDescription>
|
||||
@@ -1037,68 +1037,68 @@ export default function RideDetail() {
|
||||
id: ride.id,
|
||||
name: ride.name,
|
||||
slug: ride.slug,
|
||||
description: ride.description,
|
||||
description: ride.description ?? undefined,
|
||||
category: ride.category,
|
||||
ride_sub_type: ride.ride_sub_type,
|
||||
ride_sub_type: ride.ride_sub_type ?? undefined,
|
||||
status: ride.status as "operating" | "closed_permanently" | "closed_temporarily" | "under_construction" | "relocated" | "stored" | "demolished",
|
||||
opening_date: ride.opening_date,
|
||||
closing_date: ride.closing_date,
|
||||
height_requirement: ride.height_requirement,
|
||||
age_requirement: ride.age_requirement,
|
||||
capacity_per_hour: ride.capacity_per_hour,
|
||||
duration_seconds: ride.duration_seconds,
|
||||
max_speed_kmh: ride.max_speed_kmh,
|
||||
max_height_meters: ride.max_height_meters,
|
||||
length_meters: ride.length_meters,
|
||||
inversions: ride.inversions,
|
||||
opening_date: ride.opening_date ?? undefined,
|
||||
closing_date: ride.closing_date ?? undefined,
|
||||
height_requirement: ride.height_requirement ?? undefined,
|
||||
age_requirement: ride.age_requirement ?? undefined,
|
||||
capacity_per_hour: ride.capacity_per_hour ?? undefined,
|
||||
duration_seconds: ride.duration_seconds ?? undefined,
|
||||
max_speed_kmh: ride.max_speed_kmh ?? undefined,
|
||||
max_height_meters: ride.max_height_meters ?? undefined,
|
||||
length_meters: ride.length_meters ?? undefined,
|
||||
inversions: ride.inversions ?? undefined,
|
||||
// Coaster fields
|
||||
coaster_type: ride.coaster_type,
|
||||
seating_type: ride.seating_type,
|
||||
intensity_level: ride.intensity_level,
|
||||
coaster_type: ride.coaster_type ?? undefined,
|
||||
seating_type: ride.seating_type ?? undefined,
|
||||
intensity_level: ride.intensity_level ?? undefined,
|
||||
track_material: ride.track_material,
|
||||
support_material: ride.support_material,
|
||||
propulsion_method: ride.propulsion_method,
|
||||
drop_height_meters: ride.drop_height_meters,
|
||||
max_g_force: ride.max_g_force,
|
||||
drop_height_meters: ride.drop_height_meters ?? undefined,
|
||||
max_g_force: ride.max_g_force ?? undefined,
|
||||
// Water ride fields
|
||||
water_depth_cm: ride.water_depth_cm,
|
||||
splash_height_meters: ride.splash_height_meters,
|
||||
water_depth_cm: ride.water_depth_cm ?? undefined,
|
||||
splash_height_meters: ride.splash_height_meters ?? undefined,
|
||||
wetness_level: ride.wetness_level as any,
|
||||
flume_type: ride.flume_type,
|
||||
boat_capacity: ride.boat_capacity,
|
||||
flume_type: ride.flume_type ?? undefined,
|
||||
boat_capacity: ride.boat_capacity ?? undefined,
|
||||
// Dark ride fields
|
||||
theme_name: ride.theme_name,
|
||||
story_description: ride.story_description,
|
||||
show_duration_seconds: ride.show_duration_seconds,
|
||||
animatronics_count: ride.animatronics_count,
|
||||
projection_type: ride.projection_type,
|
||||
ride_system: ride.ride_system,
|
||||
scenes_count: ride.scenes_count,
|
||||
theme_name: ride.theme_name ?? undefined,
|
||||
story_description: ride.story_description ?? undefined,
|
||||
show_duration_seconds: ride.show_duration_seconds ?? undefined,
|
||||
animatronics_count: ride.animatronics_count ?? undefined,
|
||||
projection_type: ride.projection_type ?? undefined,
|
||||
ride_system: ride.ride_system ?? undefined,
|
||||
scenes_count: ride.scenes_count ?? undefined,
|
||||
// Flat ride fields
|
||||
rotation_type: ride.rotation_type as any,
|
||||
motion_pattern: ride.motion_pattern,
|
||||
platform_count: ride.platform_count,
|
||||
swing_angle_degrees: ride.swing_angle_degrees,
|
||||
rotation_speed_rpm: ride.rotation_speed_rpm,
|
||||
arm_length_meters: ride.arm_length_meters,
|
||||
max_height_reached_meters: ride.max_height_reached_meters,
|
||||
motion_pattern: ride.motion_pattern ?? undefined,
|
||||
platform_count: ride.platform_count ?? undefined,
|
||||
swing_angle_degrees: ride.swing_angle_degrees ?? undefined,
|
||||
rotation_speed_rpm: ride.rotation_speed_rpm ?? undefined,
|
||||
arm_length_meters: ride.arm_length_meters ?? undefined,
|
||||
max_height_reached_meters: ride.max_height_reached_meters ?? undefined,
|
||||
// Kiddie ride fields
|
||||
min_age: ride.min_age,
|
||||
max_age: ride.max_age,
|
||||
educational_theme: ride.educational_theme,
|
||||
character_theme: ride.character_theme,
|
||||
min_age: ride.min_age ?? undefined,
|
||||
max_age: ride.max_age ?? undefined,
|
||||
educational_theme: ride.educational_theme ?? undefined,
|
||||
character_theme: ride.character_theme ?? undefined,
|
||||
// Transportation fields
|
||||
transport_type: ride.transport_type as any,
|
||||
route_length_meters: ride.route_length_meters,
|
||||
stations_count: ride.stations_count,
|
||||
vehicle_capacity: ride.vehicle_capacity,
|
||||
vehicles_count: ride.vehicles_count,
|
||||
round_trip_duration_seconds: ride.round_trip_duration_seconds,
|
||||
route_length_meters: ride.route_length_meters ?? undefined,
|
||||
stations_count: ride.stations_count ?? undefined,
|
||||
vehicle_capacity: ride.vehicle_capacity ?? undefined,
|
||||
vehicles_count: ride.vehicles_count ?? undefined,
|
||||
round_trip_duration_seconds: ride.round_trip_duration_seconds ?? undefined,
|
||||
// Common fields
|
||||
manufacturer_id: ride.manufacturer?.id,
|
||||
ride_model_id: ride.ride_model?.id,
|
||||
banner_image_url: ride.banner_image_url,
|
||||
card_image_url: ride.card_image_url
|
||||
banner_image_url: ride.banner_image_url ?? undefined,
|
||||
card_image_url: ride.card_image_url ?? undefined
|
||||
}}
|
||||
onSubmit={handleEditSubmit}
|
||||
onCancel={() => setIsEditModalOpen(false)}
|
||||
|
||||
Reference in New Issue
Block a user