import React from 'react'; import { Users, Calendar as CalendarIcon, LayoutDashboard, Stethoscope, DollarSign, RefreshCw, Database, Activity, BookOpen, Award, Megaphone, LogOut, ClipboardList, Bell, Building2, User, BarChart3 } from 'lucide-react'; import { HybridBackend } from '../services/backend.ts'; import { GoogleConnectButton } from './GoogleConnectButton.tsx'; import { useState, useEffect } from 'react'; interface SidebarProps { activeTab: string; setActiveTab: (t: string) => void; } export const Sidebar: React.FC = ({ activeTab, setActiveTab }) => { const [connectedAccounts, setConnectedAccounts] = useState([]); const currentRole = HybridBackend.getCurrentRole(); const userName = HybridBackend.getCurrentUserName(); const userEmail = HybridBackend.getCurrentUser(); const activeWorkspace = HybridBackend.getActiveWorkspace(); const clinColor = activeWorkspace?.cor || '#2563eb'; const fetchGoogleStatus = async () => { try { const response = await fetch('/api/auth/google/status'); const data = await response.json(); setConnectedAccounts(data); } catch (error) { console.error("Erro ao buscar status do Google:", error); } }; useEffect(() => { fetchGoogleStatus(); }, []); const menuItems = [ { id: 'dashboard', label: 'VISÃO GERAL', icon: LayoutDashboard }, { id: 'clinicas', label: 'MINHAS CLÍNICAS', icon: Building2 }, { id: 'leads', label: 'GESTÃO DE LEADS', icon: Megaphone }, { id: 'pacientes', label: 'PACIENTES', icon: Users }, { id: 'tratamentos', label: 'MEUS TRATAMENTOS', icon: ClipboardList }, { id: 'lancar-gto', label: 'LANÇAR GTO', icon: ClipboardList }, { id: 'agenda', label: 'AGENDA', icon: CalendarIcon }, { id: 'ortodontia', label: 'ORTODONTIA', icon: Activity }, { id: 'financeiro', label: 'FINANCEIRO', icon: DollarSign }, { id: 'relatorios', label: 'RELATÓRIOS', icon: BarChart3 }, { id: 'dentistas', label: 'DENTISTAS', icon: Stethoscope }, { id: 'especialidades', label: 'ESPECIALIDADES', icon: Award }, { id: 'procedimentos', label: 'PROCEDIMENTOS', icon: ClipboardList }, { id: 'planos', label: 'PLANOS / CONVÊNIOS', icon: BookOpen }, { id: 'notificacoes', label: 'NOTIFICAÇÕES', icon: Bell }, { id: 'sync', label: 'SINCRONIZAÇÃO', icon: RefreshCw }, ].filter(item => { if (['admin', 'donoclinica'].includes(currentRole)) return true; if (currentRole === 'paciente') return ['tratamentos', 'notificacoes'].includes(item.id); if (currentRole === 'dentista') return ['dashboard', 'pacientes', 'tratamentos', 'agenda', 'ortodontia', 'notificacoes', 'clinicas'].includes(item.id); if (currentRole === 'funcionario') return ['dashboard', 'leads', 'pacientes', 'tratamentos', 'lancar-gto', 'agenda', 'financeiro', 'relatorios', 'notificacoes', 'clinicas'].includes(item.id); return false; }); const handleLogout = () => { if (window.confirm('TEM CERTEZA QUE DESEJA SAIR DO SISTEMA?')) { HybridBackend.logout(); } }; return (
SCOREODONTO POSTGRESQL + GOOGLE
{/* User Profile Section */}

{userName}

{userEmail}

{activeWorkspace?.nome || 'Sem Unidade'}
{currentRole === 'admin' && ( a.owner_id === 'admin' || a.owner_id === userEmail)} onStatusChange={fetchGoogleStatus} /> )}
); };