import { useState, useEffect } from 'react'; import { Tabs, TabsContent, TabsList, TabsTrigger } from '@/components/ui/tabs'; import { ParkCard } from '@/components/parks/ParkCard'; import { RideCard } from '@/components/rides/RideCard'; import { Park, Ride } from '@/types/database'; import { supabase } from '@/integrations/supabase/client'; export function ContentTabs() { const [popularParks, setPopularParks] = useState([]); const [trendingParks, setTrendingParks] = useState([]); const [popularRides, setPopularRides] = useState([]); const [trendingRides, setTrendingRides] = useState([]); const [recentParks, setRecentParks] = useState([]); const [recentRides, setRecentRides] = useState([]); const [loading, setLoading] = useState(true); useEffect(() => { fetchContent(); }, []); const fetchContent = async () => { try { // Most Popular Parks (by rating) const { data: popular } = await supabase .from('parks') .select(`*, location:locations(*), operator:companies!parks_operator_id_fkey(*)`) .order('average_rating', { ascending: false }) .limit(12); // Trending Parks (by review count) const { data: trending } = await supabase .from('parks') .select(`*, location:locations(*), operator:companies!parks_operator_id_fkey(*)`) .order('review_count', { ascending: false }) .limit(12); // Recently Added Parks const { data: recent } = await supabase .from('parks') .select(`*, location:locations(*), operator:companies!parks_operator_id_fkey(*)`) .order('created_at', { ascending: false }) .limit(12); // Popular Rides (by rating) const { data: popularRidesData } = await supabase .from('rides') .select(`*, park:parks!inner(name, slug, location:locations(*))`) .order('average_rating', { ascending: false }) .limit(12); // Trending Rides (by review count) const { data: trendingRidesData } = await supabase .from('rides') .select(`*, park:parks!inner(name, slug, location:locations(*))`) .order('review_count', { ascending: false }) .limit(12); // Recently Added Rides const { data: recentRidesData } = await supabase .from('rides') .select(`*, park:parks!inner(name, slug, location:locations(*))`) .order('created_at', { ascending: false }) .limit(12); setPopularParks(popular || []); setTrendingParks(trending || []); setRecentParks(recent || []); setPopularRides(popularRidesData || []); setTrendingRides(trendingRidesData || []); setRecentRides(recentRidesData || []); } catch (error) { console.error('Error fetching content:', error); } finally { setLoading(false); } }; if (loading) { return (
{[...Array(6)].map((_, i) => (
))}
); } return (
Popular Parks Trending Parks Popular Rides Trending Rides New Parks New Rides

Most Popular Parks

Highest rated theme parks worldwide

{popularParks.map((park) => ( ))}

Trending Parks

Most reviewed parks this month

{trendingParks.map((park) => ( ))}

Most Popular Rides

Highest rated attractions worldwide

{popularRides.map((ride) => ( ))}

Trending Rides

Most talked about attractions

{trendingRides.map((ride) => ( ))}

Recently Added Parks

Latest parks added to our database

{recentParks.map((park) => ( ))}

Recently Added Rides

Latest attractions added to our database

{recentRides.map((ride) => ( ))}
); }