Socket
Socket
Sign inDemoInstall

react-useportal

Package Overview
Dependencies
6
Maintainers
1
Versions
49
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 0.1.30 to 0.1.31

dist/examples.e31bb0bc.js

2

dist/usePortal.js
parcelRequire=function(e,r,t,n){var i,o="function"==typeof parcelRequire&&parcelRequire,u="function"==typeof require&&require;function f(t,n){if(!r[t]){if(!e[t]){var i="function"==typeof parcelRequire&&parcelRequire;if(!n&&i)return i(t,!0);if(o)return o(t,!0);if(u&&"string"==typeof t)return u(t);var c=new Error("Cannot find module '"+t+"'");throw c.code="MODULE_NOT_FOUND",c}p.resolve=function(r){return e[t][1][r]||r},p.cache={};var l=r[t]=new f.Module(t);e[t][0].call(l.exports,p,l,l.exports,this)}return r[t].exports;function p(e){return f(p.resolve(e))}}f.isParcelRequire=!0,f.Module=function(e){this.id=e,this.bundle=f,this.exports={}},f.modules=e,f.cache=r,f.parent=o,f.register=function(r,t){e[r]=[function(e,r){r.exports=t},{}]};for(var c=0;c<t.length;c++)try{f(t[c])}catch(e){i||(i=e)}if(t.length){var l=f(t[t.length-1]);"object"==typeof exports&&"undefined"!=typeof module?module.exports=l:"function"==typeof define&&define.amd?define(function(){return l}):n&&(this[n]=l)}if(parcelRequire=f,i)throw i;return f}({"CTod":[function(require,module,exports) {
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.usePortal=void 0;var e=require("react"),t=require("react-dom");const n=({closeOnOutsideClick:n=!0,closeOnEsc:o=!0,renderOnClickedElement:r,renderBelowClickedElement:c,bindTo:u,isOpen:d=!1,stateful:l=!0}={})=>{const[s,a]=(0,e.useState)(d),i=(0,e.useRef)(),p=(0,e.useRef)(document&&document.createElement("div")),m=u&&(0,t.findDOMNode)(u)||document&&document.body,v=(0,e.useCallback)(e=>{o&&27===e.keyCode&&l&&a(!1)},[l]),f=(0,e.useCallback)(e=>{e&&e.nativeEvent&&e.nativeEvent.stopImmediatePropagation();const{left:t,top:n,height:o}=e.target.getBoundingClientRect();r?p.current.style=`\n height: 0px;\n position: absolute;\n left: ${t}px;\n top: ${n}px;\n `:c&&(p.current.style=`\n position: absolute;\n left: ${t}px;\n top: ${n+o}px;\n `),l&&a(!0)},[l,a,p,r]),k=(0,e.useCallback)(({target:e,button:t})=>{p.current.contains(e)||0!==t||l&&n&&a(!1)},[l,a]);return(0,e.useEffect)(()=>(m.appendChild(p.current),document&&document.addEventListener("keydown",v),document&&document.addEventListener("click",k),()=>{document&&document.removeEventListener("keydown",v),document&&document.removeEventListener("click",k),m.removeChild(p.current)}),[m,v,k]),{isOpen:s,openPortal:f,onMouseDown:v,ref:i,closePortal:()=>a(!1),togglePortal:e=>s?a(!1):f(e),Portal:({children:e})=>(0,t.createPortal)(e,p.current),bind:{onMouseDown:v,ref:i}}};exports.usePortal=n;var o=n;exports.default=o;
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.usePortal=n,exports.default=void 0;var e=require("react"),t=require("react-dom");function n({closeOnOutsideClick:n=!0,closeOnEsc:r=!0,renderOnClickedElement:o,renderBelowClickedElement:u,bindTo:c,isOpen:l=!1,stateful:s=!0}={}){const[a,i]=(0,e.useState)(l),d=(0,e.useRef)(a),p=(0,e.useCallback)(e=>{d.current=e,i(e)},[a,d.current]),m=(0,e.useRef)(),f=(0,e.useRef)(document.createElement("div")),v=(0,e.useMemo)(()=>c&&(0,t.findDOMNode)(c)||document&&document.body,[]),b=(0,e.useCallback)(e=>{27===e.keyCode&&s&&r&&p(!1)},[]),k=(0,e.useCallback)(e=>{if(null==e)return setTimeout(()=>s&&p(!0),0);e&&e.nativeEvent&&e.nativeEvent.stopImmediatePropagation();const{left:t,top:n,height:r}=e.target.getBoundingClientRect();o?f.current.style=`\n height: 0px;\n position: absolute;\n left: ${t}px;\n top: ${n}px;\n `:u&&(f.current.style=`\n position: absolute;\n left: ${t}px;\n top: ${n+r}px;\n `),s&&p(!0)},[s,f]),C=(0,e.useCallback)(()=>{d.current&&p(!1)},[a,d.current]),E=(0,e.useCallback)(({target:e,button:t})=>{!f.current.contains(e)&&0===t&&f.current&&d.current&&s&&n&&C()},[a]);(0,e.useEffect)(()=>(v.appendChild(f.current),document.addEventListener("keydown",b),document.addEventListener("click",E),()=>{document.removeEventListener("keydown",b),document.removeEventListener("click",E),v.removeChild(f.current)}),[E,b]);const g=(0,e.useCallback)(e=>a?p(!1):k(e),[a,d.current]),x=({children:e})=>(0,t.createPortal)(e,f.current);return Object.assign([k,C,d.current,x,g],{isOpen:d.current,openPortal:k,onMouseDown:b,ref:m,closePortal:C,togglePortal:g,Portal:x,bind:{onMouseDown:b,ref:m}})}var r=n;exports.default=r;
},{}]},{},["CTod"], null)
//# sourceMappingURL=/usePortal.js.map
{
"name": "react-useportal",
"version": "0.1.30",
"version": "0.1.31",
"homepage": "https://codesandbox.io/s/w6jp7z4pkk",

@@ -40,7 +40,10 @@ "main": "dist/usePortal.js",

},
"files": [
"dist"
],
"scripts": {
"dev": "parcel examples/index.html --open",
"build": "parcel build --target node ./src/*",
"build": "parcel build --target node ./usePortal.js",
"publish": "yarn build && yarn publish"
}
}
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc