Skip to content

Commit 9e5b8cc

Browse files
committed
fix(Popover): handle hover mode with padding like dropdown
1 parent b696b15 commit 9e5b8cc

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed

src/runtime/components/overlays/Popover.vue

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
</slot>
1616
</HPopoverButton>
1717

18-
<div v-if="open" ref="container" :class="[ui.container, ui.width]" @mouseover="onMouseOver">
18+
<div v-if="open" ref="container" :class="[ui.container, ui.width]" :style="containerStyle" @mouseover="onMouseOver">
1919
<Transition appear v-bind="ui.transition">
2020
<HPopoverPanel :class="[ui.base, ui.background, ui.ring, ui.rounded, ui.shadow]" static>
2121
<slot name="panel" :open="open" :close="close" />
@@ -80,7 +80,7 @@ export default defineComponent({
8080
8181
const ui = computed<Partial<typeof appConfig.ui.popover>>(() => defu({}, props.ui, appConfig.ui.popover))
8282
83-
const popper = computed<PopperOptions>(() => defu({}, props.popper, ui.value.popper as PopperOptions))
83+
const popper = computed<PopperOptions>(() => defu(props.mode === 'hover' ? { offsetDistance: 0 } : {}, props.popper, ui.value.popper as PopperOptions))
8484
8585
const [trigger, container] = usePopper(popper.value)
8686
@@ -100,6 +100,12 @@ export default defineComponent({
100100
popoverApi.value = popoverProvidesSymbols.length && popoverProvides[popoverProvidesSymbols[0]]
101101
})
102102
103+
const containerStyle = computed(() => {
104+
const offsetDistance = (props.popper as PopperOptions)?.offsetDistance || (ui.value.popper as PopperOptions)?.offsetDistance || 8
105+
106+
return props.mode === 'hover' ? { paddingTop: `${offsetDistance}px`, paddingBottom: `${offsetDistance}px` } : {}
107+
})
108+
103109
function onMouseOver () {
104110
if (props.mode !== 'hover' || !popoverApi.value) {
105111
return
@@ -146,6 +152,7 @@ export default defineComponent({
146152
popover,
147153
trigger,
148154
container,
155+
containerStyle,
149156
onMouseOver,
150157
onMouseLeave
151158
}

0 commit comments

Comments
 (0)