UNPKG

@jyoketsu/click-outside-react

Version:

```bash yarn add @jyoketsu/click-outside-react ```

3 lines (2 loc) 1.06 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e,t=require("react"),n=(e=t)&&"object"==typeof e&&"default"in e?e.default:e;function r(){return(r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}exports.ClickOutside=function(e){var c=e.style,o=e.onClickOutside,u=e.children,i=t.useState(!1),d=i[0],s=i[1],a=t.useRef(null);function l(e){if("touchend"===e.type&&s(!0),"click"!==e.type||!d){var t=a.current;t&&!t.contains(e.target)&&o(e)}}return t.useEffect((function(){return document.addEventListener("touchend",l,!0),document.addEventListener("click",l,!0),document.addEventListener("contextmenu",l,!0),function(){document.removeEventListener("touchend",l,!0),document.removeEventListener("click",l,!0),document.removeEventListener("contextmenu",l,!0)}}),[]),n.createElement("div",{ref:a,style:r({},{width:"fit-content"},c||{})},u)}; //# sourceMappingURL=click-outside-react.cjs.production.min.js.map