UNPKG

phx-react

Version:

PHX REACT

27 lines 997 B
import { useCallback, useMemo, useState } from 'react'; import * as React from 'react'; import Modal from '../ui/Modal'; export default function useModal() { const [modalContent, setModalContent] = useState(null); const onClose = useCallback(() => { setModalContent(null); }, []); const modal = useMemo(() => { if (modalContent === null) { return null; } const { closeOnClickOutside, content, title } = modalContent; return (React.createElement(Modal, { closeOnClickOutside: closeOnClickOutside, onClose: onClose, title: title }, content)); }, [modalContent, onClose]); const showModal = useCallback((title, // eslint-disable-next-line no-shadow getContent, closeOnClickOutside = false) => { setModalContent({ closeOnClickOutside, content: getContent(onClose), title, }); }, [onClose]); return [modal, showModal]; } //# sourceMappingURL=useModal.js.map