Fix TypeScript strict mode errors

This commit is contained in:
gpt-engineer-app[bot]
2025-11-03 03:29:29 +00:00
parent 3c13b7a9f4
commit 288e87bcd3
11 changed files with 132 additions and 120 deletions

View File

@@ -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)}