Dropdown

DropDown

El componente DropDown es un desplegable interactivo que permite mostrar u ocultar contenido adicional mediante interacciones como clics o estados activos.

Ejemplo

Importación

Para importar el componente DropDown, se puede hacer desde fenextjs

import { DropDown } from "fenextjs";

Parámetros

ParámetroTipoRequeridoDefaultDescripcion
classNamestringno''Clase CSS personalizada para el contenedor principal del componente DropDown.
loaderbooleannofalseIndica si el componente está en estado de carga, mostrando un indicador de 'Loader'.
disabledbooleannofalseDetermina si el componente DropDown está deshabilitado.
defaultActivebooleannofalseEstablece si el DropDown está activo de forma predeterminada al renderizarse.
activebooleannoundefinedControla de manera explícita si el DropDown está activo o inactivo.
namestringnoundefinedNombre asignado al DropDown, utilizado para manejar eventos de interacción.
headerReactNodeundefinedElemento que se muestra como cabecera del DropDown.
onChange(value: boolean) => voidnoundefinedFunción ejecutada al cambiar el estado activo del DropDown.
iconArrowReactNodeno<SvgArrow />Icono utilizado como indicador de colapso/expansión del DropDown.
childrenReactNodenoundefinedContenido adicional mostrado dentro del cuerpo del DropDown.
rotateIconbooleannotrueIndica si el icono debe rotar al cambiar el estado activo.
type'checked' | 'focus'no'focus'Define el tipo de interacción que activa el DropDown.

Interacciones

El comportamiento del DropDown está configurado por las propiedades type y onChange, permitiendo manejar eventos personalizados y estilos dinámicos.

NOTA

Para que el tipo focus funcione correctamente, es necesario que el evento global de clic esté vinculado al componente, asegurándose de que las interacciones externas cierren el DropDown automáticamente.

Storybook

Para ver el storybook del componente lo puede hacer con este link (opens in a new tab)

Usos

  • Básico
<DropDown header={<span>Menú</span>}>Contenido</DropDown>
  • DropDown con estado activo por defecto
<DropDown defaultActive={true} header={<span>Activo</span>}>
  Contenido Activo
</DropDown>
  • DropDown deshabilitado
<DropDown disabled={true} header={<span>Deshabilitado</span>} />
  • DropDown con icono personalizado
<DropDown iconArrow={<CustomIcon />} header={<span>Personalizado</span>}>
  Contenido
</DropDown>
  • DropDown usando useActionDropDown
const { onActive, onClose, onToogle } = useActionDropDown({ name:"NAME_DROPDOWN" })
 
<Button onClick={onToogle}>onToogle</Button>
<Button onClick={onActive}>onActive</Button>
<Button onClick={onClose}>onClose</Button>
 
<DropDown
    name="NAME_DROPDOWN"
    header={<span>Personalizado</span>}
>
        Contenido
</DropDown>