import React from 'react'; import { motion } from 'framer-motion'; import { AnalysisData, Kpi } from '../types'; import { TIERS } from '../constants'; import { ArrowLeft, BarChart2, Lightbulb, Target, Phone, Smile } from 'lucide-react'; import BadgePill from './BadgePill'; import HealthScoreGaugeEnhanced from './HealthScoreGaugeEnhanced'; import DimensionCard from './DimensionCard'; import HeatmapPro from './HeatmapPro'; import VariabilityHeatmap from './VariabilityHeatmap'; import OpportunityMatrixPro from './OpportunityMatrixPro'; import RoadmapPro from './RoadmapPro'; import EconomicModelPro from './EconomicModelPro'; import BenchmarkReportPro from './BenchmarkReportPro'; import { AgenticReadinessBreakdown } from './AgenticReadinessBreakdown'; import { HourlyDistributionChart } from './HourlyDistributionChart'; import ErrorBoundary from './ErrorBoundary'; interface DashboardReorganizedProps { analysisData: AnalysisData; onBack: () => void; } const KpiCard: React.FC = ({ label, value, change, changeType, index }) => { const changeColor = changeType === 'positive' ? 'bg-green-100 text-green-700' : changeType === 'negative' ? 'bg-red-100 text-red-700' : 'bg-slate-100 text-slate-700'; return (

{label}

{value}

{change && ( {change} )}
); }; const SectionDivider: React.FC<{ icon: React.ReactNode; title: string }> = ({ icon, title }) => (
{icon} {title}
); const DashboardReorganized: React.FC = ({ analysisData, onBack }) => { const tierInfo = TIERS[analysisData.tier || 'gold']; // Default to gold if tier is undefined return (
{/* Header */}
Volver

Beyond Diagnostic

{tierInfo.name}

{/* Main Content */}
{/* 1. HERO SECTION */}
{/* Health Score */}
{/* KPIs Agrupadas por Categoría */}
{/* Grupo 1: Métricas de Contacto */}

Métricas de Contacto

{(analysisData.summaryKpis || []).slice(0, 4).map((kpi, index) => ( ))}
{/* Grupo 2: Métricas de Satisfacción */}

Métricas de Satisfacción

{(analysisData.summaryKpis || []).slice(2, 4).map((kpi, index) => ( ))}
{/* 2. INSIGHTS SECTION - FINDINGS */}

Principales Hallazgos

{(analysisData.findings || []).map((finding, i) => (
{finding.title && (

{finding.title}

)}

{finding.text}

{finding.description && (

{finding.description}

)}
))}
{/* 3. INSIGHTS SECTION - RECOMMENDATIONS */}

Recomendaciones Prioritarias

{(analysisData.recommendations || []).map((rec, i) => (
{rec.title && (

{rec.title}

)}

{rec.text}

{(rec.description || rec.impact || rec.timeline) && (
{rec.description && (

Descripción: {rec.description}

)} {rec.impact && (

Impacto esperado: {rec.impact}

)} {rec.timeline && (

Timeline: {rec.timeline}

)}
)}
))}
{/* 4. ANÁLISIS DIMENSIONAL */}
} title="Análisis Dimensional" /> {(analysisData.dimensions || []).map((dim, index) => ( ))}
{/* 4. AGENTIC READINESS (si disponible) */} {analysisData.agenticReadiness && (
)} {/* 5. DISTRIBUCIÓN HORARIA (si disponible) */} {(() => { const volumetryDim = analysisData?.dimensions?.find(d => d.name === 'volumetry_distribution'); const distData = volumetryDim?.distribution_data; if (distData && distData.hourly && distData.hourly.length > 0) { return (
); } return null; })()} {/* 6. HEATMAP DE PERFORMANCE COMPETITIVO */}
{/* 7. HEATMAP DE VARIABILIDAD INTERNA */}
{/* 8. OPPORTUNITY MATRIX */} {analysisData.opportunities && analysisData.opportunities.length > 0 && (
)} {/* 9. ROADMAP */} {analysisData.roadmap && analysisData.roadmap.length > 0 && (
)} {/* 10. ECONOMIC MODEL */} {analysisData.economicModel && (
)} {/* 11. BENCHMARK REPORT */} {analysisData.benchmarkData && analysisData.benchmarkData.length > 0 && (
)} {/* Footer */}
Realizar Nuevo Análisis
); }; export default DashboardReorganized;