import { IconCalendarStats, IconDeviceDesktopAnalytics, IconFingerprint, IconGauge, IconHome2, IconSettings, IconUser, IconArrowBarLeft, IconArrowBarRight, } from '@tabler/icons-react'; import { Title, Tooltip, UnstyledButton, ActionIcon, } from '@mantine/core'; import { Link, useLocation } from 'react-router-dom'; import { useEffect, useState } from 'react'; import classes from './DoubleNavbar.module.css'; const mainLinksdata = [ { icon: IconHome2, label: 'Home' }, { icon: IconGauge, label: 'Dashboard' }, { icon: IconDeviceDesktopAnalytics, label: 'Analytics' }, { icon: IconCalendarStats, label: 'Releases' }, { icon: IconUser, label: 'Account' }, { icon: IconFingerprint, label: 'Security' }, { icon: IconSettings, label: 'Settings' }, ]; const submenuLinks: Record = { Home: [ { label: 'Inicio', to: '/' }, { label: 'Consulta Api', to: '/Consulta_API' }, ], Dashboard: [ { label: 'Resumen', to: '/dashboard/resumen' }, { label: 'Estadísticas', to: '/dashboard/estadisticas' }, { label: 'Usuarios', to: '/dashboard/usuarios' }, ], Analytics: [ { label: 'Conversiones', to: '/analytics/conversiones' }, { label: 'Tráfico', to: '/analytics/trafico' }, { label: 'Tendencias', to: '/analytics/tendencias' }, ], Releases: [ { label: 'Notas de versión', to: '/releases/notas-de-version' }, { label: 'Historial', to: '/releases/historial' }, ], Account: [ { label: 'Perfil', to: '/account/perfil' }, { label: 'Suscripciones', to: '/account/suscripciones' }, ], Security: [ { label: 'Contraseña', to: '/security/contraseña' }, { label: '2FA', to: '/security/2fa' }, ], Settings: [ { label: 'Preferencias', to: '/settings/preferencias' }, { label: 'Notificaciones', to: '/settings/notificaciones' }, ], }; export function DoubleNavbar() { const location = useLocation(); const [collapsed, setCollapsed] = useState(false); const [manualActiveTab, setManualActiveTab] = useState(null); // Detectar cuál pestaña es activa por la ruta actual const matchedMain = Object.entries(submenuLinks).find(([mainKey, items]) => items.some((item) => location.pathname.startsWith(item.to)) ); const routeBasedActive = matchedMain?.[0] ?? 'Home'; const active = manualActiveTab ?? routeBasedActive; const activeLink = submenuLinks[active]?.find((item) => location.pathname === item.to)?.label ?? ''; const mainLinks = mainLinksdata.map((link) => ( setManualActiveTab(link.label)} className={classes.mainLink} data-active={link.label === active || undefined} > )); const links = (submenuLinks[active] || []).map((item) => ( {item.label} )); // Resetea pestaña seleccionada si la ruta cambia (opcional) useEffect(() => { setManualActiveTab(null); }, [location.pathname]); return ( ); }