Primera version para produccion
This commit is contained in:
@@ -5,6 +5,17 @@ import { useUser } from '../context/UserContext';
|
||||
export default function Sidebar() {
|
||||
// Leer si el usuario es importador desde localStorage
|
||||
const isImportador = typeof window !== 'undefined' && localStorage.getItem('user_is_importador') === 'true';
|
||||
// Leer grupos del usuario desde localStorage
|
||||
let userGroups = [];
|
||||
if (typeof window !== 'undefined') {
|
||||
try {
|
||||
userGroups = JSON.parse(localStorage.getItem('user_groups') || '[]');
|
||||
} catch {
|
||||
userGroups = [];
|
||||
}
|
||||
}
|
||||
// Si los grupos son exactamente [3,5]
|
||||
const isGroup35 = Array.isArray(userGroups) && userGroups.length === 2 && userGroups.includes(3) && userGroups.includes(5);
|
||||
const [isCollapsed, setIsCollapsed] = useState(false);
|
||||
const location = useLocation();
|
||||
const navigate = useNavigate();
|
||||
@@ -33,15 +44,22 @@ export default function Sidebar() {
|
||||
</svg>
|
||||
)
|
||||
},
|
||||
{
|
||||
name: 'Mi Organización',
|
||||
path: '/organization',
|
||||
icon: (
|
||||
<svg className="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<path strokeLinecap="round" strokeLinejoin="round" strokeWidth="2" d="M19 21V5a2 2 0 00-2-2H7a2 2 0 00-2 2v16m14 0h2m-2 0h-5m-9 0H3m2 0h5M9 7h1m-1 4h1m4-4h1m-1 4h1m-5 10v-5a1 1 0 011-1h2a1 1 0 011 1v5m-4 0h4" />
|
||||
</svg>
|
||||
)
|
||||
}
|
||||
// Ocultar 'Mi Organización' si es importador o si esGroup35
|
||||
...(
|
||||
(!isImportador && !isGroup35)
|
||||
? [
|
||||
{
|
||||
name: 'Mi Organización',
|
||||
path: '/organization',
|
||||
icon: (
|
||||
<svg className="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<path strokeLinecap="round" strokeLinejoin="round" strokeWidth="2" d="M19 21V5a2 2 0 00-2-2H7a2 2 0 00-2 2v16m14 0h2m-2 0h-5m-9 0H3m2 0h5M9 7h1m-1 4h1m4-4h1m-1 4h1m-5 10v-5a1 1 0 011-1h2a1 1 0 011 1v5m-4 0h4" />
|
||||
</svg>
|
||||
)
|
||||
}
|
||||
]
|
||||
: []
|
||||
)
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -55,6 +73,16 @@ export default function Sidebar() {
|
||||
<path strokeLinecap="round" strokeLinejoin="round" strokeWidth="2" d="M12 8v4l3 3m6 0a9 9 0 11-18 0 9 9 0 0118 0z" />
|
||||
</svg>
|
||||
)
|
||||
},
|
||||
{
|
||||
name: 'Agenda',
|
||||
path: '/agenda',
|
||||
icon: (
|
||||
<svg className="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<rect x="3" y="4" width="18" height="18" rx="2" ry="2" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round" />
|
||||
<path d="M16 2v4M8 2v4M3 10h18" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round" />
|
||||
</svg>
|
||||
)
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -92,50 +120,62 @@ export default function Sidebar() {
|
||||
]
|
||||
},
|
||||
// Nueva sección Tableros
|
||||
{
|
||||
title: 'Tableros',
|
||||
items: [
|
||||
{
|
||||
name: 'Uso de Almacenamiento',
|
||||
path: '/tablero/almacenamiento',
|
||||
icon: (
|
||||
<svg className="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<path strokeLinecap="round" strokeLinejoin="round" strokeWidth="2" d="M3 12l2-2m0 0l7-7 7 7M5 10v10a1 1 0 001 1h3m10-11l2 2m-2-2v10a1 1 0 01-1 1h-3m-6 0a1 1 0 001-1v-4a1 1 0 011-1h2a1 1 0 011 1v4a1 1 0 001 1m-6 0h6" />
|
||||
</svg>
|
||||
)
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
title: 'Acceso a Usuarios',
|
||||
items: [
|
||||
...(
|
||||
isImportador
|
||||
? []
|
||||
: [
|
||||
...(
|
||||
isGroup35
|
||||
? []
|
||||
: [
|
||||
{
|
||||
title: 'Tableros',
|
||||
items: [
|
||||
{
|
||||
name: 'Usuarios',
|
||||
path: '/users',
|
||||
name: 'Uso de Almacenamiento',
|
||||
path: '/tablero/almacenamiento',
|
||||
icon: (
|
||||
<svg className="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<path strokeLinecap="round" strokeLinejoin="round" strokeWidth="2" d="M12 4.354a4 4 0 110 5.292M15 21H3v-1a6 6 0 0112 0v1zm0 0h6v-1a6 6 0 00-9-5.197m13.5-9a2.5 2.5 0 11-5 0 2.5 2.5 0 015 0z" />
|
||||
<path strokeLinecap="round" strokeLinejoin="round" strokeWidth="2" d="M3 12l2-2m0 0l7-7 7 7M5 10v10a1 1 0 001 1h3m10-11l2 2m-2-2v10a1 1 0 01-1 1h-3m-6 0a1 1 0 001-1v-4a1 1 0 011-1h2a1 1 0 011 1v4a1 1 0 001 1m-6 0h6" />
|
||||
</svg>
|
||||
)
|
||||
}
|
||||
]
|
||||
),
|
||||
{
|
||||
name: 'Vucem',
|
||||
path: '/vucem',
|
||||
icon: (
|
||||
<svg className="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<circle cx="12" cy="12" r="10" stroke="currentColor" strokeWidth="2" fill="none" />
|
||||
<path strokeLinecap="round" strokeLinejoin="round" strokeWidth="2" d="M8 12h8M12 8v8" />
|
||||
</svg>
|
||||
)
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
),
|
||||
...(
|
||||
isGroup35
|
||||
? []
|
||||
: [
|
||||
{
|
||||
title: 'Acceso a Usuarios',
|
||||
items: [
|
||||
...(
|
||||
isImportador
|
||||
? []
|
||||
: [
|
||||
{
|
||||
name: 'Usuarios',
|
||||
path: '/users',
|
||||
icon: (
|
||||
<svg className="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<path strokeLinecap="round" strokeLinejoin="round" strokeWidth="2" d="M12 4.354a4 4 0 110 5.292M15 21H3v-1a6 6 0 0112 0v1zm0 0h6v-1a6 6 0 00-9-5.197m13.5-9a2.5 2.5 0 11-5 0 2.5 2.5 0 015 0z" />
|
||||
</svg>
|
||||
)
|
||||
}
|
||||
]
|
||||
),
|
||||
{
|
||||
name: 'Vucem',
|
||||
path: '/vucem',
|
||||
icon: (
|
||||
<svg className="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<circle cx="12" cy="12" r="10" stroke="currentColor" strokeWidth="2" fill="none" />
|
||||
<path strokeLinecap="round" strokeLinejoin="round" strokeWidth="2" d="M8 12h8M12 8v8" />
|
||||
</svg>
|
||||
)
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
)
|
||||
];
|
||||
|
||||
// Filtrar secciones según si es importador
|
||||
|
||||
Reference in New Issue
Block a user