Fix: Resolve type errors in Ride and Profile components

This commit is contained in:
gpt-engineer-app[bot]
2025-10-16 14:17:17 +00:00
parent bc4a444138
commit b84b40f05d
4 changed files with 104 additions and 37 deletions

View File

@@ -698,29 +698,29 @@ export default function Profile() {
<p className="font-medium">
{activity.title || 'Left a review'}
</p>
{activity.moderation_status === 'pending' && (
{(activity as any).moderation_status === 'pending' && (
<Badge variant="secondary" className="text-xs">Pending</Badge>
)}
{activity.moderation_status === 'flagged' && (
{(activity as any).moderation_status === 'flagged' && (
<Badge variant="destructive" className="text-xs">Flagged</Badge>
)}
</div>
<div className="flex items-center gap-1 mb-2">
{[...Array(5)].map((_, i) => (
<Star key={i} className={`w-3 h-3 ${i < activity.rating ? 'fill-accent text-accent' : 'text-muted-foreground'}`} />
<Star key={i} className={`w-3 h-3 ${i < (activity.rating || 0) ? 'fill-accent text-accent' : 'text-muted-foreground'}`} />
))}
</div>
{activity.park_id && activity.parks ? (
<Link to={`/parks/${activity.parks.slug}`} className="text-sm text-muted-foreground hover:text-accent transition-colors">
{activity.parks.name}
{(activity as any).park_id && activity.parks ? (
<Link to={`/parks/${activity.parks.slug || ''}`} className="text-sm text-muted-foreground hover:text-accent transition-colors">
{activity.parks.name || 'Unknown Park'}
</Link>
) : activity.ride_id && activity.rides ? (
) : (activity as any).ride_id && activity.rides ? (
<div className="text-sm text-muted-foreground">
<Link to={`/parks/${activity.rides.parks?.slug}/rides/${activity.rides.slug}`} className="hover:text-accent transition-colors">
{activity.rides.name}
<Link to={`/parks/${activity.rides.parks?.slug || ''}/rides/${activity.rides.slug || ''}`} className="hover:text-accent transition-colors">
{activity.rides.name || 'Unknown Ride'}
</Link>
{activity.rides.parks && (
<span className="text-muted-foreground/70"> at {activity.rides.parks.name}</span>
<span className="text-muted-foreground/70"> at {activity.rides.parks.name || 'Unknown Park'}</span>
)}
</div>
) : null}
@@ -729,55 +729,55 @@ export default function Profile() {
<>
<div className="flex items-center gap-2 mb-1">
<p className="font-medium">
Submitted {activity.submission_type}
{activity.content?.name && `: ${activity.content.name}`}
Submitted {(activity as any).submission_type || 'content'}
{(activity as any).content?.name && `: ${(activity as any).content.name}`}
</p>
{activity.status === 'pending' && (
{(activity as any).status === 'pending' && (
<Badge variant="secondary" className="text-xs">Pending</Badge>
)}
{activity.status === 'approved' && (
{(activity as any).status === 'approved' && (
<Badge variant="default" className="text-xs">Approved</Badge>
)}
{activity.status === 'rejected' && (
{(activity as any).status === 'rejected' && (
<Badge variant="destructive" className="text-xs">Rejected</Badge>
)}
</div>
{activity.content?.description && (
{(activity as any).content?.description && (
<p className="text-sm text-muted-foreground line-clamp-2">
{activity.content.description}
{(activity as any).content.description}
</p>
)}
</>
) : activity.type === 'ranking' ? (
<>
<div className="flex items-center gap-2 mb-1">
<p className="font-medium">Created ranking: {activity.title}</p>
<p className="font-medium">Created ranking: {(activity as any).title || 'Untitled'}</p>
<Badge variant="outline" className="text-xs capitalize">
{activity.list_type.replace('_', ' ')}
{((activity as any).list_type || '').replace('_', ' ')}
</Badge>
</div>
{activity.description && (
{(activity as any).description && (
<p className="text-sm text-muted-foreground line-clamp-2">
{activity.description}
{(activity as any).description}
</p>
)}
</>
) : (
<>
<p className="font-medium mb-1">Added ride credit</p>
{activity.rides && (
{(activity as any).rides && (
<div className="text-sm text-muted-foreground">
<Link to={`/parks/${activity.rides.parks?.slug}/rides/${activity.rides.slug}`} className="hover:text-accent transition-colors">
{activity.rides.name}
<Link to={`/parks/${(activity as any).rides.parks?.slug}/rides/${(activity as any).rides.slug}`} className="hover:text-accent transition-colors">
{(activity as any).rides.name}
</Link>
{activity.rides.parks && (
<span className="text-muted-foreground/70"> at {activity.rides.parks.name}</span>
{(activity as any).rides.parks && (
<span className="text-muted-foreground/70"> at {(activity as any).rides.parks.name}</span>
)}
</div>
)}
{activity.ride_count > 1 && (
{(activity as any).ride_count > 1 && (
<p className="text-xs text-muted-foreground mt-1">
Ridden {activity.ride_count} times
Ridden {(activity as any).ride_count} times
</p>
)}
</>