"use client"; import { useState } from "react"; import { useRouter } from "next/navigation"; import { ArrowLeft, Send, Loader2 } from "lucide-react"; import Link from "next/link"; import { useToast } from "@/components/Toast"; export default function NewSessionPage() { const router = useRouter(); const { toast } = useToast(); const [message, setMessage] = useState(""); const [sending, setSending] = useState(false); const create = async () => { if (!message.trim() || sending) return; setSending(true); try { const res = await fetch("/api/sessions", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ source: "web" }), }); const data = await res.json(); const sessionId = data.session?.id; if (!sessionId) throw new Error("No session ID"); await fetch("/api/sessions/" + sessionId + "/chat", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ message: message.trim() }), }); router.push("/history/" + sessionId); } catch (e) { toast("Failed to create session", "error"); setSending(false); } }; return (
Creates a new web session and sends your first message.