import React, { useEffect, useState } from 'react'; import { useParams, useNavigate } from 'react-router-dom'; // Adicionar useNavigate import { toast } from 'react-toastify'; import api from '../../services/api'; interface CalculoPensao { id: string; titulo: string; descricao?: string; dataInicial: string; dataFinal?: string; percentualSalarioMinimo: number; multaPactuada?: number; tipoAtualizacao: string; valorCalculado: number; valorMulta: number; valorTotal: number; observacoes?: string; processo?: { numero: string; titulo: string; }; cliente?: { nome: string; }; } export function DetalhePensaoAlimenticia() { const { id } = useParams<{ id: string }>(); const navigate = useNavigate(); // Adicionar hook de navegação const [calculo, setCalculo] = useState(null); const [loading, setLoading] = useState(true); useEffect(() => { // Verificação extra para garantir que o id está definido if (!id || id === "novo") { setLoading(false); setCalculo(null); return; } const loadCalculo = async () => { try { console.log('[DetalhePensaoAlimenticia] Buscando cálculo para id:', id); const response = await api.get(`/api/calculos/pensao-alimenticia/${id}`); setCalculo(response.data); } catch (error: any) { // Log detalhado para depuração console.error('[DetalhePensaoAlimenticia] Erro ao carregar cálculo:', error); // Tratamento específico para erro 404 (cálculo não encontrado) if (error?.response?.status === 404) { toast.warn('Cálculo de pensão alimentícia não encontrado.'); } else { toast.error( error?.response?.data?.message || 'Falha ao buscar cálculo de pensão alimentícia.' ); } setCalculo(null); } finally { setLoading(false); } }; loadCalculo(); }, [id]); if (loading) { return
Carregando...
; } if (!calculo) { return (
Nenhum cálculo de pensão alimentícia encontrado.
); } return (

{calculo.titulo}

Dados do Cálculo

Data Inicial: {new Date(calculo.dataInicial).toLocaleDateString()}

{calculo.dataFinal && (

Data Final: {new Date(calculo.dataFinal).toLocaleDateString()}

)}

Percentual: {calculo.percentualSalarioMinimo}%

{calculo.multaPactuada && (

Multa: {calculo.multaPactuada}%

)}

Índice: {calculo.tipoAtualizacao}

Valores

Valor Base: R$ {calculo.valorCalculado.toFixed(2)}

Valor Multa: R$ {calculo.valorMulta.toFixed(2)}

Valor Total: R$ {calculo.valorTotal.toFixed(2)}

{calculo.observacoes && (

Observações

{calculo.observacoes}

)}
); }