From 140e2853c6afe25b1ec19a7de86042217eb817fe Mon Sep 17 00:00:00 2001 From: mrholek Date: Wed, 12 Jul 2023 11:35:17 +0200 Subject: [PATCH] fix(CModal): remove click outside listener when the modal is not visible; fire `handleClickOutside` method on `mouseup` event not `click` --- packages/coreui-react/src/components/modal/CModal.tsx | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/packages/coreui-react/src/components/modal/CModal.tsx b/packages/coreui-react/src/components/modal/CModal.tsx index ec119c41..7a81b99f 100644 --- a/packages/coreui-react/src/components/modal/CModal.tsx +++ b/packages/coreui-react/src/components/modal/CModal.tsx @@ -128,11 +128,13 @@ export const CModal = forwardRef( }, [visible]) useEffect(() => { - document.addEventListener('click', handleClickOutside) - document.addEventListener('keydown', handleKeyDown) + if (_visible) { + document.addEventListener('mouseup', handleClickOutside) + document.addEventListener('keydown', handleKeyDown) + } return () => { - document.removeEventListener('click', handleClickOutside) + document.removeEventListener('mouseup', handleClickOutside) document.removeEventListener('keydown', handleKeyDown) } }, [_visible])