react-simple-modal-controller
Version:
simple and convenient modal-controller for react
34 lines (33 loc) • 1.14 kB
JavaScript
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
if (ar || !(i in from)) {
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
ar[i] = from[i];
}
}
return to.concat(ar || Array.prototype.slice.call(from));
};
import { modalReducer } from "./reducer";
var modalInfos = [];
var listeners = [];
export var emitChangeListener = function () {
for (var _i = 0, listeners_1 = listeners; _i < listeners_1.length; _i++) {
var listener = listeners_1[_i];
listener();
}
};
export var dispatchModal = function (action) {
modalInfos = modalReducer(modalInfos, action);
emitChangeListener();
};
export var registerModalStore = {
subscribe: function (listener) {
listeners = __spreadArray(__spreadArray([], listeners, true), [listener], false);
return function () {
listeners = listeners.filter(function (l) { return l !== listener; });
};
},
getSnapshot: function () {
return modalInfos;
},
};