import React, { useState, useEffect } from 'react'; import { useLocation } from 'react-router-dom'; import { colors } from '../theme'; const hubLoginUrl = () => { const HUB_URL = import.meta.env.VITE_HUB_URL || 'http://localhost:3001'; const returnTo = encodeURIComponent(`${window.location.origin}/auth/sso`); return `${HUB_URL}/login?return_to=${returnTo}`; }; export default function Navbar() { const [isLoggedIn, setIsLoggedIn] = useState(false); const [isMenuOpen, setIsMenuOpen] = useState(false); const location = useLocation(); useEffect(() => { const checkAuthStatus = () => { const token = localStorage.getItem('access'); setIsLoggedIn(!!token); }; checkAuthStatus(); window.addEventListener('authStateChanged', checkAuthStatus); return () => window.removeEventListener('authStateChanged', checkAuthStatus); }, []); const logout = async () => { const { logout: doLogout } = await import('../api/auth'); doLogout(); // limpia estado + llama backend en bg const hubUrl = import.meta.env.VITE_HUB_URL || 'http://localhost:3001'; window.location.href = `${hubUrl}/login`; }; const navLinks = [ { path: '/', name: 'Inicio', public: true }, { path: '/admin', name: 'Dashboard', public: false }, { path: '/documents', name: 'Documentos', public: false }, { path: '/mi-organizacion', name: 'Organización', public: false }, { path: '/usuarios', name: 'Usuarios', public: false }, { path: '/reportes', name: 'Reportes', public: false }, ]; const isActiveLink = (path) => { return location.pathname === path; }; return ( ); }