import React, { useState } from "react"; import TicketFieldRow from "./TicketRow"; import TicketTextarea from "./TicketText"; import type { CreateTicketFormData } from "../../types/ticket"; interface TicketFormProps { onError: (msg: string | null) => void; } const TicketForm: React.FC = ({ onError }) => { const [form, setForm] = useState({ title: "", status: "Open", priority: "4", category: "General", type: "Issue", description: "", }); function updateField(field: keyof CreateTicketFormData, value: string) { setForm((prev: CreateTicketFormData) => ({ ...prev, [field]: value })); } function handleSubmit(e: React.FormEvent) { e.preventDefault(); ``` if (!form.title.trim() || !form.description.trim()) { onError("Title and description are required."); return; } console.log("Submitting:", form); // Later: POST to Express/PHP ``` } return (
updateField("title", e.target.value)} required />
``` updateField("description", value)} required />
``` ); }; export default TicketForm;