mirror of
https://github.com/ArthurDanjou/ui.git
synced 2026-01-23 16:30:45 +01:00
fix: Hover mode on Dropdown & Popover (#48)
This commit is contained in:
committed by
GitHub
parent
656b6e1c59
commit
8bc4902078
@@ -175,6 +175,12 @@ export default {
|
||||
const menuProvides = trigger.value?.$.provides
|
||||
const menuProvidesSymbols = Object.getOwnPropertySymbols(menuProvides)
|
||||
menuApi.value = menuProvidesSymbols.length && menuProvides[menuProvidesSymbols[0]]
|
||||
// stop trigger click propagation on hover
|
||||
menuApi.value.buttonRef.addEventListener('click', (e) => {
|
||||
if (props.mode === 'hover') {
|
||||
e.stopPropagation()
|
||||
}
|
||||
}, true)
|
||||
}, 0)
|
||||
})
|
||||
|
||||
@@ -195,7 +201,7 @@ export default {
|
||||
openTimeout = openTimeout || setTimeout(() => {
|
||||
menuApi.value.openMenu && menuApi.value.openMenu()
|
||||
openTimeout = null
|
||||
}, 200)
|
||||
}, 50)
|
||||
}
|
||||
|
||||
function onMouseLeave () {
|
||||
@@ -215,7 +221,7 @@ export default {
|
||||
closeTimeout = closeTimeout || setTimeout(() => {
|
||||
menuApi.value.closeMenu && menuApi.value.closeMenu()
|
||||
closeTimeout = null
|
||||
}, 100)
|
||||
}, 200)
|
||||
}
|
||||
|
||||
return {
|
||||
|
||||
@@ -100,6 +100,12 @@ export default {
|
||||
const popoverProvides = trigger.value?.$.provides
|
||||
const popoverProvidesSymbols = Object.getOwnPropertySymbols(popoverProvides)
|
||||
popoverApi.value = popoverProvidesSymbols.length && popoverProvides[popoverProvidesSymbols[0]]
|
||||
// stop trigger click propagation on hover
|
||||
popoverApi.value.button.addEventListener('click', (e) => {
|
||||
if (props.mode === 'hover') {
|
||||
e.stopPropagation()
|
||||
}
|
||||
}, true)
|
||||
}, 0)
|
||||
})
|
||||
|
||||
@@ -119,7 +125,7 @@ export default {
|
||||
openTimeout = openTimeout || setTimeout(() => {
|
||||
popoverApi.value.togglePopover && popoverApi.value.togglePopover()
|
||||
openTimeout = null
|
||||
}, 200)
|
||||
}, 50)
|
||||
}
|
||||
|
||||
function onMouseLeave () {
|
||||
@@ -138,7 +144,7 @@ export default {
|
||||
closeTimeout = closeTimeout || setTimeout(() => {
|
||||
popoverApi.value.closePopover && popoverApi.value.closePopover()
|
||||
closeTimeout = null
|
||||
}, 100)
|
||||
}, 200)
|
||||
}
|
||||
|
||||
return {
|
||||
|
||||
Reference in New Issue
Block a user