Skip to content

Commit 341dec3

Browse files
committed
fix(dialog): always remove .modal-open class from body after closing the dialog
1 parent f22b546 commit 341dec3

File tree

1 file changed

+10
-8
lines changed

1 file changed

+10
-8
lines changed

src/dialog/Modal.jsx

+10-8
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,17 @@ const ESCAPE_KEYCODE = 27;
66

77
export function Modal({ title, body, onClose, isOpen, footer, staticBackdrop, scrollable, centered, size, keyboard }) {
88
const modalRef = useRef(null);
9+
const closeAndHide = useCallback(() => {
10+
hideModal(modalRef);
11+
onClose();
12+
}, [onClose]);
913
const closeIfEscape = useCallback(
1014
(event) => {
1115
if (keyboard && event.which === ESCAPE_KEYCODE) {
12-
hideModal(modalRef);
13-
onClose();
16+
closeAndHide();
1417
}
1518
},
16-
[modalRef, onClose, keyboard]
19+
[keyboard, closeAndHide]
1720
);
1821

1922
useEffect(() => {
@@ -43,8 +46,7 @@ export function Modal({ title, body, onClose, isOpen, footer, staticBackdrop, sc
4346
onClick={(e) => {
4447
e.stopPropagation();
4548
if (!staticBackdrop) {
46-
hideModal(modalRef);
47-
onClose();
49+
closeAndHide();
4850
}
4951
}}
5052
>
@@ -58,12 +60,12 @@ export function Modal({ title, body, onClose, isOpen, footer, staticBackdrop, sc
5860
<div className="modal-content">
5961
<div className="modal-header">
6062
<h5 className="modal-title">{title}</h5>
61-
<button type="button" className="close" onClick={onClose} aria-label="Close">
63+
<button type="button" className="close" onClick={closeAndHide} aria-label="Close">
6264
<span aria-hidden="true">&times;</span>
6365
</button>
6466
</div>
65-
<div className="modal-body">{renderObjectOrFunction(body, { close: onClose })}</div>
66-
{footer && <div className="modal-footer">{renderObjectOrFunction(footer, { close: onClose })}</div>}
67+
<div className="modal-body">{renderObjectOrFunction(body, { close: closeAndHide })}</div>
68+
{footer && <div className="modal-footer">{renderObjectOrFunction(footer, { close: closeAndHide })}</div>}
6769
</div>
6870
</div>
6971
</div>

0 commit comments

Comments
 (0)