Skip to content

Commit 470df20

Browse files
driskullbenelan
authored andcommitted
fix(tooltip): close tooltips on prevented pointer move events (#11557)
**Related Issue:** #11541 ## Summary - Close tooltip even when `pointer-move` event is cancelled - Add test
1 parent 78f3543 commit 470df20

File tree

2 files changed

+30
-0
lines changed

2 files changed

+30
-0
lines changed

packages/calcite-components/src/components/tooltip/TooltipManager.ts

+1
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,7 @@ export default class TooltipManager {
9898

9999
private pointerMoveHandler = (event: PointerEvent): void => {
100100
if (event.defaultPrevented) {
101+
this.closeHoveredTooltip();
101102
return;
102103
}
103104

packages/calcite-components/src/components/tooltip/tooltip.e2e.ts

+29
Original file line numberDiff line numberDiff line change
@@ -348,6 +348,35 @@ describe("calcite-tooltip", () => {
348348
expect(await positionContainer.isVisible()).toBe(false);
349349
});
350350

351+
it("should close when hover event is prevented", async () => {
352+
const page = await newE2EPage();
353+
await page.setContent(html`
354+
<calcite-tooltip reference-element="ref">content</calcite-tooltip>
355+
<div id="button-container">
356+
<div id="ref">referenceElement</div>
357+
</div>
358+
`);
359+
await skipAnimations(page);
360+
await page.waitForChanges();
361+
362+
const positionContainer = await page.find(`calcite-tooltip >>> .${CSS.positionContainer}`);
363+
364+
const ref = await page.find("#ref");
365+
await ref.hover();
366+
await page.waitForTimeout(TOOLTIP_OPEN_DELAY_MS);
367+
expect(await positionContainer.isVisible()).toBe(true);
368+
369+
await page.$eval("#button-container", (buttonContainer) => {
370+
buttonContainer.addEventListener("pointermove", (event) => {
371+
event.preventDefault();
372+
});
373+
});
374+
375+
await ref.hover();
376+
await page.waitForTimeout(TOOLTIP_CLOSE_DELAY_MS);
377+
expect(await positionContainer.isVisible()).toBe(false);
378+
});
379+
351380
it("should honor hover interaction with span inside", async () => {
352381
const page = await newE2EPage();
353382

0 commit comments

Comments
 (0)