import { useForm } from '@inertiajs/react'; import { FormErrors, Panel, controlClass } from '@/components/procurement'; import { Button } from '@/components/ui/button'; type Person = { id: number; name: string }; type Source = { review_id: number; criterion_index: number; application_id: number; question: string; }; type Clarification = { id: number; application_id: number; version: number; status: string; due_on: string; outcome: string | null; question?: string; responsible_id?: number; canRespond: boolean; canReview: boolean; canReassign: boolean; responses?: { answer: string; reference?: string | null; evidence_type: string; by: number; at: string; }[]; decisions?: { outcome: string; reason: string; by: number; at: string }[]; }; export type ClarificationData = { preservedDecision?: boolean; ready: boolean; sources: Source[]; items: Clarification[]; users: Person[]; }; const outcomes: Record = { accepted: 'Resposta acolhida', insufficient: 'Informação permanece por comprovar', not_required: 'Seguimento dispensado com fundamento', returned: 'Devolvido para esclarecimentos', }; const evidence: Record = { reported: 'Relatada', observed: 'Observada', verified: 'Comprovada por fonte indicada', }; function Assignment({ processId, users, source, item, }: { processId: number; users: Person[]; source?: Source; item?: Clarification; }) { const form = useForm({ operation_key: crypto.randomUUID(), clarification_id: item?.id, version: item?.version, review_id: source?.review_id, criterion_index: source?.criterion_index, responsible_id: item?.responsible_id ? String(item.responsible_id) : '', due_on: item?.due_on ?? '', reason: source ? 'Seguimento do esclarecimento registado na avaliação.' : '', }); return (
{ event.preventDefault(); form.post( `/pessoas/${processId}/esclarecimentos/${source ? 'create' : 'reassign'}`, { preserveState: 'errors', preserveScroll: true }, ); }} > {source && ( <> Candidatura #{source.application_id} · avaliação # {source.review_id} · critério{' '} {source.criterion_index + 1}

{source.question}

)}