Use capture on InputSelect click outside listener
This commit is contained in:
@@ -110,13 +110,17 @@ const InputSelect = (props: Props) => {
|
|||||||
|
|
||||||
// Custom click outside handling rather than using `hideOnClickOutside` from reakit so that we can
|
// Custom click outside handling rather than using `hideOnClickOutside` from reakit so that we can
|
||||||
// prevent event bubbling.
|
// prevent event bubbling.
|
||||||
useOnClickOutside(contentRef, (event) => {
|
useOnClickOutside(
|
||||||
|
contentRef,
|
||||||
|
(event) => {
|
||||||
if (select.visible) {
|
if (select.visible) {
|
||||||
event.stopPropagation();
|
event.stopPropagation();
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
select.hide();
|
select.hide();
|
||||||
}
|
}
|
||||||
});
|
},
|
||||||
|
{ capture: true }
|
||||||
|
);
|
||||||
|
|
||||||
React.useEffect(() => {
|
React.useEffect(() => {
|
||||||
previousValue.current = value;
|
previousValue.current = value;
|
||||||
|
|||||||
@@ -9,7 +9,8 @@ import useEventListener from "./useEventListener";
|
|||||||
*/
|
*/
|
||||||
export default function useOnClickOutside(
|
export default function useOnClickOutside(
|
||||||
ref: React.RefObject<HTMLElement | null>,
|
ref: React.RefObject<HTMLElement | null>,
|
||||||
callback?: (event: MouseEvent | TouchEvent) => void
|
callback?: (event: MouseEvent | TouchEvent) => void,
|
||||||
|
options: AddEventListenerOptions = {}
|
||||||
) {
|
) {
|
||||||
const listener = React.useCallback(
|
const listener = React.useCallback(
|
||||||
(event: MouseEvent | TouchEvent) => {
|
(event: MouseEvent | TouchEvent) => {
|
||||||
@@ -22,6 +23,6 @@ export default function useOnClickOutside(
|
|||||||
[ref, callback]
|
[ref, callback]
|
||||||
);
|
);
|
||||||
|
|
||||||
useEventListener("mousedown", listener, window);
|
useEventListener("mousedown", listener, window, options);
|
||||||
useEventListener("touchstart", listener, window);
|
useEventListener("touchstart", listener, window, options);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user