philschmid's picture
init
3bb377e unverified
"use client";
import { useState } from "react";
import { Button } from "@/components/ui/button";
import { Wand2 } from "lucide-react";
import { Textarea } from "@/components/ui/textarea";
interface PromptInputProps {
onSubmit: (prompt: string) => void;
file: File | null;
}
export function PromptInput({ onSubmit, file }: PromptInputProps) {
const [prompt, setPrompt] = useState("");
const handleSubmit = (e: React.FormEvent) => {
e.preventDefault();
if (prompt.trim()) {
onSubmit(prompt.trim());
}
};
return (
<form onSubmit={handleSubmit} className="space-y-4 rounded-lg">
<div className="space-y-2">
<p className="text-sm font-medium text-foreground">
Describe the structure and type of data you want to extract from the
PDF.
</p>
</div>
<Textarea
id="prompt"
className="min-h-[100px] border-secondary resize-none "
placeholder="Example: Extract all invoice details including invoice number, date, items, prices, and total amount..."
value={prompt}
onChange={(e) => setPrompt(e.target.value)}
/>
<Button
type="submit"
disabled={!prompt.trim() || file === null}
className="w-full bg-primary hover:bg-primary/90"
>
<Wand2 className="w-4 h-4 mr-2" />
Extract Data
</Button>
</form>
);
}