mirror of
https://github.com/pacnpal/thrilltrack-explorer.git
synced 2025-12-22 07:51:13 -05:00
Fix null/undefined type mismatches
This commit is contained in:
@@ -170,7 +170,11 @@ export function ManufacturerForm({ onSubmit, onCancel, initialData }: Manufactur
|
||||
})()}
|
||||
precision={(watch('founded_date_precision') as DatePrecision) || 'year'}
|
||||
onChange={(date, precision) => {
|
||||
setValue('founded_date', date ? toDateOnly(date) : undefined);
|
||||
if (date && typeof date === 'string') {
|
||||
setValue('founded_date', toDateOnly(date) as any);
|
||||
} else {
|
||||
setValue('founded_date', null as any);
|
||||
}
|
||||
setValue('founded_date_precision', precision);
|
||||
}}
|
||||
label="Founded Date"
|
||||
|
||||
@@ -116,7 +116,7 @@ export function RecentChangeCard({
|
||||
{changedByUsername && (
|
||||
<div className="flex items-center gap-1">
|
||||
<Avatar className="h-4 w-4">
|
||||
<AvatarImage src={changedByAvatar} />
|
||||
<AvatarImage src={changedByAvatar || undefined} />
|
||||
<AvatarFallback>
|
||||
<User className="h-2 w-2" />
|
||||
</AvatarFallback>
|
||||
|
||||
@@ -39,7 +39,7 @@ export function ListDisplay({ list }: ListDisplayProps) {
|
||||
// Then, fetch the entities for each item
|
||||
const enrichedItems = await Promise.all(
|
||||
(itemsData as UserTopListItem[]).map(async (item) => {
|
||||
let entity = null;
|
||||
let entity: Park | Ride | Company | null = null;
|
||||
|
||||
if (item.entity_type === "park") {
|
||||
const { data } = await supabase
|
||||
@@ -47,28 +47,28 @@ export function ListDisplay({ list }: ListDisplayProps) {
|
||||
.select("id, name, slug, park_type, location_id")
|
||||
.eq("id", item.entity_id)
|
||||
.single();
|
||||
entity = data;
|
||||
entity = data as Park | null;
|
||||
} else if (item.entity_type === "ride") {
|
||||
const { data } = await supabase
|
||||
.from("rides")
|
||||
.select("id, name, slug, category, park_id")
|
||||
.eq("id", item.entity_id)
|
||||
.single();
|
||||
entity = data;
|
||||
entity = data as Ride | null;
|
||||
} else if (item.entity_type === "company") {
|
||||
const { data } = await supabase
|
||||
.from("companies")
|
||||
.select("id, name, slug, company_type")
|
||||
.eq("id", item.entity_id)
|
||||
.single();
|
||||
entity = data;
|
||||
entity = data as Company | null;
|
||||
}
|
||||
|
||||
return { ...item, entity };
|
||||
})
|
||||
);
|
||||
|
||||
setItems(enrichedItems);
|
||||
setItems(enrichedItems as EnrichedListItem[]);
|
||||
setLoading(false);
|
||||
};
|
||||
|
||||
|
||||
@@ -2,31 +2,31 @@ export interface Location {
|
||||
id: string;
|
||||
name: string;
|
||||
country: string;
|
||||
state_province?: string;
|
||||
city?: string;
|
||||
postal_code?: string;
|
||||
latitude?: number;
|
||||
longitude?: number;
|
||||
timezone?: string;
|
||||
state_province?: string | null;
|
||||
city?: string | null;
|
||||
postal_code?: string | null;
|
||||
latitude?: number | null;
|
||||
longitude?: number | null;
|
||||
timezone?: string | null;
|
||||
}
|
||||
|
||||
export interface Company {
|
||||
id: string;
|
||||
name: string;
|
||||
slug: string;
|
||||
description?: string;
|
||||
description?: string | null;
|
||||
company_type: string; // Allow any string from database
|
||||
person_type?: string; // Database returns string, validated at form level
|
||||
website_url?: string;
|
||||
founded_year?: number; // Legacy field
|
||||
founded_date?: string;
|
||||
founded_date_precision?: string;
|
||||
headquarters_location?: string;
|
||||
logo_url?: string;
|
||||
banner_image_url?: string;
|
||||
banner_image_id?: string;
|
||||
card_image_url?: string;
|
||||
card_image_id?: string;
|
||||
person_type?: string | null; // Database returns string, validated at form level
|
||||
website_url?: string | null;
|
||||
founded_year?: number | null; // Legacy field
|
||||
founded_date?: string | null;
|
||||
founded_date_precision?: string | null;
|
||||
headquarters_location?: string | null;
|
||||
logo_url?: string | null;
|
||||
banner_image_url?: string | null;
|
||||
banner_image_id?: string | null;
|
||||
card_image_url?: string | null;
|
||||
card_image_id?: string | null;
|
||||
average_rating: number;
|
||||
review_count: number;
|
||||
}
|
||||
@@ -42,16 +42,16 @@ export interface Park {
|
||||
opening_date_precision?: string | null;
|
||||
closing_date?: string | null;
|
||||
closing_date_precision?: string | null;
|
||||
website_url?: string;
|
||||
phone?: string;
|
||||
email?: string;
|
||||
location?: Location;
|
||||
operator?: Company;
|
||||
property_owner?: Company;
|
||||
banner_image_url?: string;
|
||||
banner_image_id?: string;
|
||||
card_image_url?: string;
|
||||
card_image_id?: string;
|
||||
website_url?: string | null;
|
||||
phone?: string | null;
|
||||
email?: string | null;
|
||||
location?: Location | null;
|
||||
operator?: Company | null;
|
||||
property_owner?: Company | null;
|
||||
banner_image_url?: string | null;
|
||||
banner_image_id?: string | null;
|
||||
card_image_url?: string | null;
|
||||
card_image_id?: string | null;
|
||||
average_rating: number;
|
||||
review_count: number;
|
||||
ride_count: number;
|
||||
|
||||
Reference in New Issue
Block a user