Hooks
useModal

useModal

El hook useModal controla el estado de un modal con opciones de almacenamiento local y personalización de eventos de activación y cierre.

Importación

Para importar el componente useModal, se puede hacer desde fenextjs

import { useModal } from "fenextjs";

Parámetros

ParámetroTipoRequeridoDefaultDescripcion
namestringnoIdentificador único para el modal.
nameLocalStoragestringnoClave utilizada para almacenar el estado activo del modal en el almacenamiento local.
activeByNameLocalStoragebooleannoSi está activo, permite controlar el estado del modal a través del almacenamiento local usando el último nombre almacenado.
activeByNameContentLocalStoragebooleannoPermite controlar el estado del modal usando todos los nombres almacenados en el almacenamiento local.
activebooleannoEstado de activación del modal pasado como propiedad.
defaultActivebooleannoValor inicial del estado activo del modal.
onActive() => voidnoFunción que se ejecuta cuando el modal se activa.
onClose() => voidnoFunción que se ejecuta cuando el modal se cierra.
onChange(d: boolean) => voidnoFunción que se ejecuta al cambiar el estado del modal.
disabledbooleannoDeshabilita las acciones sobre el modal si está establecido en true.

Returns

ParametroTipoDescripcion
activebooleanEstado actual del modal, considerando el valor almacenado y el estado de recarga.
activeNameLastbooleanIndica si el nombre del modal es el último en la lista del almacenamiento local.
activeNamebooleanIndica si el nombre del modal está presente en la lista del almacenamiento local.
listNamesLocalStoragestring[]Lista de nombres de modales almacenados en el almacenamiento local.
onChange(d: boolean) => voidFunción para actualizar el estado del modal.
onActive() => voidFunción para activar el modal.
onClose() => voidFunción para cerrar el modal.

Usos

  • Uso básico del hook useModal
const { active, onActive, onClose } = useModal({
  name: "myModal",
  defaultActive: false,
  onActive: () => console.log("Modal activado"),
  onClose: () => console.log("Modal cerrado"),
});
  • Control de estado usando almacenamiento local
const { active, listNamesLocalStorage } = useModal({
  name: "myModal",
  nameLocalStorage: "modalState",
  activeByNameLocalStorage: true,
  onChange: (isActive) => console.log("Estado del modal:", isActive),
});