import { useState } from "react"; import type { Priority } from "../types/todo"; interface AddTodoFormProps { /** Callback fired after a todo is successfully added */ onAdd: (title: string, priority: Priority, description?: string, tags?: string[]) => void; /** Default priority for new todos */ defaultPriority?: Priority; /** Placeholder text for the title input */ placeholder?: string; } export function AddTodoForm({ onAdd, defaultPriority = "medium", placeholder = "What needs to be done?" }: AddTodoFormProps) { const [title, setTitle] = useState(""); const [priority, setPriority] = useState(defaultPriority); const [description, setDescription] = useState(""); const [tags, setTags] = useState(""); const handleSubmit = (e: React.FormEvent) => { e.preventDefault(); if (!title.trim()) return; onAdd( title.trim(), priority, description.trim() || undefined, tags.split(",").map((t) => t.trim()).filter(Boolean), ); setTitle(""); setDescription(""); setTags(""); setPriority(defaultPriority); }; return (
setTitle(e.target.value)} placeholder={placeholder} />