import { useState } from 'react'; import { useNavigate, useParams } from 'react-router-dom'; import { ArrowLeft, Edit, Trash2, Mail, Phone, Globe, Building2, MapPin, FileText, } from 'lucide-react'; import { Button } from '@components/atoms/Button'; import { Spinner } from '@components/atoms/Spinner'; import { Card, CardHeader, CardTitle, CardContent } from '@components/molecules/Card'; import { Breadcrumbs } from '@components/organisms/Breadcrumbs'; import { ConfirmModal } from '@components/organisms/Modal'; import { useToast } from '@components/organisms/Toast'; import { ErrorEmptyState } from '@components/templates/EmptyState'; import { useCompany, useCompanyChildren } from '@features/companies/hooks'; import { companiesApi } from '@features/companies/api'; import { formatDate } from '@utils/formatters'; export function CompanyDetailPage() { const { id } = useParams<{ id: string }>(); const navigate = useNavigate(); const { showToast } = useToast(); const { company, isLoading, error, refresh } = useCompany(id); const { children } = useCompanyChildren(id); const [showDeleteModal, setShowDeleteModal] = useState(false); const [isProcessing, setIsProcessing] = useState(false); const handleDelete = async () => { if (!id) return; setIsProcessing(true); try { await companiesApi.delete(id); showToast({ type: 'success', title: 'Empresa eliminada', message: 'La empresa ha sido eliminada exitosamente.', }); navigate('/companies'); } catch { showToast({ type: 'error', title: 'Error', message: 'No se pudo eliminar la empresa.', }); } finally { setIsProcessing(false); setShowDeleteModal(false); } }; if (isLoading) { return (
{company.legalName}
)} {company.taxId && ( {company.taxId} )}{company.settings.address}
)}{[ company.settings?.city, company.settings?.state, company.settings?.zipCode, ] .filter(Boolean) .join(', ')}
{company.settings?.country && ({company.settings.country}
)}