UNPKG

react-modal

Version:

Accessible modal dialog component for React.JS

78 lines (64 loc) 2.25 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.log = log; exports.resetState = resetState; function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } // Tracks portals that are open and emits events to subscribers var PortalOpenInstances = function PortalOpenInstances() { var _this = this; _classCallCheck(this, PortalOpenInstances); this.register = function (openInstance) { if (_this.openInstances.indexOf(openInstance) !== -1) { if (process.env.NODE_ENV !== "production") { // eslint-disable-next-line no-console console.warn("React-Modal: Cannot register modal instance that's already open"); } return; } _this.openInstances.push(openInstance); _this.emit("register"); }; this.deregister = function (openInstance) { var index = _this.openInstances.indexOf(openInstance); if (index === -1) { if (process.env.NODE_ENV !== "production") { // eslint-disable-next-line no-console console.warn("React-Modal: Unable to deregister " + openInstance + " as " + "it was never registered"); } return; } _this.openInstances.splice(index, 1); _this.emit("deregister"); }; this.subscribe = function (callback) { _this.subscribers.push(callback); }; this.emit = function (eventType) { _this.subscribers.forEach(function (subscriber) { return subscriber(eventType, // shallow copy to avoid accidental mutation _this.openInstances.slice()); }); }; this.openInstances = []; this.subscribers = []; }; var portalOpenInstances = new PortalOpenInstances(); /* eslint-disable no-console */ /* istanbul ignore next */ function log() { console.log("portalOpenInstances ----------"); console.log(portalOpenInstances.openInstances.length); portalOpenInstances.openInstances.forEach(function (p) { return console.log(p); }); console.log("end portalOpenInstances ----------"); } /* istanbul ignore next */ function resetState() { portalOpenInstances = new PortalOpenInstances(); } /* eslint-enable no-console */ exports.default = portalOpenInstances;