Add AI chat feature

This commit is contained in:
James Blair 2026-05-08 20:24:34 +12:00
parent 80056b3728
commit 6a5041be43
Signed by: james
SSH key fingerprint: SHA256:hsDR3ENI2ZMgh+CNb+0PrFsj29DI007R+BMKUVGi6zQ
15 changed files with 1259 additions and 2 deletions

View file

@ -0,0 +1,34 @@
import { useState, type SubmitEvent } from "react";
import { Button } from "../ui/button";
import { Textarea } from "../ui/textarea";
import { ArrowUpIcon, SendIcon } from "lucide-react";
interface ChatFormProps {
onMessage: (message: { text: string }) => void;
disabled?: boolean;
}
export function ChatForm({ onMessage, disabled }: ChatFormProps) {
const [text, setText] = useState("");
function handleSubmit(e: SubmitEvent<HTMLFormElement>) {
e.preventDefault();
if (!text.trim()) return;
setText("");
onMessage({ text });
}
return (
<form onSubmit={handleSubmit} className="flex gap-2">
<Textarea
name="text"
value={text}
onChange={(e) => setText(e.target.value)}
className="min-h-18"
/>
<Button type="submit" disabled={disabled} size="icon-lg">
<ArrowUpIcon />
</Button>
</form>
);
}