Skip to content

Commit a8a5624

Browse files
authored
fix: leaving hovered state when pointer hovers child element (#194)
1 parent d237079 commit a8a5624

File tree

2 files changed

+9
-6
lines changed

2 files changed

+9
-6
lines changed

src/features/eventListeners.ts

-4
Original file line numberDiff line numberDiff line change
@@ -50,10 +50,6 @@ export function registerEventListeners<T extends string, V extends MotionVariant
5050
hovered.value = false
5151
tapped.value = false
5252
})
53-
useEventListener(target as any, 'mouseout', () => {
54-
hovered.value = false
55-
tapped.value = false
56-
})
5753
}
5854

5955
// Tapped

tests/components.spec.ts

+9-2
Original file line numberDiff line numberDiff line change
@@ -120,9 +120,16 @@ describe.each([
120120

121121
expect(el.style.transform).toEqual('scale(1.2) translateZ(0px)')
122122

123-
// Should return to initial
123+
// Should do nothing on 'mouseout'
124+
await wrapper.trigger('mouseout')
125+
// TODO: figure out a better way to test if a variant is not triggered than timeouts
126+
await nextTick()
127+
await new Promise((resolve) => setTimeout(resolve, 1000))
128+
await waitForMockCalls(onComplete, 0)
129+
130+
// Should return to initial, 'mouseleave' triggers when pointer left element and all descendants
124131
await wrapper.trigger('mouseleave')
125-
await waitForMockCalls(onComplete)
132+
await waitForMockCalls(onComplete, 1)
126133

127134
expect(el.style.transform).toEqual('scale(1) translateZ(0px)')
128135
})

0 commit comments

Comments
 (0)