Socket
Socket
Sign inDemoInstall

react-modal-global

Package Overview
Dependencies
Maintainers
1
Versions
84
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

react-modal-global - npm Package Compare versions

Comparing version 2023.4.1-experimental-1 to 2023.5.21-experimental

4

dist/index.d.ts

@@ -40,3 +40,3 @@ import EventEmitter from 'eventemitter3';

*/
layer: number | ("lowest" | "highest");
layer: number;
/**

@@ -153,3 +153,3 @@ * Keep all open modals mounted until the last one is closed.

*/
controller?: ModalController;
controller: ModalController;
}

@@ -156,0 +156,0 @@ declare function ModalContainer(props: ModalContainerProps): JSX.Element;

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

b)}}}_ModalController_active=new WeakMap;ModalController.Instance=new ModalController;let modalContext=react.createContext(null);function useModalWindow(){let a=react.useContext(modalContext);if(!a)throw Error("ModalError: useModalWindow must be used within a modal context");return a}let DEFAULT_STATE={active:!1,windows:[]};function useModalState(a=ModalController.Instance){let [b,c]=react.useState(DEFAULT_STATE);react.useEffect(()=>a.observe(c),[a]);return b}
function ModalContainer(a){let {active:b,windows:c}=useModalState(a.controller),e=a.className||"modal";a=c.reduce((d,f)=>{"highest"===f.params.layer&&(f.params.layer=d.length-1);"lowest"===f.params.layer&&(f.params.layer=0);const g=d[f.params.layer]||[];g.push(f);d[f.params.layer]=g;return d},[]);return jsxRuntime.jsx("div",Object.assign({className:classWithModifiers(e,b&&"active"),"aria-modal":!0,"aria-hidden":!b},{children:a.map(d=>{d=d.at(-1);let f=(null===d||void 0===d?0:d.params.closable)?stopPropagation(d.close):
void 0;return null==d?null:jsxRuntime.jsx("div",Object.assign({className:e+"__container",onClick:f},{children:jsxRuntime.jsx(modalContext.Provider,Object.assign({value:d||null},{children:react.createElement(d.component,Object.assign({},d.params,{key:d.params.id}))}))}),d.id)})}))}exports.ModalContainer=ModalContainer;exports.ModalController=ModalController;exports.ModalWindow=ModalWindow;exports.useModalState=useModalState;exports.useModalWindow=useModalWindow
function ModalContainer(a){var b;let {active:c,windows:e}=useModalState(a.controller),d=null!==(b=a.className)&&void 0!==b?b:"modal";a=e.reduceRight((f,g)=>{null==f[g.params.layer]&&(f[g.params.layer]=g);return f},[]);return jsxRuntime.jsx("div",Object.assign({className:classWithModifiers(d,c&&"active"),"aria-modal":!0,"aria-hidden":!c},{children:a.map(f=>jsxRuntime.jsx("div",Object.assign({className:classWithModifiers(d+"__container"),onClick:function(){f.params.closable&&stopPropagation(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))}))}exports.ModalContainer=ModalContainer;exports.ModalController=ModalController;exports.ModalWindow=ModalWindow;exports.useModalState=useModalState;exports.useModalWindow=useModalWindow
{
"name": "react-modal-global",
"version": "2023.04.01-experimental-1",
"version": "2023.05.21-experimental",
"description": "Highly reusable React Modal that can be run from useEffect.",

@@ -12,3 +12,3 @@ "main": "dist/index.ts",

"peerDependencies": {
"react": "18.x"
"react": "^18.2.0"
},

@@ -25,3 +25,2 @@ "dependencies": {

"@types/jest": "^29.4.0",
"@types/react": "^18.0.15",
"@types/uuid": "^9.0.1",

@@ -28,0 +27,0 @@ "eslint": "^8.6.0",

SocketSocket SOC 2 Logo

Product

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

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc