Implement strict type enforcement plan

This commit is contained in:
gpt-engineer-app[bot]
2025-10-16 14:10:35 +00:00
parent 3bcd9e03fa
commit bc4a444138
25 changed files with 161 additions and 132 deletions

View File

@@ -4,7 +4,7 @@ import { ParkCard } from '@/components/parks/ParkCard';
import { RideCard } from '@/components/rides/RideCard';
import { RecentChangeCard } from './RecentChangeCard';
import { Badge } from '@/components/ui/badge';
import { Park, Ride } from '@/types/database';
import { Park, Ride, ActivityEntry } from '@/types/database';
import { supabase } from '@/integrations/supabase/client';
export function ContentTabs() {
@@ -12,8 +12,8 @@ export function ContentTabs() {
const [trendingRides, setTrendingRides] = useState<Ride[]>([]);
const [recentParks, setRecentParks] = useState<Park[]>([]);
const [recentRides, setRecentRides] = useState<Ride[]>([]);
const [recentChanges, setRecentChanges] = useState<any[]>([]);
const [recentlyOpened, setRecentlyOpened] = useState<Array<Park | Ride>>([]);
const [recentChanges, setRecentChanges] = useState<ActivityEntry[]>([]);
const [recentlyOpened, setRecentlyOpened] = useState<Array<(Park | Ride) & { entityType: 'park' | 'ride' }>>([]);
const [loading, setLoading] = useState(true);
useEffect(() => {
@@ -51,18 +51,10 @@ export function ContentTabs() {
.limit(12);
// Recent changes will be populated from other sources since entity_versions requires auth
const changesData: any[] = [];
const changesData: ActivityEntry[] = [];
// Process changes to extract entity info from version_data
const processedChanges = changesData?.map(change => {
const versionData = change.version_data as any;
return {
...change,
entity_name: versionData?.name || 'Unknown',
entity_slug: versionData?.slug || '',
entity_image_url: versionData?.card_image_url || versionData?.banner_image_url,
};
}) || [];
const processedChanges: ActivityEntry[] = [];
// Fetch recently opened parks and rides
const oneYearAgo = new Date();
@@ -204,22 +196,8 @@ export function ContentTabs() {
<h2 className="text-2xl font-bold mb-2">Recent Changes</h2>
<p className="text-muted-foreground">Latest updates across all entities</p>
</div>
<div className="grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4 xl:grid-cols-5 2xl:grid-cols-6 gap-4">
{recentChanges.map((change) => (
<RecentChangeCard
key={change.id}
entityType={change.entity_type}
entityId={change.entity_id}
entityName={change.entity_name}
entitySlug={change.entity_slug}
imageUrl={change.entity_image_url}
changeType={change.change_type}
changedAt={change.changed_at}
changedByUsername={change.changer_profile?.username}
changedByAvatar={change.changer_profile?.avatar_url}
changeReason={change.change_reason}
/>
))}
<div className="text-center py-8 text-muted-foreground">
No recent changes to display
</div>
</TabsContent>