@@ -11,7 +11,7 @@ import {
1111 reactive ,
1212 watchEffect ,
1313} from ' vue'
14- import { useForwardExpose } from ' @/shared'
14+ import { isNullish , useForwardExpose } from ' @/shared'
1515
1616export interface DismissableLayerProps extends PrimitiveProps {
1717 /**
@@ -56,6 +56,7 @@ export type DismissableLayerPrivateEmits = DismissableLayerEmits & {
5656export 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
141141watchEffect ((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