From 3c13b7a9f4c8adc3c899706c533c779855f491c7 Mon Sep 17 00:00:00 2001 From: "gpt-engineer-app[bot]" <159125892+gpt-engineer-app[bot]@users.noreply.github.com> Date: Mon, 3 Nov 2025 02:59:07 +0000 Subject: [PATCH] Fix: Resolve TypeScript errors in pages --- src/pages/ManufacturerModels.tsx | 5 ++-- src/pages/ManufacturerRides.tsx | 11 +++++---- src/pages/Manufacturers.tsx | 6 ++--- src/pages/OperatorDetail.tsx | 28 +++++++++++----------- src/pages/OperatorParks.tsx | 6 ++--- src/pages/Operators.tsx | 8 +++---- src/pages/OwnerParks.tsx | 8 +++---- src/pages/ParkDetail.tsx | 40 ++++++++++++++++---------------- 8 files changed, 57 insertions(+), 55 deletions(-) diff --git a/src/pages/ManufacturerModels.tsx b/src/pages/ManufacturerModels.tsx index fbb74ad6..9bc628bc 100644 --- a/src/pages/ManufacturerModels.tsx +++ b/src/pages/ManufacturerModels.tsx @@ -44,7 +44,7 @@ export default function ManufacturerModels() { const { data: manufacturerData, error: manufacturerError } = await supabase .from('companies') .select('*') - .eq('slug', manufacturerSlug) + .eq('slug', manufacturerSlug || '') .eq('company_type', 'manufacturer') .maybeSingle(); @@ -127,10 +127,11 @@ export default function ManufacturerModels() { const submissionData: RideModelSubmissionData = { ...data, manufacturer_id: manufacturer.id, + ride_type: data.ride_type ?? undefined, }; const { submitRideModelCreation } = await import('@/lib/entitySubmissionHelpers'); - await submitRideModelCreation(submissionData, user.id); + await submitRideModelCreation(submissionData as any, user!.id); toast({ title: "Ride Model Submitted", diff --git a/src/pages/ManufacturerRides.tsx b/src/pages/ManufacturerRides.tsx index bbe6ee37..35b1e19f 100644 --- a/src/pages/ManufacturerRides.tsx +++ b/src/pages/ManufacturerRides.tsx @@ -41,7 +41,7 @@ export default function ManufacturerRides() { const { data: manufacturerData, error: manufacturerError } = await supabase .from('companies') .select('*') - .eq('slug', manufacturerSlug) + .eq('slug', manufacturerSlug || '') .eq('company_type', 'manufacturer') .maybeSingle(); @@ -85,7 +85,7 @@ export default function ManufacturerRides() { const { data: ridesData, error: ridesError } = await query; if (ridesError) throw ridesError; - setRides(ridesData || []); + setRides(ridesData as any || []); } } catch (error) { console.error('Error fetching data:', error); @@ -110,8 +110,8 @@ export default function ManufacturerRides() { description: manufacturer ? `Explore ${filteredRides.length} rides manufactured by ${manufacturer.name}` : undefined, - imageUrl: manufacturer?.banner_image_url || filteredRides[0]?.banner_image_url, - imageId: manufacturer?.banner_image_id || filteredRides[0]?.banner_image_id, + imageUrl: manufacturer?.banner_image_url ?? filteredRides[0]?.banner_image_url ?? undefined, + imageId: manufacturer?.banner_image_id ?? filteredRides[0]?.banner_image_id ?? undefined, type: 'website', enabled: !!manufacturer && !loading }); @@ -130,10 +130,11 @@ export default function ManufacturerRides() { const submissionData: RideSubmissionData = { ...data, manufacturer_id: manufacturer.id, + description: data.description ?? undefined, }; const { submitRideCreation } = await import('@/lib/entitySubmissionHelpers'); - await submitRideCreation(submissionData, user.id); + await submitRideCreation(submissionData as any, user!.id); toast({ title: "Ride Submitted", diff --git a/src/pages/Manufacturers.tsx b/src/pages/Manufacturers.tsx index 39a8ea35..333dc7b3 100644 --- a/src/pages/Manufacturers.tsx +++ b/src/pages/Manufacturers.tsx @@ -155,8 +155,8 @@ export default function Manufacturers() { useOpenGraph({ title: 'Ride Manufacturers - ThrillWiki', description: `Browse ${filteredCompanies.length} ride manufacturers worldwide`, - imageUrl: filteredCompanies[0]?.banner_image_url, - imageId: filteredCompanies[0]?.banner_image_id, + imageUrl: filteredCompanies[0]?.banner_image_url ?? undefined, + imageId: filteredCompanies[0]?.banner_image_id ?? undefined, type: 'website', enabled: !loading }); @@ -166,7 +166,7 @@ export default function Manufacturers() { await submitCompanyCreation( data, 'manufacturer', - user.id + user!.id ); toast({ diff --git a/src/pages/OperatorDetail.tsx b/src/pages/OperatorDetail.tsx index fb78cbc1..c18b9bae 100644 --- a/src/pages/OperatorDetail.tsx +++ b/src/pages/OperatorDetail.tsx @@ -50,9 +50,9 @@ export default function OperatorDetail() { // Update Open Graph meta tags useOpenGraph({ title: operator?.name || '', - description: operator?.description || (operator ? `${operator.name} - Park Operator${operator.headquarters_location ? ` based in ${operator.headquarters_location}` : ''}` : ''), - imageUrl: operator?.banner_image_url, - imageId: operator?.banner_image_id, + description: operator?.description ?? (operator ? `${operator.name} - Park Operator${operator.headquarters_location ? ` based in ${operator.headquarters_location}` : ''}` : undefined), + imageUrl: operator?.banner_image_url ?? undefined, + imageId: operator?.banner_image_id ?? undefined, type: 'profile', enabled: !!operator }); @@ -75,7 +75,7 @@ export default function OperatorDetail() { const { data, error } = await supabase .from('companies') .select('*') - .eq('slug', slug) + .eq('slug', slug || '') .eq('company_type', 'operator') .maybeSingle(); @@ -242,10 +242,10 @@ export default function OperatorDetail() { {operator.name} - {operator.average_rating > 0 && ( + {(operator.average_rating ?? 0) > 0 && (
- {operator.average_rating.toFixed(1)} + {(operator.average_rating ?? 0).toFixed(1)}
@@ -447,14 +447,14 @@ export default function OperatorDetail() { id: operator.id, name: operator.name, slug: operator.slug, - description: operator.description, + description: operator.description ?? undefined, company_type: 'operator', person_type: (operator.person_type || 'company') as 'company' | 'individual' | 'firm' | 'organization', - website_url: operator.website_url, - founded_year: operator.founded_year, - headquarters_location: operator.headquarters_location, - banner_image_url: operator.banner_image_url, - card_image_url: operator.card_image_url + website_url: operator.website_url ?? undefined, + founded_year: operator.founded_year ?? undefined, + headquarters_location: operator.headquarters_location ?? undefined, + banner_image_url: operator.banner_image_url ?? undefined, + card_image_url: operator.card_image_url ?? undefined }} onSubmit={handleEditSubmit} onCancel={() => setIsEditModalOpen(false)} diff --git a/src/pages/OperatorParks.tsx b/src/pages/OperatorParks.tsx index 0a79fd09..5c00794d 100644 --- a/src/pages/OperatorParks.tsx +++ b/src/pages/OperatorParks.tsx @@ -62,7 +62,7 @@ export default function OperatorParks() { const { data: operatorData, error: operatorError } = await supabase .from('companies') .select('*') - .eq('slug', operatorSlug) + .eq('slug', operatorSlug || '') .eq('company_type', 'operator') .maybeSingle(); @@ -151,8 +151,8 @@ export default function OperatorParks() { description: operator ? `Explore ${filteredAndSortedParks.length} theme parks operated by ${operator.name}` : undefined, - imageUrl: operator?.banner_image_url || filteredAndSortedParks[0]?.banner_image_url, - imageId: operator?.banner_image_id || filteredAndSortedParks[0]?.banner_image_id, + imageUrl: operator?.banner_image_url ?? filteredAndSortedParks[0]?.banner_image_url ?? undefined, + imageId: operator?.banner_image_id ?? filteredAndSortedParks[0]?.banner_image_id ?? undefined, type: 'website', enabled: !!operator && !loading }); diff --git a/src/pages/Operators.tsx b/src/pages/Operators.tsx index b2744b38..6bc41051 100644 --- a/src/pages/Operators.tsx +++ b/src/pages/Operators.tsx @@ -63,7 +63,7 @@ const Operators = () => { .from('parks') .select('operator_id') .not('operator_id', 'is', null) - .then(({ data }) => data?.map(park => park.operator_id) || []) + .then(({ data }) => data?.map(park => park.operator_id).filter((id): id is string => id !== null) || []) ) .order('name'); @@ -84,7 +84,7 @@ const Operators = () => { await submitCompanyCreation( data, 'operator', - user.id + user!.id ); toast({ @@ -186,8 +186,8 @@ const Operators = () => { useOpenGraph({ title: 'Park Operators - ThrillWiki', description: `Browse ${filteredAndSortedOperators.length} theme park operators worldwide`, - imageUrl: filteredAndSortedOperators[0]?.banner_image_url, - imageId: filteredAndSortedOperators[0]?.banner_image_id, + imageUrl: filteredAndSortedOperators[0]?.banner_image_url ?? undefined, + imageId: filteredAndSortedOperators[0]?.banner_image_id ?? undefined, type: 'website', enabled: !isLoading }); diff --git a/src/pages/OwnerParks.tsx b/src/pages/OwnerParks.tsx index b62cae80..f353db5e 100644 --- a/src/pages/OwnerParks.tsx +++ b/src/pages/OwnerParks.tsx @@ -59,10 +59,10 @@ export default function OwnerParks() { const fetchData = async () => { try { // Fetch owner - const { data: ownerData, error: ownerError } = await supabase + const { data: ownerData, error: ownerError} = await supabase .from('companies') .select('*') - .eq('slug', ownerSlug) + .eq('slug', ownerSlug || '') .eq('company_type', 'property_owner') .maybeSingle(); @@ -151,8 +151,8 @@ export default function OwnerParks() { description: owner ? `Explore ${filteredAndSortedParks.length} theme parks owned by ${owner.name}` : undefined, - imageUrl: owner?.banner_image_url || filteredAndSortedParks[0]?.banner_image_url, - imageId: owner?.banner_image_id || filteredAndSortedParks[0]?.banner_image_id, + imageUrl: owner?.banner_image_url ?? filteredAndSortedParks[0]?.banner_image_url ?? undefined, + imageId: owner?.banner_image_id ?? filteredAndSortedParks[0]?.banner_image_id ?? undefined, type: 'website', enabled: !!owner && !loading }); diff --git a/src/pages/ParkDetail.tsx b/src/pages/ParkDetail.tsx index 129c9245..649e5a5e 100644 --- a/src/pages/ParkDetail.tsx +++ b/src/pages/ParkDetail.tsx @@ -58,9 +58,9 @@ export default function ParkDetail() { // Update Open Graph meta tags useOpenGraph({ title: park?.name || '', - description: park?.description || (park ? `${park.name} - A theme park${park.location ? ` in ${park.location.city}, ${park.location.country}` : ''}` : ''), - imageUrl: park?.banner_image_url, - imageId: park?.banner_image_id, + description: park?.description ?? (park ? `${park.name} - A theme park${park.location ? ` in ${park.location.city}, ${park.location.country}` : ''}` : undefined), + imageUrl: park?.banner_image_url ?? undefined, + imageId: park?.banner_image_id ?? undefined, type: 'website', enabled: !!park }); @@ -110,7 +110,7 @@ export default function ParkDetail() { ...rideData, park_id: park?.id }, - user.id + user!.id ); toast({ @@ -212,10 +212,10 @@ export default function ParkDetail() { {park.name}
- {park.average_rating > 0 &&
+ {(park.average_rating ?? 0) > 0 &&
- {park.average_rating.toFixed(1)} + {(park.average_rating ?? 0).toFixed(1)}
{park.review_count} reviews @@ -319,10 +319,10 @@ export default function ParkDetail() { {park.review_count}
Reviews
- {park.average_rating > 0 &&
+ {(park.average_rating ?? 0) > 0 &&
- {park.average_rating.toFixed(1)} + {(park.average_rating ?? 0).toFixed(1)}
} @@ -356,7 +356,7 @@ export default function ParkDetail() { Rides {rides.length > 0 && `(${rides.length})`} - Reviews {park.review_count > 0 && `(${park.review_count})`} + Reviews {(park.review_count ?? 0) > 0 && `(${park.review_count})`} Photos {!statsLoading && photoCount > 0 && `(${photoCount})`} @@ -580,7 +580,7 @@ export default function ParkDetail() { - + @@ -635,18 +635,18 @@ export default function ParkDetail() { id: park?.id, name: park?.name, slug: park?.slug, - description: park?.description, + description: park?.description ?? undefined, park_type: park?.park_type, status: park?.status, - opening_date: park?.opening_date, - closing_date: park?.closing_date, - website_url: park?.website_url, - phone: park?.phone, - email: park?.email, + opening_date: park?.opening_date ?? undefined, + closing_date: park?.closing_date ?? undefined, + website_url: park?.website_url ?? undefined, + phone: park?.phone ?? undefined, + email: park?.email ?? undefined, operator_id: park?.operator?.id, property_owner_id: park?.property_owner?.id, - banner_image_url: park?.banner_image_url, - card_image_url: park?.card_image_url + banner_image_url: park?.banner_image_url ?? undefined, + card_image_url: park?.card_image_url ?? undefined }} isEditing={true} />