"use client"; import { useEffect, useLayoutEffect, useRef, useState } from "react"; import { useAuth } from "@/contexts/AuthContext"; import { useUserProfile } from "@/contexts/UserProfileContext"; import { MikeIcon } from "@/components/chat/mike-icon"; import { ChatInput } from "./ChatInput"; import { SelectAssistantProjectModal } from "./SelectAssistantProjectModal"; import type { Message } from "../shared/types"; interface InitialViewProps { onSubmit: (message: Message) => void; } const ICON_SIZE = 30; const GAP = 12; // gap-4 = 1rem = 16px export function InitialView({ onSubmit }: InitialViewProps) { const { user } = useAuth(); const { profile } = useUserProfile(); const [loaded, setLoaded] = useState(false); const [projectModalOpen, setProjectModalOpen] = useState(false); const [iconOffset, setIconOffset] = useState(0); const [textOffset, setTextOffset] = useState(0); const textRef = useRef(null); const username = profile?.displayName?.trim() || user?.email?.split("@")[0] || "there"; useLayoutEffect(() => { if (!profile || !textRef.current) return; const h1Width = textRef.current.offsetWidth; setIconOffset((h1Width + GAP) / 2); setTextOffset((ICON_SIZE + GAP) / 2); }, [profile]); useEffect(() => { if (!iconOffset) return; const t = setTimeout(() => setLoaded(true), 100); return () => clearTimeout(t); }, [iconOffset]); return (

Hi, {username}

{}} isLoading={false} onProjectsClick={() => setProjectModalOpen(true)} />

AI can make mistakes. Answers are not legal advice.

setProjectModalOpen(false)} />
); }