fix: version 2.4.0 -- menu lateral como drawer en celular

En pantallas angostas (<=768px) el sidebar arranca oculto y se abre
como panel superpuesto desde el boton de hamburguesa, con fondo
oscuro detras y cierre automatico al navegar o tocar afuera. El
escritorio no se toca: sigue igual que siempre.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Milton Gonzalez
2026-09-22 13:20:30 -05:00
parent ea0feb7e3a
commit 9b20f85ae0
7 changed files with 61 additions and 10 deletions
+7 -5
View File
@@ -17,15 +17,17 @@ const ITEMS = [
{ to: '/configuracion', icon: Settings, labelKey: 'nav_config', superadminOnly: true },
];
export function NavigationView({ mode }) {
export function NavigationView({ mode, mobileOpen, onNavigate }) {
const { t, theme } = useUi();
const { user } = useAuth();
const branding = useBranding();
const compact = mode === 'compact';
// En celular el drawer siempre se ve completo (con etiquetas), sin importar el modo
// compacto/expandido del riel de escritorio -- son dos cosas independientes.
const compact = mode === 'compact' && !mobileOpen;
const items = ITEMS.filter((item) => !item.superadminOnly || user?.roleCode === 'superadmin');
const brandName = branding.name || t('appName');
return (
<nav className={`nav-view ${mode}`}>
<nav className={`nav-view ${mode} ${mobileOpen ? 'mobile-open' : ''}`}>
{branding.logoUrl && (
<div className="nav-header">
<img
@@ -37,9 +39,9 @@ export function NavigationView({ mode }) {
)}
<div className="nav-items">
{items.map((item) => (
<NavLink key={item.to} to={item.to} end={item.end} className={({ isActive }) => `nav-item ${isActive ? 'active' : ''}`}>
<NavLink key={item.to} to={item.to} end={item.end} onClick={onNavigate} className={({ isActive }) => `nav-item ${isActive ? 'active' : ''}`}>
<item.icon />
{mode !== 'compact' && <span>{t(item.labelKey)}</span>}
{!compact && <span>{t(item.labelKey)}</span>}
</NavLink>
))}
</div>