Modal

Import
import { Modal } from '@features/ui';

Props

PropTiporequerido?DefaultDescripción
titlestringsiTítulo del modal.
footerJSX.ElementnonullRecibe como parámetro un componente a renderear como footer.
sizexs , sm , md , xl , lg , full-screennomdTamaño del modal.
closeOnClickOutsidebooleannotrueDetermina si el modal debe cerrarse cuando el usuario hace clic fuera del modal.
onClose(): void | boolean => nonullSe llama cuando el modal se cierra desde adentro.

Uso

import { useState } from 'react';
import { Modal } from '@features/ui';
 
export function Test(): JSX.Element {
    const [showModal, setShowModal] = useState<boolean>(false);
 
    return (
        <>
            <button onClick={setShowModal(showModal => !showModal)}>Mostrar modal</button>
            {showModal && <Modal title="título del modal" onClose={() => setShowModal(false)}>Contenido del modal.</Modal>}
        <>
    );
}

Uso en conjunto con useGlobalModals

useGlobalModals permite agregar modales al contexto GlobalModalsContext,

import { Modal } from '@features/ui';
import { useGlobalModals } from '@resources/contexts';
 
export function Test(): JSX.Element {
    const { showModal } = useGlobalModals();
 
    function handleShowModal() {
        showModal(<Modal title="título del modal">Contenido del modal.</Modal>);
    }
 
    return <button onClick={handleShowModal}>mostrar Modal</button>;
}