Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 238e0b4

Browse files
authored
fix(Combobox): restore body pointer-event style (#2334)
1 parent 6502375 commit 238e0b4

File tree

1 file changed

+5
-4
lines changed

1 file changed

+5
-4
lines changed

packages/core/src/DismissableLayer/DismissableLayer.vue

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import {
1111
reactive,
1212
watchEffect,
1313
} from 'vue'
14-
import { useForwardExpose } from '@/shared'
14+
import { isNullish, useForwardExpose } from '@/shared'
1515
1616
export interface DismissableLayerProps extends PrimitiveProps {
1717
/**
@@ -56,6 +56,7 @@ export type DismissableLayerPrivateEmits = DismissableLayerEmits & {
5656
export const context = reactive({
5757
layersRoot: new Set<HTMLElement>(),
5858
layersWithOutsidePointerEventsDisabled: new Set<HTMLElement>(),
59+
originalBodyPointerEvents: undefined as string | undefined,
5960
branches: new Set<HTMLElement>(),
6061
})
6162
</script>
@@ -137,13 +138,12 @@ onKeyStroke('Escape', (event) => {
137138
emits('dismiss')
138139
})
139140
140-
let originalBodyPointerEvents: string
141141
watchEffect((cleanupFn) => {
142142
if (!layerElement.value)
143143
return
144144
if (props.disableOutsidePointerEvents) {
145145
if (context.layersWithOutsidePointerEventsDisabled.size === 0) {
146-
originalBodyPointerEvents = ownerDocument.value.body.style.pointerEvents
146+
context.originalBodyPointerEvents = ownerDocument.value.body.style.pointerEvents
147147
ownerDocument.value.body.style.pointerEvents = 'none'
148148
}
149149
context.layersWithOutsidePointerEventsDisabled.add(layerElement.value)
@@ -154,8 +154,9 @@ watchEffect((cleanupFn) => {
154154
if (
155155
props.disableOutsidePointerEvents
156156
&& context.layersWithOutsidePointerEventsDisabled.size === 1
157+
&& !isNullish(context.originalBodyPointerEvents)
157158
) {
158-
ownerDocument.value.body.style.pointerEvents = originalBodyPointerEvents
159+
ownerDocument.value.body.style.pointerEvents = context.originalBodyPointerEvents
159160
}
160161
})
161162
})

0 commit comments

Comments
 (0)