Skip to content

Commit f220126

Browse files
committed
Final Fix for the confirmation modal and focus trap
1 parent 0465bc2 commit f220126

2 files changed

Lines changed: 9 additions & 12 deletions

File tree

src/components/shared/NewResourceModal.tsx

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -32,13 +32,13 @@ const NewResourceModal = ({
3232
};
3333

3434
const onAttemptClose = () => {
35-
if (mode === "form") {
35+
if (mode === "form" && modalRef.current?.isOpen?.()) {
3636
setCloseRequested(true);
3737
return false; // prevent close, show confirmation modal
3838
}
3939
if (mode === "confirm") {
4040
cancelClose(); // go back to form mode
41-
return false; // prevent modal close
41+
return true; // make modal close
4242
}
4343
return true; // default allow close
4444
};
@@ -47,18 +47,13 @@ const NewResourceModal = ({
4747
useEffect(() => {
4848
if (closeRequested) {
4949
setMode("confirm");
50-
setCloseRequested(false); // Reset flag
50+
setCloseRequested(false);
5151
}
5252
}, [closeRequested]);
5353

54-
const confirmClose = () => {
55-
console.log("modalRef:", modalRef);
56-
console.log("modalRef.current:", modalRef.current);
57-
console.log("modalRef.current?.close:", modalRef.current?.close);
58-
setMode("form");
59-
modalRef.current?.close?.();
60-
handleClose();
61-
};
54+
const confirmClose = () => {
55+
modalRef.current?.close?.();
56+
};
6257
const cancelClose = () => {
6358
setMode("form");
6459
};

src/components/shared/modals/Modal.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,9 @@ export const Modal = forwardRef<ModalHandle, PropsWithChildren<ModalProps>>(({
5959

6060
return ReactDOM.createPortal(
6161
isOpen &&
62-
<FocusTrap>
62+
<FocusTrap focusTrapOptions={{
63+
escapeDeactivates: false }} // Prevent escape from deactivating the trap
64+
>
6365
<div>
6466
<div className="modal-animation modal-overlay" />
6567
<section

0 commit comments

Comments
 (0)