'use client'; import { motion, useReducedMotion } from 'framer-motion'; import { useState, useEffect } from 'react'; export default function LeagueDiscoveryMockup() { const shouldReduceMotion = useReducedMotion(); const [hoveredIndex, setHoveredIndex] = useState(null); const [isMobile, setIsMobile] = useState(false); useEffect(() => { setIsMobile(window.innerWidth < 768); }, []); const leagues = [ { name: 'Championship Series', carClass: 'GT3', region: 'EU', skill: '2.5k iRating', drivers: 48, schedule: 'Wed 20:00 CET', rating: 4.8, icon: '🏁' }, { name: 'Touring Car Challenge', carClass: 'TCR', region: 'NA', skill: 'Open skill', drivers: 32, schedule: 'Sat 18:00 EST', rating: 4.6, icon: '🏎️' } ]; if (isMobile) { return (
{['Game', 'Region'].map((filter) => (
))}
{leagues.map((league) => (
{league.icon}
{league.carClass} {league.region}
{league.drivers} drivers {league.schedule}
{[...Array(5)].map((_, i) => ( ))}
))}
); } const containerVariants = { hidden: { opacity: 0 }, visible: { opacity: 1, transition: { staggerChildren: shouldReduceMotion ? 0 : 0.15 } } }; const cardVariants = { hidden: { opacity: 0, y: shouldReduceMotion ? 0 : 20 }, visible: { opacity: 1, y: 0, transition: { type: 'spring' as const, stiffness: 200, damping: 20 } } }; return (
{['Game', 'Region', 'Skill'].map((filter, i) => (
))}
{leagues.map((league, index) => ( !shouldReduceMotion && setHoveredIndex(index)} onHoverEnd={() => setHoveredIndex(null)} whileHover={shouldReduceMotion ? {} : { scale: 1.02, y: -4, transition: { duration: 0.2 } }} className="bg-iron-gray/80 border border-charcoal-outline rounded-lg p-1.5 sm:p-2 md:p-3 lg:p-4 backdrop-blur-sm" >
{league.icon}
{league.carClass} {league.region} {league.skill}
{league.drivers} drivers
{league.schedule}
{[...Array(5)].map((_, i) => ( ))} {league.rating}
Join View
))}
); }