Use Click Outside
Handle Click outside of an element.
import { useEffect, type RefObject } from "react";
export function useClickOutside(
ref: RefObject<HTMLElement>,
handler: () => void
) {
useEffect(() => {
const handleClickOutside = (event: MouseEvent) => {
if (ref.current && !ref.current.contains(event.target as Node)) {
handler();
}
};
document.addEventListener("mousedown", handleClickOutside);
return () =>
document.removeEventListener("mousedown", handleClickOutside);
}, [ref, handler]);
}