mirror of
https://github.com/Stremio/stremio-web.git
synced 2026-03-11 21:27:05 +00:00
27 lines
807 B
TypeScript
27 lines
807 B
TypeScript
// Copyright (C) 2017-2024 Smart code 203358507
|
|
|
|
import { useEffect, useRef } from 'react';
|
|
|
|
const useOutsideClick = (callback: () => void) => {
|
|
const ref = useRef<HTMLDivElement>(null);
|
|
|
|
useEffect(() => {
|
|
const handleClickOutside = (event: MouseEvent | TouchEvent) => {
|
|
if (ref.current && !ref.current.contains(event.target as Node)) {
|
|
callback();
|
|
}
|
|
};
|
|
|
|
document.addEventListener('mouseup', handleClickOutside);
|
|
document.addEventListener('touchend', handleClickOutside);
|
|
|
|
return () => {
|
|
document.removeEventListener('mouseup', handleClickOutside);
|
|
document.removeEventListener('touchend', handleClickOutside);
|
|
};
|
|
}, [callback]);
|
|
|
|
return ref;
|
|
};
|
|
|
|
export default useOutsideClick;
|