create-farcaster-mini-app/src/hooks/useDetectClickOutside.ts
Shreyaschorge 0d43b35c28
Revert "Merge pull request #15 from neynarxyz/shreyas-formatting"
This reverts commit b1fdfc19a92241638692d58494f48ce1bb25df74, reversing
changes made to b9e2087bd8cd9e8ed7a5862936609b5bf29aa911.
2025-07-16 17:21:12 +05:30

19 lines
522 B
TypeScript

import { useEffect } from 'react';
export function useDetectClickOutside<T extends HTMLElement>(
ref: React.RefObject<T | null>,
callback: () => void
) {
useEffect(() => {
function handleClickOutside(event: MouseEvent) {
if (ref.current && !ref.current.contains(event.target as Node)) {
callback();
}
}
document.addEventListener('mousedown', handleClickOutside);
return () => {
document.removeEventListener('mousedown', handleClickOutside);
};
}, [ref, callback]);
}