Skip to content

Commit

Permalink
Fix click leaking through to DOM element underneath
Browse files Browse the repository at this point in the history
See comment, although this is quite hack - I'm torn on whether this
is worth it for the bugfix. Upgrading react-aria doesn't fix it either
(and also breaks everything in React strict mode).

Fixes #762
  • Loading branch information
dbkr committed Nov 22, 2022
1 parent 46e429c commit 098be75
Showing 1 changed file with 13 additions and 0 deletions.
13 changes: 13 additions & 0 deletions src/ListBox.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,19 @@ function Option<T>({ item, state, className }: OptionProps<T>) {
ref
);

// Hack: remove the onPointerUp event handler and re-wire it to
// onClick. Chrome Android triggers a click event after the onpointerup
// event which leaks through to elements underneath the z-indexed select
// popover. preventDefault / stopPropagation don't have any effect, even
// adding just a dummy onClick handler still doesn't work, but it's fine
// if we handle just onClick.
// https://github.com/vector-im/element-call/issues/762
const origPointerUp = optionProps.onPointerUp;
delete optionProps.onPointerUp;
optionProps.onClick = (e) => {
origPointerUp(e as unknown as React.PointerEvent<HTMLElement>);
};

return (
<li
{...optionProps}
Expand Down

0 comments on commit 098be75

Please sign in to comment.