Skip to content

Commit e4e7097

Browse files
committed
fixup! refactor(multiple): migrate Listbox and Tabs to ClickEventManager
1 parent 19344ff commit e4e7097

2 files changed

Lines changed: 10 additions & 5 deletions

File tree

src/aria/private/behaviors/event-manager/click-event-manager.ts

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,14 @@ export function isFakeClick(event: PointerEvent): boolean {
2626
return event.detail === 0 || !event.pointerType;
2727
}
2828

29+
/**
30+
* Gets whether an event is a programmatic click (e.g. triggered by .click() or .dispatchEvent()).
31+
* Programmatic events are untrusted.
32+
*/
33+
export function isProgrammaticClick(event: Event): boolean {
34+
return !event.isTrusted;
35+
}
36+
2937
/**
3038
* An event manager that is specialized for handling click events.
3139
*
@@ -78,6 +86,7 @@ export class ClickEventManager<T extends PointerEvent> extends EventManager<T> {
7886
}
7987

8088
_isMatch(event: T, modifiers: ModifierInputs) {
81-
return !isFakeClick(event) && hasModifiers(event, modifiers);
89+
const isAllowed = isProgrammaticClick(event) || !isFakeClick(event);
90+
return isAllowed && hasModifiers(event, modifiers);
8291
}
8392
}

src/aria/tabs/tabs.spec.ts

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -53,10 +53,6 @@ describe('Tabs', () => {
5353
target.dispatchEvent(
5454
new PointerEvent('click', {
5555
bubbles: true,
56-
detail: 1,
57-
pointerType: 'mouse',
58-
clientX: 1,
59-
clientY: 1,
6056
...eventInit,
6157
}),
6258
);

0 commit comments

Comments
 (0)