Skip to content

Instantly share code, notes, and snippets.

@kirpalmakanga
Created December 22, 2021 16:07
Show Gist options
  • Save kirpalmakanga/fd2673059e869b97201e0b78c7bfac07 to your computer and use it in GitHub Desktop.
Save kirpalmakanga/fd2673059e869b97201e0b78c7bfac07 to your computer and use it in GitHub Desktop.
Helper to detect click outside of element
export const onClickOutside = (element: HTMLElement, callback: Function) => {
const handler = ({ target }: Event) => {
let currentElement = target;
do {
if (currentElement === element) {
return;
}
if (currentElement) {
({ parentNode: currentElement } =
currentElement as HTMLElement);
}
} while (currentElement);
callback();
};
document.addEventListener('click', handler);
return () => document.removeEventListener('click', handler);
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment