Files
front-AT/app/Components/layout/BarNavigation/BarNavigationServicio.tsx
T

178 lines
4.7 KiB
TypeScript
Raw Normal View History

2026-01-23 12:35:35 -06:00
"use client";
import { useState } from "react";
import Link from "next/link";
2026-04-21 17:57:40 -05:00
import { usePathname } from "next/navigation";
import Image from "next/image";
2026-01-23 12:35:35 -06:00
import "./BarNavigation.css";
export default function BarNavigationServicio() {
const [openMenu, setOpenMenu] = useState(false);
const [openSubMenu, setOpenSubMenu] = useState<number | null>(null);
2026-04-21 17:57:40 -05:00
const pathname = usePathname();
const isActive = (paths: string[]) => {
return paths.some((path) => pathname.startsWith(path));
};
2026-01-23 12:35:35 -06:00
const toggleMenu = () => setOpenMenu(!openMenu);
const toggleSubMenu = (index: number) => {
if (typeof window !== "undefined" && window.innerWidth <= 1000) {
setOpenSubMenu(openSubMenu === index ? null : index);
}
};
const closeAllMenus = () => {
setOpenMenu(false);
setOpenSubMenu(null);
};
return (
<nav className="barNavigation">
<div className={`menuToggle ${openMenu ? "" : ""}`} onClick={toggleMenu}>
<div></div>
<div></div>
<div></div>
</div>
<ul className={openMenu ? "active" : ""}>
2026-04-21 17:57:40 -05:00
<li
className={`subMenu
${openSubMenu === 0 ? "open" : ""}
${isActive(["/Inscripcion", "/AgregarTiempo"]) ? "active" : ""}
`}>
<span onClick={() => toggleSubMenu(0)}>
<Image
src="/user-plus.svg"
alt="Logo FES"
width={16}
height={16}
color="#545454"
/>
Inscripciones</span>
2026-01-23 12:35:35 -06:00
<ul onClick={toggleMenu}>
<Link
href="/Inscripcion"
className="links"
onClick={(e) => {
e.stopPropagation();
closeAllMenus();
}}
>
<li>Inscripción Usuario</li>
</Link>
<Link
href="/AgregarTiempo"
className="links"
onClick={(e) => {
e.stopPropagation();
closeAllMenus();
}}
>
<li>Agregar Tiempo</li>
</Link>
</ul>
</li>
2026-04-21 17:57:40 -05:00
<li
className={`subMenu
${openSubMenu === 1 ? "open" : ""}
${isActive(["/Impresiones", "/AsignacionMesas", "/AsignacionEquipo", "/Monitor"]) ? "active" : ""}
`}>
<span onClick={() => toggleSubMenu(1)}>
<Image
src="/briefcase.svg"
alt="Logo FES"
width={16}
height={16}
color="#545454"
/>
Servicios</span>
2026-01-23 12:35:35 -06:00
<ul onClick={toggleMenu}>
<Link
href="/Impresiones"
className="links"
onClick={(e) => {
e.stopPropagation();
closeAllMenus();
}}
>
<li>Impresiones y Ploteo</li>
</Link>
<Link
href="/AsignacionMesas"
className="links"
onClick={(e) => {
e.stopPropagation();
closeAllMenus();
}}
>
<li>Asignación de Mesas</li>
</Link>
<Link
href="/AsignacionEquipo"
className="links"
onClick={(e) => {
e.stopPropagation();
closeAllMenus();
}}
>
<li>Asignación de Equipos</li>
</Link>
<Link
href="/Monitor"
className="links"
onClick={(e) => {
e.stopPropagation();
closeAllMenus();
}}
>
<li>Monitor</li>
</Link>
</ul>
</li>
2026-02-13 16:10:05 -06:00
{/* <li className="subMenu" onClick={toggleMenu}>
2026-01-23 12:35:35 -06:00
<Link
href="/Mensajes"
className="links"
onClick={(e) => {
e.stopPropagation();
closeAllMenus();
}}
>
<span>Mensajes</span>
</Link>
2026-02-13 16:10:05 -06:00
</li> */}
2026-02-23 15:00:49 -06:00
2026-04-21 17:57:40 -05:00
<li
className={`subMenu
${isActive(["/ActivosMantenimiento"]) ? "active" : ""}
`} onClick={toggleMenu}>
2026-02-23 15:00:49 -06:00
<Link
href="/ActivosMantenimiento"
className="links"
onClick={(e) => {
e.stopPropagation();
closeAllMenus();
}}
>
2026-04-21 17:57:40 -05:00
<span>
<Image
src="/computer.svg"
alt="Logo FES"
width={16}
height={16}
color="#545454"
/>
Activos y en Mantenimiento</span>
2026-02-23 15:00:49 -06:00
</Link>
</li>
2026-01-23 12:35:35 -06:00
</ul>
</nav>
);
}
//IO