import React from 'react'; import { ArrowRightLeft, CheckCircle2, AlertCircle, Settings, BarChart3, History, MessageSquare, FileText } from 'lucide-react'; import { Button } from '@/components/ui/button'; import { Badge } from '@/components/ui/badge'; import { useConciliacaoV2 } from '../../hooks/useConciliacaoV2'; import { TransacoesConciliadasView } from './TransacoesConciliadasView'; import { TransacoesNaoCategorizadasView } from './TransacoesNaoCategorizadasView'; import { GerenciamentoView } from './GerenciamentoView'; import { ExtratoCompletoView } from './ExtratoCompletoView'; import { cn } from '@/lib/utils'; const ActivityLog = ({ isOpen, onClose }) => { if (!isOpen) return null; return (

Atividade (Buzz)

{[ { user: 'Ana (CFO)', action: 'Conciliação automática', target: 'CONC-1002', time: '10 min atrás', color: 'text-blue-500' }, { user: 'Bruno', action: 'Criou nova regra', target: 'REGRA-1045', time: '1h atrás', color: 'text-purple-500' }, ].map((log, i) => (

{log.user}

{log.action} {log.target}

{log.time}

))}

"Buzz" - Chat Interno

); }; export const ConciliacaoView = ({ initialView }) => { console.log('[ConciliacaoView] ========== COMPONENTE RENDERIZADO =========='); console.log('[ConciliacaoView] Timestamp:', new Date().toISOString()); console.log('[ConciliacaoView] Cache Buster: v1.0.1 - Force Refresh'); console.log('[ConciliacaoView] InitialView prop:', initialView); let state, actions; try { console.log('[ConciliacaoView] Chamando useConciliacaoV2(initialView)...'); const hookResult = useConciliacaoV2(initialView); console.log('[ConciliacaoView] Hook retornou:', hookResult); state = hookResult?.state; actions = hookResult?.actions; console.log('[ConciliacaoView] Hook executado com sucesso'); console.log('[ConciliacaoView] State:', state); console.log('[ConciliacaoView] Actions:', actions); } catch (error) { console.error('[ConciliacaoView] ========== ERRO AO EXECUTAR HOOK =========='); console.error('[ConciliacaoView] Erro:', error); console.error('[ConciliacaoView] Stack:', error.stack); // Não lançar erro para não quebrar a UI, mas logar tudo } const activeSubView = state?.activeSubView || 'conciliadas'; const isLoading = state?.isLoading !== undefined ? state.isLoading : true; console.log('[ConciliacaoView] Estado atual:', { activeSubView, isLoading, hasState: !!state, hasActions: !!actions, caixasCount: state?.caixas?.length || 0, categoriasCount: state?.categorias?.length || 0 }); const [isBuzzOpen, setIsBuzzOpen] = React.useState(false); // Log quando o componente é atualizado React.useEffect(() => { console.log('[ConciliacaoView] Componente montado/atualizado'); console.log('[ConciliacaoView] isLoading:', isLoading); console.log('[ConciliacaoView] activeSubView:', activeSubView); }, [isLoading, activeSubView]); const subViews = [ { id: 'conciliadas', label: 'Transações Conciliadas', icon: FileText, description: 'Navegação hierárquica por caixas' }, { id: 'extrato-completo', label: 'Extrato Completo', icon: History, description: 'Todo o extrato com filtros' }, { id: 'nao-categorizadas', label: 'Pendentes', icon: AlertCircle, description: 'Aguardando categorização' }, { id: 'gerenciamento', label: 'Gerenciamento', icon: Settings, description: 'Caixas, Categorias, Regras' }, ]; const renderSubView = () => { switch (activeSubView) { case 'conciliadas': return ; case 'extrato-completo': return ; case 'nao-categorizadas': return ; case 'gerenciamento': return ; default: return ; } }; return (
{/* Header Section */}
{/* Linha 1: Título, Badge e Botão Activity Log */}

Conciliação {/* PREMIUM v2 */}

{/* */}
{/* Linha 2: Menu de Navegação */}
{subViews.map((view) => { const Icon = view.icon; return ( ); })}
{/* Content Area */} {isLoading ? (

Carregando Dados...

) : (
{renderSubView()}
)} setIsBuzzOpen(false)} />
); };