mirror of
https://github.com/ArthurDanjou/ui.git
synced 2026-01-30 19:57:55 +01:00
fix(Popover): improve hover mode on touch devices
This commit is contained in:
@@ -7,7 +7,8 @@
|
|||||||
:disabled="disabled"
|
:disabled="disabled"
|
||||||
:class="ui.trigger"
|
:class="ui.trigger"
|
||||||
role="button"
|
role="button"
|
||||||
@mouseover="onMouseOver"
|
@mouseenter="onMouseEnter"
|
||||||
|
@touchstart.prevent="onTouchStart"
|
||||||
>
|
>
|
||||||
<slot :open="open" :close="close">
|
<slot :open="open" :close="close">
|
||||||
<button :disabled="disabled">
|
<button :disabled="disabled">
|
||||||
@@ -20,7 +21,7 @@
|
|||||||
<div v-if="open" :class="[ui.overlay.base, ui.overlay.background]" />
|
<div v-if="open" :class="[ui.overlay.base, ui.overlay.background]" />
|
||||||
</Transition>
|
</Transition>
|
||||||
|
|
||||||
<div v-if="open" ref="container" :class="[ui.container, ui.width]" :style="containerStyle" @mouseover="onMouseOver">
|
<div v-if="open" ref="container" :class="[ui.container, ui.width]" :style="containerStyle">
|
||||||
<Transition appear v-bind="ui.transition">
|
<Transition appear v-bind="ui.transition">
|
||||||
<div>
|
<div>
|
||||||
<div v-if="popper.arrow" data-popper-arrow :class="Object.values(ui.arrow)" />
|
<div v-if="popper.arrow" data-popper-arrow :class="Object.values(ui.arrow)" />
|
||||||
@@ -153,7 +154,19 @@ export default defineComponent({
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
function onMouseOver () {
|
function onTouchStart () {
|
||||||
|
if (!popoverApi.value) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if (popoverApi.value.popoverState === 0) {
|
||||||
|
popoverApi.value.closePopover()
|
||||||
|
} else {
|
||||||
|
popoverApi.value.togglePopover()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function onMouseEnter () {
|
||||||
if (props.mode !== 'hover' || !popoverApi.value) {
|
if (props.mode !== 'hover' || !popoverApi.value) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@@ -223,7 +236,8 @@ export default defineComponent({
|
|||||||
trigger,
|
trigger,
|
||||||
container,
|
container,
|
||||||
containerStyle,
|
containerStyle,
|
||||||
onMouseOver,
|
onTouchStart,
|
||||||
|
onMouseEnter,
|
||||||
onMouseLeave
|
onMouseLeave
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user