"use client"; import { useEffect, useState } from 'react'; import Link from 'next/link'; import { SolutionGuard } from '@/components/auth/SolutionGuard'; import { useCRMFilter } from '@/contexts/CRMFilterContext'; import KanbanBoard from '@/components/crm/KanbanBoard'; import { UsersIcon, CurrencyDollarIcon, ChartPieIcon, ArrowTrendingUpIcon, ListBulletIcon, ArrowRightIcon, MegaphoneIcon, RectangleStackIcon, } from '@heroicons/react/24/outline'; function CRMDashboardContent() { const { selectedCustomerId } = useCRMFilter(); console.log('🏠 CRMPage (Content) render, selectedCustomerId:', selectedCustomerId); const [stats, setStats] = useState([ { name: 'Leads Totais', value: '0', icon: UsersIcon, color: 'blue' }, { name: 'Clientes', value: '0', icon: UsersIcon, color: 'green' }, { name: 'Campanhas', value: '0', icon: MegaphoneIcon, color: 'purple' }, { name: 'Taxa de Conversão', value: '0%', icon: ChartPieIcon, color: 'orange' }, ]); const [loading, setLoading] = useState(true); const [defaultFunnelId, setDefaultFunnelId] = useState(''); useEffect(() => { console.log('🔄 CRM Dashboard: selectedCustomerId changed to:', selectedCustomerId); fetchDashboardData(); fetchDefaultFunnel(); }, [selectedCustomerId]); const fetchDefaultFunnel = async () => { try { const response = await fetch('/api/crm/funnels', { headers: { 'Authorization': `Bearer ${localStorage.getItem('token')}` } }); if (response.ok) { const data = await response.json(); if (data.funnels?.length > 0) { setDefaultFunnelId(data.funnels[0].id); } } } catch (error) { console.error('Error fetching funnels:', error); } }; const fetchDashboardData = async () => { try { setLoading(true); // Adicionando um timestamp para evitar cache agressivo do navegador const timestamp = new Date().getTime(); const url = selectedCustomerId ? `/api/crm/dashboard?customer_id=${selectedCustomerId}&t=${timestamp}` : `/api/crm/dashboard?t=${timestamp}`; console.log(`📊 Fetching dashboard data from: ${url}`); const response = await fetch(url, { method: 'GET', headers: { 'Authorization': `Bearer ${localStorage.getItem('token')}`, 'Cache-Control': 'no-cache', 'Pragma': 'no-cache' }, }); if (response.ok) { const data = await response.json(); console.log('📊 Dashboard data received:', data); const s = data.stats; setStats([ { name: 'Leads Totais', value: s.total.toString(), icon: UsersIcon, color: 'blue' }, { name: 'Clientes', value: s.total_customers.toString(), icon: UsersIcon, color: 'green' }, { name: 'Campanhas', value: s.total_campaigns.toString(), icon: MegaphoneIcon, color: 'purple' }, { name: 'Taxa de Conversão', value: `${s.conversionRate || 0}%`, icon: ChartPieIcon, color: 'orange' }, ]); } else { console.error('📊 Error response from dashboard:', response.status); } } catch (error) { console.error('Error fetching CRM dashboard data:', error); } finally { setLoading(false); } }; const quickLinks = [ { name: 'Funis de Vendas', description: 'Configure seus processos e etapas', icon: RectangleStackIcon, href: '/crm/funis', color: 'blue', }, { name: 'Clientes', description: 'Gerencie seus contatos e clientes', icon: UsersIcon, href: '/crm/clientes', color: 'indigo', }, { name: 'Campanhas', description: 'Organize leads e rastreie origens', icon: MegaphoneIcon, href: '/crm/campanhas', color: 'purple', }, { name: 'Leads', description: 'Gerencie potenciais clientes', icon: UsersIcon, href: '/crm/leads', color: 'green', }, ]; return (

CRM

Visão geral do relacionamento com clientes

{stats.map((stat) => { const Icon = stat.icon; return (

{stat.name}

{stat.value}

); })}
{/* Quick Links */}

Acesso Rápido

{quickLinks.map((link) => { const Icon = link.icon; return (

{link.name}

{link.description}

); })}

Monitoramento de Leads

Gerenciar Funis
{defaultFunnelId ? ( ) : (

Nenhum funil configurado.

CRIAR PRIMEIRO FUNIL
)}

Atividades Recentes (Em breve)

Metas de Vendas (Em breve)

); } export default function CRMPage() { return ( ); }