Socket
Socket
Sign inDemoInstall

react-modal-global

Package Overview
Dependencies
7
Maintainers
1
Versions
82
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 2023.5.26-experimental-5 to 2023.5.26-experimental-6

2

dist/index.d.ts

@@ -301,4 +301,4 @@ import EventEmitter from 'eventemitter3';

*/
declare function ModalPortal(props: ModalPortalProps): React.ReactPortal | null;
declare function ModalPortal(props: ModalPortalProps): JSX.Element | null;
export { ModalContainer, ModalController, ModalPortal, ModalWindow, useModalSnapshot, useModalWindow };

@@ -15,5 +15,5 @@ 'use strict';Object.defineProperty(exports,"__esModule",{value:!0});var EventEmitter=require("eventemitter3"),jsxRuntime=require("react/jsx-runtime"),react=require("react"),reactDom=require("react-dom");function _interopDefaultLegacy(a){return a&&"object"===typeof a&&"default"in a?a:{"default":a}}var EventEmitter__default=_interopDefaultLegacy(EventEmitter);

function useModalWindow(){let a=react.useContext(modalContext);if(!a)throw Error(`ModalError: ${useModalWindow.name} must be used within a modal context.`);return a}function useModalSnapshot(a){return react.useSyncExternalStore(a.subscribe.bind(a),a.getSnapshot.bind(a))}
function ModalContainer(a){var b;let {active:c,windows:d}=useModalSnapshot(a.controller),e=null!==(b=a.className)&&void 0!==b?b:"modal";a=d.reduceRight((f,g)=>{null==f[g.params.layer]&&(f[g.params.layer]=g);return f},[]);return jsxRuntime.jsx("div",Object.assign({className:classWithModifiers(e,c&&"active"),"aria-modal":!0,"aria-hidden":!c},{children:a.map(f=>jsxRuntime.jsx("div",Object.assign({className:classWithModifiers(e+"__container"),onClick:stopPropagation(function(){f.params.closable&&f.close()})},
{children:jsxRuntime.jsx(modalContext.Provider,Object.assign({value:f},{children:react.createElement(f.component,Object.assign({},f.params,{key:f.id}))}))}),f.id))}))}
function ModalPortal(a){function b(f){null!=f&&e(f)}let c=react.useId();react.useEffect(()=>()=>{a.controller.closeById(c)},[a.controller,c]);let [d,e]=react.useState(null);react.useEffect(()=>{let f=a.controller.open(()=>jsxRuntime.jsx("div",{ref:b}),Object.assign(Object.assign({},a.params),{id:c}));if(a.onClose)f.on("close",a.onClose);return()=>{f.close()}},[a.controller,c]);return null==d?null:reactDom.createPortal(a.children,d,c)}exports.ModalContainer=ModalContainer;exports.ModalController=ModalController;
exports.ModalPortal=ModalPortal;exports.ModalWindow=ModalWindow;exports.useModalSnapshot=useModalSnapshot;exports.useModalWindow=useModalWindow
function ModalContainer(a){var b;let {active:c,windows:d}=useModalSnapshot(a.controller),e=null!==(b=a.className)&&void 0!==b?b:"modal";a=d.reduceRight((g,f)=>{null==g[f.params.layer]&&(g[f.params.layer]=f);return g},[]);return jsxRuntime.jsx("div",Object.assign({className:classWithModifiers(e,c&&"active"),"aria-modal":!0,"aria-hidden":!c},{children:a.map(g=>jsxRuntime.jsx("div",Object.assign({className:classWithModifiers(e+"__container"),onClick:stopPropagation(function(){g.params.closable&&g.close()})},
{children:jsxRuntime.jsx(modalContext.Provider,Object.assign({value:g},{children:react.createElement(g.component,Object.assign({},g.params,{key:g.id}))}))}),g.id))}))}
function ModalPortal(a){function b(f){f=null===f||void 0===f?void 0:f.parentElement;null!=f&&g(f)}let c=react.useId(),d=react.useRef(new ModalWindow(()=>null,{})),[e,g]=react.useState(null);react.useEffect(()=>{let f=a.controller.open(()=>jsxRuntime.jsx("div",{style:{display:"none"},ref:b}),Object.assign(Object.assign({},a.params),{id:c}));d.current=f;if(a.onClose)f.on("close",a.onClose);return()=>f.close()},[a.controller,c]);return null==e?null:jsxRuntime.jsx(modalContext.Provider,Object.assign({value:d.current},
{children:reactDom.createPortal(a.children,e,c)}))}exports.ModalContainer=ModalContainer;exports.ModalController=ModalController;exports.ModalPortal=ModalPortal;exports.ModalWindow=ModalWindow;exports.useModalSnapshot=useModalSnapshot;exports.useModalWindow=useModalWindow
{
"name": "react-modal-global",
"version": "2023.5.26-experimental-5",
"version": "2023.5.26-experimental-6",
"description": "Highly reusable React Modal that can be run from useEffect.",

@@ -5,0 +5,0 @@ "main": "dist/index.ts",

SocketSocket SOC 2 Logo

Product

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

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc