Skip to content

Commit a9cdb97

Browse files
committed
fix(CModal): closes if onmouseup event is outside of the modal
1 parent aca6406 commit a9cdb97

File tree

1 file changed

+8
-3
lines changed
  • packages/coreui-vue/src/components/modal

1 file changed

+8
-3
lines changed

packages/coreui-vue/src/components/modal/CModal.ts

+8-3
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ const CModal = defineComponent({
133133
emit('show')
134134
}
135135
const handleAfterEnter = () => {
136-
window.addEventListener('click', handleClickOutside)
136+
window.addEventListener('mousedown', handleMouseDown)
137137
window.addEventListener('keyup', handleKeyUp)
138138
}
139139
const handleLeave = (el: RendererElement, done: () => void) => {
@@ -144,7 +144,7 @@ const CModal = defineComponent({
144144
el.classList.remove('show')
145145
}
146146
const handleAfterLeave = (el: RendererElement) => {
147-
window.removeEventListener('click', handleClickOutside)
147+
window.removeEventListener('mousedown', handleMouseDown)
148148
window.removeEventListener('keyup', handleKeyUp)
149149
el.style.display = 'none'
150150
}
@@ -168,7 +168,12 @@ const CModal = defineComponent({
168168
}
169169
}
170170
}
171-
const handleClickOutside = (event: Event) => {
171+
172+
const handleMouseDown = (event: Event) => {
173+
window.addEventListener('mouseup', () => handleMouseUp(event))
174+
}
175+
176+
const handleMouseUp = (event: Event) => {
172177
if (modalContentRef.value && !modalContentRef.value.contains(event.target as HTMLElement)) {
173178
if (props.backdrop !== 'static') {
174179
handleDismiss()

0 commit comments

Comments
 (0)