@4i/modal-manager 1.0.112 → 1.0.114
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json
CHANGED
@@ -1,10 +1,9 @@
|
|
1
1
|
import React from "react";
|
2
|
-
type ModalList = {
|
2
|
+
export type ModalList = {
|
3
3
|
[key: string]: React.ComponentType;
|
4
4
|
};
|
5
5
|
interface ModalProviderProps {
|
6
|
-
CustomComponent?: React.ComponentType;
|
7
6
|
modalList: ModalList;
|
8
7
|
}
|
9
|
-
declare const ModalProvider: ({
|
8
|
+
declare const ModalProvider: ({ modalList }: ModalProviderProps) => false | React.JSX.Element[];
|
10
9
|
export default ModalProvider;
|
@@ -50,11 +50,10 @@ var react_1 = __importStar(require("react"));
|
|
50
50
|
var ModalManager_1 = __importDefault(require("../utils/ModalManager"));
|
51
51
|
var ModalManager_2 = __importDefault(require("../utils/ModalManager"));
|
52
52
|
var ModalProvider = function (_a) {
|
53
|
-
var
|
53
|
+
var modalList = _a.modalList;
|
54
54
|
var _b = (0, react_1.useState)([]), data = _b[0], setData = _b[1];
|
55
55
|
var _c = (0, react_1.useState)([]), names = _c[0], setNames = _c[1];
|
56
56
|
var modalRef = (0, react_1.useRef)([]);
|
57
|
-
console.log("OPEN MODAL", names, data, modalList);
|
58
57
|
(0, react_1.useEffect)(function () {
|
59
58
|
var handleOpenModal = function (name, data) {
|
60
59
|
setData(function (prev) { return __spreadArray(__spreadArray([], prev, true), [data], false); });
|
@@ -111,17 +110,17 @@ var ModalProvider = function (_a) {
|
|
111
110
|
var refReducer = function (index, value) {
|
112
111
|
modalRef.current[index] = value;
|
113
112
|
};
|
114
|
-
return (
|
115
|
-
|
116
|
-
var Modal =
|
117
|
-
return (react_1.default.createElement("div", { key:
|
113
|
+
return (data.length !== 0 &&
|
114
|
+
data.map(function (item, i) {
|
115
|
+
var Modal = activeModals[i] || (function () { return react_1.default.createElement(react_1.default.Fragment, null); });
|
116
|
+
return (react_1.default.createElement("div", { key: item.modalId, onClick: function (e) {
|
118
117
|
handleCloseModal(i, e);
|
119
118
|
} },
|
120
119
|
react_1.default.createElement("div", { className: "backdrop_modal_manager" },
|
121
120
|
react_1.default.createElement("div", { ref: function (ref) {
|
122
121
|
refReducer(i, ref);
|
123
122
|
} },
|
124
|
-
react_1.default.createElement(Modal, __assign({
|
123
|
+
react_1.default.createElement(Modal, __assign({}, item.data))))));
|
125
124
|
}));
|
126
125
|
};
|
127
126
|
exports.default = ModalProvider;
|
@@ -2,21 +2,19 @@ import React, { useEffect, useRef, useState } from "react";
|
|
2
2
|
import manager from "../utils/ModalManager";
|
3
3
|
import modal from "../utils/ModalManager";
|
4
4
|
|
5
|
-
type ModalList = { [key: string]: React.ComponentType };
|
5
|
+
export type ModalList = { [key: string]: React.ComponentType };
|
6
6
|
|
7
7
|
interface ModalProviderProps {
|
8
|
-
CustomComponent?: React.ComponentType;
|
9
8
|
modalList: ModalList;
|
10
9
|
}
|
11
10
|
|
12
11
|
type TData = { [key: string]: any };
|
13
12
|
|
14
|
-
const ModalProvider = ({
|
13
|
+
const ModalProvider = ({ modalList }: ModalProviderProps) => {
|
15
14
|
const [data, setData] = useState<TData[]>([]);
|
16
15
|
const [names, setNames] = useState<string[]>([]);
|
17
16
|
const modalRef = useRef<any[]>([]);
|
18
17
|
|
19
|
-
console.log("OPEN MODAL", names, data, modalList);
|
20
18
|
useEffect(() => {
|
21
19
|
const handleOpenModal = (name: string, data: TData) => {
|
22
20
|
setData((prev: TData[]) => [...prev, data]);
|
@@ -85,13 +83,13 @@ const ModalProvider = ({ CustomComponent, modalList }: ModalProviderProps) => {
|
|
85
83
|
};
|
86
84
|
|
87
85
|
return (
|
88
|
-
|
89
|
-
|
90
|
-
const Modal =
|
86
|
+
data.length !== 0 &&
|
87
|
+
data.map((item, i) => {
|
88
|
+
const Modal = activeModals[i] || (() => <></>);
|
91
89
|
|
92
90
|
return (
|
93
91
|
<div
|
94
|
-
key={
|
92
|
+
key={item.modalId}
|
95
93
|
onClick={(e) => {
|
96
94
|
handleCloseModal(i, e);
|
97
95
|
}}
|
@@ -102,7 +100,7 @@ const ModalProvider = ({ CustomComponent, modalList }: ModalProviderProps) => {
|
|
102
100
|
refReducer(i, ref);
|
103
101
|
}}
|
104
102
|
>
|
105
|
-
<Modal
|
103
|
+
<Modal {...item.data} />
|
106
104
|
</div>
|
107
105
|
</div>
|
108
106
|
</div>
|
@@ -19,7 +19,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
19
19
|
};
|
20
20
|
Object.defineProperty(exports, "__esModule", { value: true });
|
21
21
|
var Manager_1 = __importDefault(require("./Manager"));
|
22
|
-
|
22
|
+
function uniqueID() {
|
23
|
+
return Math.floor(Math.random() * Date.now());
|
24
|
+
}
|
23
25
|
var constants = {
|
24
26
|
CHANGE: "change",
|
25
27
|
CLOSE: "close",
|
@@ -36,7 +38,7 @@ var ModalManager = /** @class */ (function (_super) {
|
|
36
38
|
};
|
37
39
|
ModalManager.prototype.call = function (name, data) {
|
38
40
|
if (data === void 0) { data = {}; }
|
39
|
-
this.create(name, { modalId: (
|
41
|
+
this.create(name, { modalId: uniqueID(), data: data });
|
40
42
|
};
|
41
43
|
ModalManager.prototype.close = function (position) {
|
42
44
|
this.emitter.emit(constants.CLOSE, position);
|