import CrmTaskCreation from '@/components/crm-task-creation'; import type { TaskCreationContext } from '@/lib/crm-task-creation'; import { Link } from '@inertiajs/react'; import { useCrmRecordEdit } from '@/lib/crm-record-edit'; import CrmEditComparison from '@/components/crm-edit-comparison'; import { Management, Field, button, control } from '../management/shared'; import { leadStates, taskStates } from './types'; import type { Lead, Owner, Task } from './types'; function TaskRow({ task, leadId }: { task: Task; leadId: string }) { const edit = useCrmRecordEdit({ id: task.id, kind: 'task', version: task.version_no, values: { status: task.status }, }); const form = edit.form; return (
); } export default function LeadDetail({ lead, contacts, owners, nextAction, taskCreation, }: { lead: Lead; contacts: { id: string; full_name: string; email: string | null; phone: string | null; }[]; owners: Owner[]; nextAction?: { future_tasks: number }; taskCreation: TaskCreationContext; }) { const edit = useCrmRecordEdit({ id: lead.id, kind: 'lead', version: lead.version_no, blankAfterSave: ['qualification_reason'], values: { status: lead.status, owner_user_id: String(lead.owner_user_id ?? ''), qualification_reason: '', }, }); const review = edit.form; return ({leadStates[lead.status]} ·{' '} {lead.owner?.name ?? 'Sem responsável'}
Origem inicial: {lead.first_source ?? 'Não registada'}
{lead.interest_request_id && ( Consultar pedido de origem )}{contact.full_name} · {contact.email ?? '—'} ·{' '} {contact.phone ?? '—'}
))}{nextAction.future_tasks === 1 ? '1 tarefa disponível com prazo futuro.' : `${nextAction.future_tasks} tarefas disponíveis com prazo futuro.`}
{nextAction.future_tasks === 0 && ['new', 'qualified'].includes(lead.status) && (Registe uma próxima acção com prazo futuro antes de qualificar o acompanhamento ou concluir a sua última tarefa. Tarefas num dossier encerrado ficam no histórico e não contam como próxima acção.
)} Registar próxima acçãoNão existem tarefas.
}