"use client"; import { useState } from "react"; import { Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, } from "@/components/ui/dialog"; import { Button } from "@/components/ui/button"; import { Input } from "@/components/ui/input"; import { Label } from "@/components/ui/label"; import { toast } from "sonner"; interface NameSessionDialogProps { sessionId: number | null; onClose: () => void; onSaved: () => void; } export function NameSessionDialog({ sessionId, onClose, onSaved }: NameSessionDialogProps) { const [name, setName] = useState(""); const [description, setDescription] = useState(""); const [saving, setSaving] = useState(false); async function handleSave() { if (!sessionId || name.trim().length === 0) return; setSaving(true); const res = await fetch(`/api/sessions/${sessionId}`, { method: "PATCH", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ name: name.trim(), description }), }); setSaving(false); if (res.ok) { toast.success("Session named"); onSaved(); } else { toast.error("Could not name session"); } } return ( !open && onClose()}> Name this session Give it a name so you can find and replay it later.
setName(e.target.value)} autoFocus />
setDescription(e.target.value)} />
); }