mirror of
https://github.com/SigNoz/signoz.git
synced 2025-12-28 23:56:13 +00:00
* fix: fixed view trace or logs button on graph not disappearing on outside click * fix: removed older function
31 lines
767 B
TypeScript
31 lines
767 B
TypeScript
import { useEffect } from 'react';
|
|
|
|
type UseClickOutsideProps = {
|
|
ref: React.RefObject<HTMLElement>;
|
|
onClickOutside: () => void;
|
|
eventType?: 'mousedown' | 'mouseup' | 'click' | 'dblclick';
|
|
};
|
|
|
|
const useClickOutside = ({
|
|
ref,
|
|
onClickOutside,
|
|
eventType,
|
|
}: UseClickOutsideProps): void => {
|
|
const handleClickOutside = (event: MouseEvent): void => {
|
|
if (ref.current && !ref.current.contains(event.target as Node)) {
|
|
onClickOutside();
|
|
}
|
|
};
|
|
|
|
useEffect(() => {
|
|
document.addEventListener(eventType ?? 'click', handleClickOutside);
|
|
|
|
return (): void => {
|
|
document.removeEventListener(eventType ?? 'click', handleClickOutside);
|
|
};
|
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
}, [ref, onClickOutside]);
|
|
};
|
|
|
|
export default useClickOutside;
|