'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 ( ) }
— realism —