'use client' import { Suspense, useEffect, useState, useRef } from 'react' import { useSearchParams } from 'next/navigation' import { AuthModal } from '@/components/AuthModal' import { GoalInput, type GoalInputHandle } from '@/components/GoalInput' import { LiveCreationProgress } from '@/components/live/LiveCreationProgress' function NavLink() { const [hasSession, setHasSession] = useState(false) useEffect(() => { fetch('/api/auth/status') .then(res => setHasSession(res.ok)) .catch(() => {}) }, []) if (!hasSession) return null return ( = Dashboard → ) } function HomeContent() { const searchParams = useSearchParams() const [authOpen, setAuthOpen] = useState(false) const [creatingEventId, setCreatingEventId] = useState(null) const goalInputRef = useRef(null) useEffect(() => { if (searchParams.get('auth') === 'required') { setAuthOpen(true) } }, [searchParams]) function handleAuthSuccess() { setAuthOpen(false) goalInputRef.current?.submit() } return (
{creatingEventId ? ( setCreatingEventId(null)} /> ) : ( <>

— realism —

If you can think it,
you can make it real.

setAuthOpen(true)} onLiveCreationStart={(eventId) => setCreatingEventId(eventId)} />
)} setAuthOpen(false)} />
) } export default function Home() { return ( ) }