Skip to content

Commit 6b670ed

Browse files
authored
Merge pull request #111 from yaStigma/Modals
changes
2 parents 9ff1d82 + 4cc84b2 commit 6b670ed

File tree

1 file changed

+16
-6
lines changed

1 file changed

+16
-6
lines changed

src/components/UserLogoModal/UserLogoModal.jsx

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,23 +7,32 @@ import UserLogoutModal from 'components/UserLogoutModal/UserLogoutModal';
77
export default function UserLogoModal({ isOpen, onClose }) {
88
const [activateModal, setActivateModal] = useState(null);
99
const dropDownRef = useRef();
10+
1011
const openModal = modalName => {
1112
setActivateModal(modalName);
1213
};
14+
const closeActivateModal = () => {
15+
setActivateModal(null);
16+
onClose();
17+
};
1318

1419
useEffect(() => {
15-
const handleKeyDown = e => {
20+
const handleKeyDown = (e) => {
1621
if (e.key === 'Escape') {
17-
setActivateModal(null);
18-
onClose();
22+
if (activateModal) {
23+
closeActivateModal();
24+
} else {
25+
onClose();
26+
}
1927
}
2028
};
21-
const handleClickOutside = e => {
29+
const handleClickOutside = (e) => {
2230
if (
2331
isOpen &&
2432
dropDownRef.current &&
2533
!dropDownRef.current.contains(e.target) &&
26-
!e.target.closest(`.${css.btn}`)
34+
!e.target.closest(`.${css.user__btn}`) &&
35+
!activateModal
2736
) {
2837
onClose();
2938
}
@@ -40,7 +49,7 @@ export default function UserLogoModal({ isOpen, onClose }) {
4049
window.removeEventListener('mousedown', handleClickOutside);
4150
document.body.style.overflow = '';
4251
};
43-
}, [onClose, activateModal, dropDownRef, isOpen]);
52+
}, [onClose, isOpen, activateModal,closeActivateModal]);
4453

4554
const closeModal = () => {
4655
setActivateModal(null);
@@ -72,6 +81,7 @@ export default function UserLogoModal({ isOpen, onClose }) {
7281
<SettingModal
7382
closeModal={closeModal}
7483
closeBackdrop={handleCloseBackdrop}
84+
onClick={(e) => e.stopPropagation()}
7585
/>
7686
)}
7787
{activateModal === 'logout' && (

0 commit comments

Comments
 (0)