import React from "react"; import { useNavigate } from "react-router-dom"; import { Processo } from "../../types/entities"; import { useProcessos } from "../../hooks/useProcessos"; import { formatNumeroProcesso } from "../../utils/formatters"; import { DocumentTextIcon, ClockIcon } from "@heroicons/react/24/outline"; interface ProcessosListProps { searchTerm: string; onEdit: (processo: Processo) => void; } const resultadoLabel = { NAO_JULGADO: 'Não Julgado', PROCEDENTE: 'Procedente', PARCIALMENTE_PROCEDENTE: 'Parcialmente Procedente', IMPROCEDENTE: 'Improcedente', SEM_ANALISE_MERITO: 'Sem Análise de Mérito' }; const resultadoColor = { NAO_JULGADO: 'bg-gray-100 text-gray-800', PROCEDENTE: 'bg-green-100 text-green-800', PARCIALMENTE_PROCEDENTE: 'bg-yellow-100 text-yellow-800', IMPROCEDENTE: 'bg-red-100 text-red-800', SEM_ANALISE_MERITO: 'bg-gray-100 text-gray-800' }; const getResultadoColor = (resultado: string) => { return resultadoColor[resultado as keyof typeof resultadoColor] || 'bg-gray-100 text-gray-800'; }; export const ProcessosList: React.FC = ({ searchTerm, onEdit, }) => { const navigate = useNavigate(); const { processos, isLoading } = useProcessos(); const filteredProcessos = processos.filter( (processo) => processo.numero.includes(searchTerm) || processo.nomeContraparte ?.toLowerCase() .includes(searchTerm.toLowerCase()), ); const getResultadoDisplay = (processo: Processo) => { if (!processo.resultado || !resultadoLabel[processo.resultado as keyof typeof resultadoLabel]) { return ( Não Julgado ); } return ( {resultadoLabel[processo.resultado as keyof typeof resultadoLabel]} ); }; if (isLoading) { return
Carregando...
; } return (
{filteredProcessos.map((processo) => ( navigate(`/processos/${processo.id}`)} className="hover:bg-gray-50 cursor-pointer" > ))}
Processo Natureza Parte Status Próximos Prazos Resultado
{formatNumeroProcesso(processo.numero)}
{processo.orgaoJulgador}
{processo.natureza}
{processo.tipoParteCliente === "AUTOR" ? "Autor" : "Réu"}
{processo.nomeContraparte}
{processo.statusAtividade} {processo.diligencias?.length > 0 ? (
{processo.diligencias.length} prazos
) : ( Sem prazos )}
{getResultadoDisplay(processo)}
); };