'use client'; import { useEffect } from 'react'; import { useRouter } from 'next/navigation'; import { useAuth } from '@/contexts/AuthContext'; import Hero from '@/components/Hero'; import { ClaimMeter, ModelRecord } from '@/components/vyndr'; // Session 55 — live top A-rated grades pulled from tonight's real snapshot, // with the self-learning loop's accuracy line. The product shown, not described. import TopSignals from '@/components/TopSignals'; // Session 17 — game-count strip mounted between the hero and the // existing LivePropsStrip. Shows "X NBA · Y WNBA · Z MLB games // being graded right now" with a signup CTA. Hides itself when // every sport returns zero (off-hours / upstream outages). import TonightsSlate from '@/components/TonightsSlate'; import LivePropsStrip from '@/components/LivePropsStrip'; // Session 23 — all-day intelligence teasers. Free/cheap content that // keeps the landing page alive even when odds-api props are empty. // Both self-hide when there's nothing to show. import StreaksPanel from '@/components/StreaksPanel'; import HotListPanel from '@/components/HotListPanel'; import Features from '@/components/Features'; import HowItWorks from '@/components/HowItWorks'; import Pricing from '@/components/Pricing'; import FAQ from '@/components/FAQ'; // Footer is mounted globally in the root layout (Session 34) — no per-page import. export default function Home() { const { user, loading } = useAuth(); const router = useRouter(); useEffect(() => { if (!loading && user) router.replace('/dashboard'); }, [user, loading, router]); // While we know the user is signed in we suppress the marketing // render to avoid a flicker before the redirect lands. if (loading || user) { return (

Loading the slate

); } return ( <> {/* Session 55 — tonight's real top signals + live accuracy (the system works). */} {/* Session 58 (work-order 1.4) — the public model record (proof-strip footer). Deferred-render: "RECORD BUILDING" until 20 settles, then the real hit% + beat-close%. Self-hides with no data. */}
{/* Founder-seat scarcity meter (§12) */}
); }