Skip to content

Commit 67fb1bd

Browse files
authored
fix(useGraceArea): add nil guard for hover target in grace area creation (#2553)
1 parent bbf3300 commit 67fb1bd

1 file changed

Lines changed: 5 additions & 3 deletions

File tree

packages/core/src/shared/useGraceArea.ts

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,9 @@ export function useGraceArea(triggerElement: Ref<HTMLElement | undefined>, conta
2121
isPointerInTransit.value = false
2222
}
2323

24-
function handleCreateGraceArea(event: PointerEvent, hoverTarget: HTMLElement) {
24+
function handleCreateGraceArea(event: PointerEvent, hoverTarget: HTMLElement | undefined) {
25+
if (!hoverTarget)
26+
return
2527
const currentTarget = event.currentTarget as HTMLElement
2628
const exitPoint = { x: event.clientX, y: event.clientY }
2729
const exitSide = getExitSideFromRect(exitPoint, currentTarget.getBoundingClientRect())
@@ -34,8 +36,8 @@ export function useGraceArea(triggerElement: Ref<HTMLElement | undefined>, conta
3436

3537
watchEffect((cleanupFn) => {
3638
if (triggerElement.value && containerElement.value) {
37-
const handleTriggerLeave = (event: PointerEvent) => handleCreateGraceArea(event, containerElement.value!)
38-
const handleContentLeave = (event: PointerEvent) => handleCreateGraceArea(event, triggerElement.value!)
39+
const handleTriggerLeave = (event: PointerEvent) => handleCreateGraceArea(event, containerElement.value)
40+
const handleContentLeave = (event: PointerEvent) => handleCreateGraceArea(event, triggerElement.value)
3941

4042
triggerElement.value.addEventListener('pointerleave', handleTriggerLeave)
4143
containerElement.value.addEventListener('pointerleave', handleContentLeave)

0 commit comments

Comments
 (0)