diff --git a/resources/assets/src/components/Modal.tsx b/resources/assets/src/components/Modal.tsx index 89fa754e..7339ea1e 100644 --- a/resources/assets/src/components/Modal.tsx +++ b/resources/assets/src/components/Modal.tsx @@ -46,6 +46,23 @@ const Modal: React.FC = props => { const [validatorMessage, setValidatorMessage] = useState('') const ref = useRef(null) + const { show } = props + + useEffect(() => { + if (!show) { + return + } + + const onHidden = () => props.onClose?.() + + const el = $(ref.current!) + el.on('hidden.bs.modal', onHidden) + + return () => { + el.off('hidden.bs.modal', onHidden) + } + }, [show, props.onClose]) + const handleInputChange = (event: React.ChangeEvent) => { setValue(event.target.value) } @@ -82,39 +99,17 @@ const Modal: React.FC = props => { } useEffect(() => { - if (!props.show) { - return - } - - const onHidden = () => props.onClose?.() - - const el = $(ref.current!) - el.on('hidden.bs.modal', onHidden) - - return () => { - el.off('hidden.bs.modal', onHidden) - } - }, [props.onClose, props.show]) - - useEffect(() => { - if (props.show) { + if (show) { setTimeout(() => $(ref.current!).modal('show'), 50) } - }, [props.show]) + }, [show]) - if (!props.show) { + if (!show) { return null } return ( -