import { useState } from 'react' import { Sparkles, Loader2 } from 'lucide-react' import { ticketsApi } from '@/api/tickets' import type { AiParseResponse, TicketCreationPayload } from '@/types/tickets' interface Props { initialHint?: string onParsed: (values: Partial, parseResponse: AiParseResponse) => void } export function AiTicketParseForm({ initialHint = '', onParsed }: Props) { const [prompt, setPrompt] = useState(initialHint) const [loading, setLoading] = useState(false) const [error, setError] = useState(null) async function handleParse() { if (!prompt.trim()) return setLoading(true) setError(null) try { const result = await ticketsApi.aiParse(prompt) const values: Partial = { summary: result.summary ?? undefined, company_id: result.company_id, board_id: result.board_id, status_id: result.status_id, priority_id: result.priority_id, assigned_member_id: result.assigned_member_id, description: result.description ?? undefined, } onParsed(values, result) } catch { setError('AI parsing failed. Please try again or use the full form.') } finally { setLoading(false) } } return (

Describe the ticket in plain language — who, what, which client, and priority.