import { useEffect, useMemo, useState } from 'react' import { profileRepository } from '../repositories/profileRepository.js' import { BrandLogo } from './Brand.jsx' import { FeatureLegend } from './FeatureState.jsx' const navItems = [ { href: '/inicio', label: 'Painel', icon: 'pulse', activePaths: ['/inicio', '/home', '/dashboard'] }, { href: '/agenda', label: 'Agenda', icon: 'calendar' }, { href: '/pacientes', label: 'Pacientes', icon: 'users', exact: true }, { href: '/prontuario', label: 'Prontuario', icon: 'file' }, { href: '/laudos', label: 'Laudos', icon: 'clipboard' }, { href: '/camunicacao', label: 'Comunicacao', icon: 'message', activePaths: ['/camunicacao', '/comunicacao', '/mensagens'], }, { href: '/relatorios', label: 'Relatorios', icon: 'chart' }, { href: '/configuracoes', label: 'Configuracoes', icon: 'settings', activePaths: ['/configuracoes', '/config'] }, ] const titles = { '/inicio': 'Painel', '/home': 'Painel', '/dashboard': 'Painel', '/agenda': 'Agenda', '/consultas': 'Consultas', '/laudos': 'Laudos', '/pacientes': 'Pacientes', '/prontuario': 'Prontuario', '/camunicacao': 'Comunicacao', '/comunicacao': 'Comunicacao', '/mensagens': 'Comunicacao', '/relatorios': 'Relatorios', '/profissionais': 'Profissionais', '/perfil': 'Perfil', '/configuracoes': 'Configuracoes', '/config': 'Configuracoes', } export function AppShell({ children, currentPath, navigate, routeTitle }) { const [menuOpen, setMenuOpen] = useState(false) const [quickSearch, setQuickSearch] = useState('') const [viewerProfile, setViewerProfile] = useState({ name: 'Usuario', role: 'Usuario do Sistema' }) const pageTitle = useMemo(() => { if (currentPath.startsWith('/pacientes/') && routeTitle) { return routeTitle } return routeTitle || titles[currentPath] || 'MediConnect' }, [currentPath, routeTitle]) useEffect(() => { let active = true profileRepository.getCurrentUserProfile() .then((profile) => { if (!active || !profile) return setViewerProfile({ name: profile.name || 'Usuario', role: profile.role || 'Usuario do Sistema', }) }) .catch(() => {}) return () => { active = false } }, []) function goTo(path) { setMenuOpen(false) navigate(path) } return (