"use client"; import { AppSidebar } from "@/components/app-sidebar"; import { Breadcrumb, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, } from "@/components/ui/breadcrumb"; import { Separator } from "@/components/ui/separator"; import { SidebarInset, SidebarProvider, SidebarTrigger, } from "@/components/ui/sidebar"; import { PromptInput, PromptInputBody, PromptInputTextarea, PromptInputFooter, PromptInputTools, PromptInputButton, PromptInputSubmit, PromptInputAttachments, PromptInputAttachment, PromptInputActionMenu, PromptInputActionMenuTrigger, PromptInputActionMenuContent, PromptInputActionAddAttachments, PromptInputHeader, type PromptInputMessage, } from "@/components/ai-elements/prompt-input"; import { useState } from "react"; import { GlobeIcon, MicIcon } from "lucide-react"; export default function HomePage() { const [text, setText] = useState(""); const [useWebSearch, setUseWebSearch] = useState(false); const [useMicrophone, setUseMicrophone] = useState(false); const [status, setStatus] = useState< "submitted" | "streaming" | "ready" | "error" >("ready"); const handleSubmit = (message: PromptInputMessage) => { const hasText = Boolean(message.text); const hasAttachments = Boolean(message.files?.length); if (!(hasText || hasAttachments)) { return; } setStatus("submitted"); console.log("Message submitted:", message); // Reset after submission setText(""); setTimeout(() => setStatus("ready"), 500); }; return (
RowboatX Chat
{/* Blank canvas - main content area */}
{/* Empty space for messages */}
{/* Input area - centered and narrower */}
{(attachment) => } setText(event.target.value)} value={text} placeholder="Ask me anything..." /> setUseMicrophone(!useMicrophone)} variant={useMicrophone ? "default" : "ghost"} > Microphone setUseWebSearch(!useWebSearch)} variant={useWebSearch ? "default" : "ghost"} > Search
); }