Commit b11b7adb authored by ioedeveloper's avatar ioedeveloper

Fix disappearing modal after tab switch

parent df7a142d
...@@ -16,6 +16,24 @@ export const ModalDialog = (props: ModalDialogProps) => { ...@@ -16,6 +16,24 @@ export const ModalDialog = (props: ModalDialogProps) => {
modal.current.focus() modal.current.focus()
}, [props.hide]) }, [props.hide])
useEffect(() => {
function handleBlur (e) {
if (!e.currentTarget.contains(e.relatedTarget)) {
e.stopPropagation()
if (document.activeElement !== this) {
handleHide()
}
}
}
if (modal.current) {
modal.current.addEventListener('blur', handleBlur)
return () => {
modal.current.removeEventListener('blur', handleBlur)
}
}
}, [modal.current])
const modalKeyEvent = (keyCode) => { const modalKeyEvent = (keyCode) => {
if (keyCode === 27) { // Esc if (keyCode === 27) { // Esc
if (props.cancelFn) props.cancelFn() if (props.cancelFn) props.cancelFn()
...@@ -40,13 +58,6 @@ export const ModalDialog = (props: ModalDialogProps) => { ...@@ -40,13 +58,6 @@ export const ModalDialog = (props: ModalDialogProps) => {
handleHide() handleHide()
} }
const handleBlur = (e) => {
if (!e.currentTarget.contains(e.relatedTarget)) {
e.stopPropagation()
handleHide()
}
}
return ( return (
<div <div
data-id={`${props.id}ModalDialogContainer-react`} data-id={`${props.id}ModalDialogContainer-react`}
...@@ -58,7 +69,6 @@ export const ModalDialog = (props: ModalDialogProps) => { ...@@ -58,7 +69,6 @@ export const ModalDialog = (props: ModalDialogProps) => {
> >
<div className="modal-dialog" role="document"> <div className="modal-dialog" role="document">
<div <div
onBlur={handleBlur}
ref={modal} ref={modal}
tabIndex={-1} tabIndex={-1}
className={'modal-content remixModalContent ' + (props.modalClass ? props.modalClass : '')} className={'modal-content remixModalContent ' + (props.modalClass ? props.modalClass : '')}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment