'use client'; import { Stack } from '@/ui/Stack'; import { Text } from '@/ui/Text'; import { motion, useReducedMotion } from 'framer-motion'; import { useEffect, useState } from 'react'; export function TeamCompetitionMockup() { const shouldReduceMotion = useReducedMotion(); const [hoveredDriver, setHoveredDriver] = useState(null); const [hoveredTeam, setHoveredTeam] = useState(null); const [isMobile, setIsMobile] = useState(false); useEffect(() => { setIsMobile(window.innerWidth < 768); }, []); const teamColors = ['#198CFF', '#6FE37A', '#FFBE4D', '#4ED4E0', '#9333EA']; if (isMobile) { return ( Drivers {[1, 2, 3].map((i) => ( {i} ))} Constructors {[1, 2, 3].map((i) => ( ))} ); } const leftColumnVariants = { hidden: { opacity: 0, x: shouldReduceMotion ? 0 : -20 }, visible: { opacity: 1, x: 0, transition: { duration: 0.4 } } }; const rightColumnVariants = { hidden: { opacity: 0, x: shouldReduceMotion ? 0 : 20 }, visible: { opacity: 1, x: 0, transition: { duration: 0.4 } } }; const rowVariants = { hidden: { opacity: 0, x: shouldReduceMotion ? 0 : -10 }, visible: (i: number) => ({ opacity: 1, x: 0, transition: { delay: shouldReduceMotion ? 0 : 0.3 + i * 0.05, duration: 0.3 } }) }; return ( DRIVERS {[1, 2, 3, 4, 5].map((i) => ( !shouldReduceMotion && setHoveredDriver(i)} onHoverEnd={() => setHoveredDriver(null)} whileHover={shouldReduceMotion ? {} : { x: 4, borderColor: `${teamColors[i-1]}40`, transition: { duration: 0.15 } }} > {i} ))} CONSTRUCTORS {[1, 2, 3, 4, 5].map((i) => ( !shouldReduceMotion && setHoveredTeam(i)} onHoverEnd={() => setHoveredTeam(null)} whileHover={shouldReduceMotion ? {} : { x: -4, borderColor: `${teamColors[i-1]}40`, transition: { duration: 0.15 } }} > ))} ); }