ItemMenu
El componente ItemMenu representa un elemento de menú que puede contener enlaces, iconos y submenús colapsables. Es útil para crear menús anidados o navegaciones que requieren interacción jerárquica.
Ejemplo
Importación
Para importar el componente ItemMenu, se puede hacer desde fenextjs
import { ItemMenu } from "fenextjs";Parámetros
| Parámetro | Tipo | Requerido | Default | Descripcion |
|---|---|---|---|---|
| url | string | sí | URL de la página asociada al ítem del menú. | |
| text | ReactNode | sí | Texto que representa el ítem del menú. | |
| icon | ReactNode | no | <></> | Icono a mostrar junto al texto del menú. |
| subItems | Array<Omit<ItemMenuProps, '_t'>> | no | Submenús anidados dentro de este ítem de menú. | |
| defaultActive | boolean | no | false | Indica si el submenú está activo por defecto. |
| iconArrow | ReactNode | no | <Arrow /> | Icono de flecha que indica la expansión del submenú. |
| nameNumber | number | no | 1 | Número de nivel de jerarquía del ítem de menú. |
| typeCollapse | 'radio' | 'checkbox' | no | Tipo de comportamiento del colapso en los submenús. | |
| isLink | boolean | no | true | Determina si el componente se renderiza como un enlace. |
| onClick | function | no | Función que se ejecuta al hacer click en el ítem de menú. | |
| className | string | no | '' | Clase CSS para el contenedor principal del ítem. |
| classNameA | string | no | '' | Clase CSS para el elemento de enlace del ítem. |
| classNameIcon | string | no | '' | Clase CSS para el icono del ítem. |
| classNameText | string | no | '' | Clase CSS para el texto del ítem. |
Storybook
Para ver el storybook del componente lo puede hacer con este link (opens in a new tab)
Usos
- Uso básico
<ItemMenu url="/home" text="Inicio" />- Ítem de menú con submenús
<ItemMenu
url="/services"
text="Servicios"
subItems={[
{ url: "/web", text: "Desarrollo Web" },
{ url: "/app", text: "Aplicaciones Móviles" },
]}
/>- Ítem de menú con icono y colapso activado
<ItemMenu
url="/profile"
text="Perfil"
icon={<UserIcon />}
defaultActive={true}
/>