useClickAway() reacts to clicks outside the bound element, and calls the expression that is passed in when this event is detected.
Suppose you're working on a Modal component that renders a dialog box, and you wish to close the modal if the user clicks away this is the ideal scenario for useClickAway() custom hook.
Using npm:
npm i use-click-away --saveImport the hook:
import { useClickAway } from "use-click-away";export default () => {
const [modal, setModal] = React.useState(false);
const clickRef = React.useRef("");
useClickAway(clickRef, () => {
setModal(false);
});
return (
<div className="container">
<button onClick={() => setModal(true)}>Show Modal</button>
{modal && <div ref={clickRef} className="modal">Modal Content</div>}
</div>
);
}
clickRef: element- The dom element to bind our hook.callback: function- The callback that runs after user click