@tamagui/portal 1.61.2 → 1.62.0
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/dist/cjs/GorhomPortal.js +59 -152
- package/dist/cjs/GorhomPortal.js.map +1 -1
- package/dist/cjs/GorhomPortal.native.js +179 -0
- package/dist/cjs/GorhomPortal.native.js.map +6 -0
- package/dist/cjs/Portal.js +13 -29
- package/dist/cjs/Portal.js.map +1 -1
- package/dist/cjs/Portal.native.js +13 -30
- package/dist/cjs/Portal.native.js.map +1 -1
- package/dist/cjs/PortalProps.js +3 -6
- package/dist/cjs/PortalProps.js.map +1 -1
- package/dist/cjs/PortalProps.native.js +15 -0
- package/dist/cjs/PortalProps.native.js.map +6 -0
- package/dist/cjs/index.js +4 -8
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/index.native.js +24 -0
- package/dist/cjs/index.native.js.map +6 -0
- package/dist/esm/GorhomPortal.js +53 -137
- package/dist/esm/GorhomPortal.js.map +1 -1
- package/dist/esm/Portal.js +6 -11
- package/dist/esm/Portal.js.map +1 -1
- package/package.json +5 -5
- package/dist/esm/Portal.native.js +0 -34
- package/dist/esm/Portal.native.js.map +0 -6
package/dist/cjs/GorhomPortal.js
CHANGED
|
@@ -1,20 +1,15 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
var __create = Object.create;
|
|
3
2
|
var __defProp = Object.defineProperty;
|
|
4
3
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
4
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
-
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __getProtoOf = Object.getPrototypeOf, __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
6
|
var __export = (target, all) => {
|
|
9
7
|
for (var name in all)
|
|
10
|
-
__defProp(target, name, { get: all[name], enumerable:
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: !0 });
|
|
9
|
+
}, __copyProps = (to, from, except, desc) => {
|
|
10
|
+
if (from && typeof from == "object" || typeof from == "function")
|
|
14
11
|
for (let key of __getOwnPropNames(from))
|
|
15
|
-
|
|
16
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
-
}
|
|
12
|
+
!__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
18
13
|
return to;
|
|
19
14
|
};
|
|
20
15
|
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
@@ -22,10 +17,9 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
22
17
|
// file that has been converted to a CommonJS file using a Babel-
|
|
23
18
|
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
19
|
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable:
|
|
20
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: !0 }) : target,
|
|
26
21
|
mod
|
|
27
|
-
));
|
|
28
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
22
|
+
)), __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
|
|
29
23
|
var GorhomPortal_exports = {};
|
|
30
24
|
__export(GorhomPortal_exports, {
|
|
31
25
|
ACTIONS: () => ACTIONS,
|
|
@@ -36,55 +30,23 @@ __export(GorhomPortal_exports, {
|
|
|
36
30
|
usePortal: () => usePortal
|
|
37
31
|
});
|
|
38
32
|
module.exports = __toCommonJS(GorhomPortal_exports);
|
|
39
|
-
var import_jsx_runtime = require("react/jsx-runtime");
|
|
40
|
-
var import_core = require("@tamagui/core");
|
|
41
|
-
var import_react = __toESM(require("react"));
|
|
42
|
-
var ACTIONS = /* @__PURE__ */ ((ACTIONS2) => {
|
|
43
|
-
ACTIONS2[ACTIONS2["REGISTER_HOST"] = 0] = "REGISTER_HOST";
|
|
44
|
-
ACTIONS2[ACTIONS2["DEREGISTER_HOST"] = 1] = "DEREGISTER_HOST";
|
|
45
|
-
ACTIONS2[ACTIONS2["ADD_UPDATE_PORTAL"] = 2] = "ADD_UPDATE_PORTAL";
|
|
46
|
-
ACTIONS2[ACTIONS2["REMOVE_PORTAL"] = 3] = "REMOVE_PORTAL";
|
|
47
|
-
return ACTIONS2;
|
|
48
|
-
})(ACTIONS || {});
|
|
33
|
+
var import_core = require("@tamagui/core"), import_react = __toESM(require("react")), import_jsx_runtime = require("react/jsx-runtime"), ACTIONS = /* @__PURE__ */ ((ACTIONS2) => (ACTIONS2[ACTIONS2.REGISTER_HOST = 0] = "REGISTER_HOST", ACTIONS2[ACTIONS2.DEREGISTER_HOST = 1] = "DEREGISTER_HOST", ACTIONS2[ACTIONS2.ADD_UPDATE_PORTAL = 2] = "ADD_UPDATE_PORTAL", ACTIONS2[ACTIONS2.REMOVE_PORTAL = 3] = "REMOVE_PORTAL", ACTIONS2))(ACTIONS || {});
|
|
49
34
|
const INITIAL_STATE = {};
|
|
50
|
-
const registerHost = (state, hostName) => {
|
|
51
|
-
|
|
52
|
-
state[hostName] = [];
|
|
53
|
-
}
|
|
54
|
-
return state;
|
|
55
|
-
};
|
|
56
|
-
const deregisterHost = (state, hostName) => {
|
|
57
|
-
delete state[hostName];
|
|
58
|
-
return state;
|
|
59
|
-
};
|
|
60
|
-
const addUpdatePortal = (state, hostName, portalName, node) => {
|
|
61
|
-
if (!(hostName in state)) {
|
|
62
|
-
state = registerHost(state, hostName);
|
|
63
|
-
}
|
|
35
|
+
const registerHost = (state, hostName) => (hostName in state || (state[hostName] = []), state), deregisterHost = (state, hostName) => (delete state[hostName], state), addUpdatePortal = (state, hostName, portalName, node) => {
|
|
36
|
+
hostName in state || (state = registerHost(state, hostName));
|
|
64
37
|
const index = state[hostName].findIndex((item) => item.name === portalName);
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
}
|
|
73
|
-
return state;
|
|
74
|
-
};
|
|
75
|
-
const removePortal = (state, hostName, portalName) => {
|
|
76
|
-
if (!(hostName in state)) {
|
|
77
|
-
console.log(
|
|
38
|
+
return index !== -1 ? state[hostName][index].node = node : state[hostName].push({
|
|
39
|
+
name: portalName,
|
|
40
|
+
node
|
|
41
|
+
}), state;
|
|
42
|
+
}, removePortal = (state, hostName, portalName) => {
|
|
43
|
+
if (!(hostName in state))
|
|
44
|
+
return console.log(
|
|
78
45
|
`Failed to remove portal '${portalName}', '${hostName}' was not registered!`
|
|
79
|
-
);
|
|
80
|
-
return state;
|
|
81
|
-
}
|
|
46
|
+
), state;
|
|
82
47
|
const index = state[hostName].findIndex((item) => item.name === portalName);
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
return state;
|
|
86
|
-
};
|
|
87
|
-
const reducer = (state, action) => {
|
|
48
|
+
return index !== -1 && state[hostName].splice(index, 1), state;
|
|
49
|
+
}, reducer = (state, action) => {
|
|
88
50
|
const { type } = action;
|
|
89
51
|
switch (type) {
|
|
90
52
|
case 0 /* REGISTER_HOST */:
|
|
@@ -107,46 +69,37 @@ const reducer = (state, action) => {
|
|
|
107
69
|
default:
|
|
108
70
|
return state;
|
|
109
71
|
}
|
|
110
|
-
}
|
|
111
|
-
const PortalStateContext = (0, import_react.createContext)(null);
|
|
112
|
-
const PortalDispatchContext = (0, import_react.createContext)(null);
|
|
113
|
-
const usePortalState = (hostName) => {
|
|
72
|
+
}, PortalStateContext = (0, import_react.createContext)(null), PortalDispatchContext = (0, import_react.createContext)(null), usePortalState = (hostName) => {
|
|
114
73
|
const state = (0, import_react.useContext)(PortalStateContext);
|
|
115
|
-
if (state === null)
|
|
74
|
+
if (state === null)
|
|
116
75
|
throw new Error(
|
|
117
76
|
"'PortalStateContext' cannot be null, please add 'PortalProvider' to the root component."
|
|
118
77
|
);
|
|
119
|
-
}
|
|
120
78
|
return state[hostName] || [];
|
|
121
|
-
}
|
|
122
|
-
const usePortal = (hostName = "root") => {
|
|
79
|
+
}, usePortal = (hostName = "root") => {
|
|
123
80
|
const dispatch = (0, import_react.useContext)(PortalDispatchContext);
|
|
124
|
-
if (dispatch === null)
|
|
81
|
+
if (dispatch === null)
|
|
125
82
|
throw new Error(
|
|
126
83
|
"'PortalDispatchContext' cannot be null, please add 'PortalProvider' to the root component."
|
|
127
84
|
);
|
|
128
|
-
}
|
|
129
85
|
const registerHost2 = (0, import_react.useCallback)(() => {
|
|
130
86
|
dispatch({
|
|
131
87
|
type: 0 /* REGISTER_HOST */,
|
|
132
88
|
hostName
|
|
133
89
|
});
|
|
134
|
-
}, [])
|
|
135
|
-
const deregisterHost2 = (0, import_react.useCallback)(() => {
|
|
90
|
+
}, []), deregisterHost2 = (0, import_react.useCallback)(() => {
|
|
136
91
|
dispatch({
|
|
137
92
|
type: 1 /* DEREGISTER_HOST */,
|
|
138
93
|
hostName
|
|
139
94
|
});
|
|
140
|
-
}, [])
|
|
141
|
-
const addUpdatePortal2 = (0, import_react.useCallback)((name, node) => {
|
|
95
|
+
}, []), addUpdatePortal2 = (0, import_react.useCallback)((name, node) => {
|
|
142
96
|
dispatch({
|
|
143
97
|
type: 2 /* ADD_UPDATE_PORTAL */,
|
|
144
98
|
hostName,
|
|
145
99
|
portalName: name,
|
|
146
100
|
node
|
|
147
101
|
});
|
|
148
|
-
}, [])
|
|
149
|
-
const removePortal2 = (0, import_react.useCallback)((name) => {
|
|
102
|
+
}, []), removePortal2 = (0, import_react.useCallback)((name) => {
|
|
150
103
|
dispatch({
|
|
151
104
|
type: 3 /* REMOVE_PORTAL */,
|
|
152
105
|
hostName,
|
|
@@ -160,58 +113,36 @@ const usePortal = (hostName = "root") => {
|
|
|
160
113
|
updatePortal: addUpdatePortal2,
|
|
161
114
|
removePortal: removePortal2
|
|
162
115
|
};
|
|
163
|
-
}
|
|
164
|
-
const PortalProviderComponent = ({
|
|
116
|
+
}, PortalProviderComponent = ({
|
|
165
117
|
rootHostName = "root",
|
|
166
|
-
shouldAddRootHost =
|
|
118
|
+
shouldAddRootHost = !0,
|
|
167
119
|
children
|
|
168
120
|
}) => {
|
|
169
|
-
const [state, dispatch] = (0, import_react.useReducer)(reducer, INITIAL_STATE)
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
dispatch(value);
|
|
174
|
-
});
|
|
175
|
-
};
|
|
176
|
-
return next;
|
|
121
|
+
const [state, dispatch] = (0, import_react.useReducer)(reducer, INITIAL_STATE), transitionDispatch = (0, import_react.useMemo)(() => (value) => {
|
|
122
|
+
(0, import_react.startTransition)(() => {
|
|
123
|
+
dispatch(value);
|
|
124
|
+
});
|
|
177
125
|
}, [dispatch]);
|
|
178
126
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(PortalDispatchContext.Provider, { value: transitionDispatch, children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(PortalStateContext.Provider, { value: state, children: [
|
|
179
127
|
children,
|
|
180
128
|
shouldAddRootHost && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(PortalHost, { name: rootHostName })
|
|
181
129
|
] }) });
|
|
182
|
-
};
|
|
183
|
-
const PortalProvider = (0, import_react.memo)(PortalProviderComponent);
|
|
130
|
+
}, PortalProvider = (0, import_react.memo)(PortalProviderComponent);
|
|
184
131
|
PortalProvider.displayName = "PortalProvider";
|
|
185
|
-
const defaultRenderer = (children) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, { children })
|
|
186
|
-
const
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
if (forwardProps) {
|
|
200
|
-
return render(
|
|
201
|
-
state.map((item) => {
|
|
202
|
-
let next = item.node;
|
|
203
|
-
if (forwardProps) {
|
|
204
|
-
return import_react.default.Children.map(next, (child) => {
|
|
205
|
-
return import_react.default.isValidElement(child) ? import_react.default.cloneElement(child, { key: child.key, ...forwardProps }) : child;
|
|
206
|
-
});
|
|
207
|
-
}
|
|
208
|
-
return next;
|
|
209
|
-
})
|
|
210
|
-
);
|
|
211
|
-
}
|
|
212
|
-
return render(state.map((item) => item.node));
|
|
213
|
-
};
|
|
214
|
-
const PortalHost = (0, import_react.memo)(PortalHostComponent);
|
|
132
|
+
const defaultRenderer = (children) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, { children }), PortalHostComponent = (props) => {
|
|
133
|
+
const { name, forwardProps, render = defaultRenderer } = props, isServer = !(0, import_core.useDidFinishSSR)(), state = usePortalState(name), { registerHost: registerHost2, deregisterHost: deregisterHost2 } = usePortal(props.name);
|
|
134
|
+
return (0, import_react.useEffect)(() => {
|
|
135
|
+
if (!isServer)
|
|
136
|
+
return registerHost2(), () => {
|
|
137
|
+
deregisterHost2();
|
|
138
|
+
};
|
|
139
|
+
}, [isServer]), render(
|
|
140
|
+
forwardProps ? state.map((item) => {
|
|
141
|
+
let next = item.node;
|
|
142
|
+
return forwardProps ? import_react.default.Children.map(next, (child) => import_react.default.isValidElement(child) ? import_react.default.cloneElement(child, { key: child.key, ...forwardProps }) : child) : next;
|
|
143
|
+
}) : state.map((item) => item.node)
|
|
144
|
+
);
|
|
145
|
+
}, PortalHost = (0, import_react.memo)(PortalHostComponent);
|
|
215
146
|
PortalHost.displayName = "PortalHost";
|
|
216
147
|
const PortalComponent = (props) => {
|
|
217
148
|
const {
|
|
@@ -221,43 +152,19 @@ const PortalComponent = (props) => {
|
|
|
221
152
|
handleOnUnmount: _providedHandleOnUnmount,
|
|
222
153
|
handleOnUpdate: _providedHandleOnUpdate,
|
|
223
154
|
children
|
|
224
|
-
} = props
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
_providedHandleOnMount(() => addUpdatePortal2(name, children));
|
|
231
|
-
} else {
|
|
232
|
-
addUpdatePortal2(name, children);
|
|
233
|
-
}
|
|
234
|
-
});
|
|
235
|
-
const handleOnUnmount = (0, import_core.useEvent)(() => {
|
|
236
|
-
if (_providedHandleOnUnmount) {
|
|
237
|
-
_providedHandleOnUnmount(() => removePortal2(name));
|
|
238
|
-
} else {
|
|
239
|
-
removePortal2(name);
|
|
240
|
-
}
|
|
155
|
+
} = props, { addPortal: addUpdatePortal2, removePortal: removePortal2 } = usePortal(hostName), id = (0, import_react.useId)(), name = _providedName || id, handleOnMount = (0, import_core.useEvent)(() => {
|
|
156
|
+
_providedHandleOnMount ? _providedHandleOnMount(() => addUpdatePortal2(name, children)) : addUpdatePortal2(name, children);
|
|
157
|
+
}), handleOnUnmount = (0, import_core.useEvent)(() => {
|
|
158
|
+
_providedHandleOnUnmount ? _providedHandleOnUnmount(() => removePortal2(name)) : removePortal2(name);
|
|
159
|
+
}), handleOnUpdate = (0, import_core.useEvent)(() => {
|
|
160
|
+
_providedHandleOnUpdate ? _providedHandleOnUpdate(() => addUpdatePortal2(name, children)) : addUpdatePortal2(name, children);
|
|
241
161
|
});
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
} else {
|
|
246
|
-
addUpdatePortal2(name, children);
|
|
247
|
-
}
|
|
248
|
-
});
|
|
249
|
-
(0, import_core.useIsomorphicLayoutEffect)(() => {
|
|
250
|
-
handleOnMount();
|
|
251
|
-
return () => {
|
|
252
|
-
handleOnUnmount();
|
|
253
|
-
};
|
|
254
|
-
}, []);
|
|
255
|
-
(0, import_react.useEffect)(() => {
|
|
162
|
+
return (0, import_core.useIsomorphicLayoutEffect)(() => (handleOnMount(), () => {
|
|
163
|
+
handleOnUnmount();
|
|
164
|
+
}), []), (0, import_react.useEffect)(() => {
|
|
256
165
|
handleOnUpdate();
|
|
257
|
-
}, [children]);
|
|
258
|
-
|
|
259
|
-
};
|
|
260
|
-
const PortalItem = (0, import_react.memo)(PortalComponent);
|
|
166
|
+
}, [children]), null;
|
|
167
|
+
}, PortalItem = (0, import_react.memo)(PortalComponent);
|
|
261
168
|
PortalItem.displayName = "Portal";
|
|
262
169
|
// Annotate the CommonJS export names for ESM import in node:
|
|
263
170
|
0 && (module.exports = {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/GorhomPortal.tsx"],
|
|
4
|
-
"mappings": "
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["ACTIONS", "registerHost", "deregisterHost", "addUpdatePortal", "removePortal", "React"]
|
|
6
6
|
}
|
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf, __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all)
|
|
9
|
+
__defProp(target, name, { get: all[name], enumerable: !0 });
|
|
10
|
+
}, __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from == "object" || typeof from == "function")
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
!__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
+
return to;
|
|
15
|
+
};
|
|
16
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
17
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
18
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
19
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
20
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
21
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: !0 }) : target,
|
|
22
|
+
mod
|
|
23
|
+
)), __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
|
|
24
|
+
var GorhomPortal_exports = {};
|
|
25
|
+
__export(GorhomPortal_exports, {
|
|
26
|
+
ACTIONS: () => ACTIONS,
|
|
27
|
+
INITIAL_STATE: () => INITIAL_STATE,
|
|
28
|
+
PortalHost: () => PortalHost,
|
|
29
|
+
PortalItem: () => PortalItem,
|
|
30
|
+
PortalProvider: () => PortalProvider,
|
|
31
|
+
usePortal: () => usePortal
|
|
32
|
+
});
|
|
33
|
+
module.exports = __toCommonJS(GorhomPortal_exports);
|
|
34
|
+
var import_core = require("@tamagui/core"), import_react = __toESM(require("react")), import_jsx_runtime = require("react/jsx-runtime"), ACTIONS = /* @__PURE__ */ ((ACTIONS2) => (ACTIONS2[ACTIONS2.REGISTER_HOST = 0] = "REGISTER_HOST", ACTIONS2[ACTIONS2.DEREGISTER_HOST = 1] = "DEREGISTER_HOST", ACTIONS2[ACTIONS2.ADD_UPDATE_PORTAL = 2] = "ADD_UPDATE_PORTAL", ACTIONS2[ACTIONS2.REMOVE_PORTAL = 3] = "REMOVE_PORTAL", ACTIONS2))(ACTIONS || {});
|
|
35
|
+
const INITIAL_STATE = {};
|
|
36
|
+
const registerHost = (state, hostName) => (hostName in state || (state[hostName] = []), state), deregisterHost = (state, hostName) => (delete state[hostName], state), addUpdatePortal = (state, hostName, portalName, node) => {
|
|
37
|
+
hostName in state || (state = registerHost(state, hostName));
|
|
38
|
+
const index = state[hostName].findIndex((item) => item.name === portalName);
|
|
39
|
+
return index !== -1 ? state[hostName][index].node = node : state[hostName].push({
|
|
40
|
+
name: portalName,
|
|
41
|
+
node
|
|
42
|
+
}), state;
|
|
43
|
+
}, removePortal = (state, hostName, portalName) => {
|
|
44
|
+
if (!(hostName in state))
|
|
45
|
+
return console.log(
|
|
46
|
+
`Failed to remove portal '${portalName}', '${hostName}' was not registered!`
|
|
47
|
+
), state;
|
|
48
|
+
const index = state[hostName].findIndex((item) => item.name === portalName);
|
|
49
|
+
return index !== -1 && state[hostName].splice(index, 1), state;
|
|
50
|
+
}, reducer = (state, action) => {
|
|
51
|
+
const { type } = action;
|
|
52
|
+
switch (type) {
|
|
53
|
+
case 0 /* REGISTER_HOST */:
|
|
54
|
+
return registerHost({ ...state }, action.hostName);
|
|
55
|
+
case 1 /* DEREGISTER_HOST */:
|
|
56
|
+
return deregisterHost({ ...state }, action.hostName);
|
|
57
|
+
case 2 /* ADD_UPDATE_PORTAL */:
|
|
58
|
+
return addUpdatePortal(
|
|
59
|
+
{ ...state },
|
|
60
|
+
action.hostName,
|
|
61
|
+
action.portalName,
|
|
62
|
+
action.node
|
|
63
|
+
);
|
|
64
|
+
case 3 /* REMOVE_PORTAL */:
|
|
65
|
+
return removePortal(
|
|
66
|
+
{ ...state },
|
|
67
|
+
action.hostName,
|
|
68
|
+
action.portalName
|
|
69
|
+
);
|
|
70
|
+
default:
|
|
71
|
+
return state;
|
|
72
|
+
}
|
|
73
|
+
}, PortalStateContext = (0, import_react.createContext)(null), PortalDispatchContext = (0, import_react.createContext)(null), usePortalState = (hostName) => {
|
|
74
|
+
const state = (0, import_react.useContext)(PortalStateContext);
|
|
75
|
+
if (state === null)
|
|
76
|
+
throw new Error(
|
|
77
|
+
"'PortalStateContext' cannot be null, please add 'PortalProvider' to the root component."
|
|
78
|
+
);
|
|
79
|
+
return state[hostName] || [];
|
|
80
|
+
}, usePortal = (hostName = "root") => {
|
|
81
|
+
const dispatch = (0, import_react.useContext)(PortalDispatchContext);
|
|
82
|
+
if (dispatch === null)
|
|
83
|
+
throw new Error(
|
|
84
|
+
"'PortalDispatchContext' cannot be null, please add 'PortalProvider' to the root component."
|
|
85
|
+
);
|
|
86
|
+
const registerHost2 = (0, import_react.useCallback)(() => {
|
|
87
|
+
dispatch({
|
|
88
|
+
type: 0 /* REGISTER_HOST */,
|
|
89
|
+
hostName
|
|
90
|
+
});
|
|
91
|
+
}, []), deregisterHost2 = (0, import_react.useCallback)(() => {
|
|
92
|
+
dispatch({
|
|
93
|
+
type: 1 /* DEREGISTER_HOST */,
|
|
94
|
+
hostName
|
|
95
|
+
});
|
|
96
|
+
}, []), addUpdatePortal2 = (0, import_react.useCallback)((name, node) => {
|
|
97
|
+
dispatch({
|
|
98
|
+
type: 2 /* ADD_UPDATE_PORTAL */,
|
|
99
|
+
hostName,
|
|
100
|
+
portalName: name,
|
|
101
|
+
node
|
|
102
|
+
});
|
|
103
|
+
}, []), removePortal2 = (0, import_react.useCallback)((name) => {
|
|
104
|
+
dispatch({
|
|
105
|
+
type: 3 /* REMOVE_PORTAL */,
|
|
106
|
+
hostName,
|
|
107
|
+
portalName: name
|
|
108
|
+
});
|
|
109
|
+
}, []);
|
|
110
|
+
return {
|
|
111
|
+
registerHost: registerHost2,
|
|
112
|
+
deregisterHost: deregisterHost2,
|
|
113
|
+
addPortal: addUpdatePortal2,
|
|
114
|
+
updatePortal: addUpdatePortal2,
|
|
115
|
+
removePortal: removePortal2
|
|
116
|
+
};
|
|
117
|
+
}, PortalProviderComponent = ({
|
|
118
|
+
rootHostName = "root",
|
|
119
|
+
shouldAddRootHost = !0,
|
|
120
|
+
children
|
|
121
|
+
}) => {
|
|
122
|
+
const [state, dispatch] = (0, import_react.useReducer)(reducer, INITIAL_STATE), transitionDispatch = (0, import_react.useMemo)(() => (value) => {
|
|
123
|
+
(0, import_react.startTransition)(() => {
|
|
124
|
+
dispatch(value);
|
|
125
|
+
});
|
|
126
|
+
}, [dispatch]);
|
|
127
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(PortalDispatchContext.Provider, { value: transitionDispatch, children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(PortalStateContext.Provider, { value: state, children: [
|
|
128
|
+
children,
|
|
129
|
+
shouldAddRootHost && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(PortalHost, { name: rootHostName })
|
|
130
|
+
] }) });
|
|
131
|
+
}, PortalProvider = (0, import_react.memo)(PortalProviderComponent);
|
|
132
|
+
PortalProvider.displayName = "PortalProvider";
|
|
133
|
+
const defaultRenderer = (children) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, { children }), PortalHostComponent = (props) => {
|
|
134
|
+
const { name, forwardProps, render = defaultRenderer } = props, isServer = !(0, import_core.useDidFinishSSR)(), state = usePortalState(name), { registerHost: registerHost2, deregisterHost: deregisterHost2 } = usePortal(props.name);
|
|
135
|
+
return (0, import_react.useEffect)(() => {
|
|
136
|
+
if (!isServer)
|
|
137
|
+
return registerHost2(), () => {
|
|
138
|
+
deregisterHost2();
|
|
139
|
+
};
|
|
140
|
+
}, [isServer]), render(
|
|
141
|
+
forwardProps ? state.map((item) => {
|
|
142
|
+
let next = item.node;
|
|
143
|
+
return forwardProps ? import_react.default.Children.map(next, (child) => import_react.default.isValidElement(child) ? import_react.default.cloneElement(child, { key: child.key, ...forwardProps }) : child) : next;
|
|
144
|
+
}) : state.map((item) => item.node)
|
|
145
|
+
);
|
|
146
|
+
}, PortalHost = (0, import_react.memo)(PortalHostComponent);
|
|
147
|
+
PortalHost.displayName = "PortalHost";
|
|
148
|
+
const PortalComponent = (props) => {
|
|
149
|
+
const {
|
|
150
|
+
name: _providedName,
|
|
151
|
+
hostName,
|
|
152
|
+
handleOnMount: _providedHandleOnMount,
|
|
153
|
+
handleOnUnmount: _providedHandleOnUnmount,
|
|
154
|
+
handleOnUpdate: _providedHandleOnUpdate,
|
|
155
|
+
children
|
|
156
|
+
} = props, { addPortal: addUpdatePortal2, removePortal: removePortal2 } = usePortal(hostName), id = (0, import_react.useId)(), name = _providedName || id, handleOnMount = (0, import_core.useEvent)(() => {
|
|
157
|
+
_providedHandleOnMount ? _providedHandleOnMount(() => addUpdatePortal2(name, children)) : addUpdatePortal2(name, children);
|
|
158
|
+
}), handleOnUnmount = (0, import_core.useEvent)(() => {
|
|
159
|
+
_providedHandleOnUnmount ? _providedHandleOnUnmount(() => removePortal2(name)) : removePortal2(name);
|
|
160
|
+
}), handleOnUpdate = (0, import_core.useEvent)(() => {
|
|
161
|
+
_providedHandleOnUpdate ? _providedHandleOnUpdate(() => addUpdatePortal2(name, children)) : addUpdatePortal2(name, children);
|
|
162
|
+
});
|
|
163
|
+
return (0, import_core.useIsomorphicLayoutEffect)(() => (handleOnMount(), () => {
|
|
164
|
+
handleOnUnmount();
|
|
165
|
+
}), []), (0, import_react.useEffect)(() => {
|
|
166
|
+
handleOnUpdate();
|
|
167
|
+
}, [children]), null;
|
|
168
|
+
}, PortalItem = (0, import_react.memo)(PortalComponent);
|
|
169
|
+
PortalItem.displayName = "Portal";
|
|
170
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
171
|
+
0 && (module.exports = {
|
|
172
|
+
ACTIONS,
|
|
173
|
+
INITIAL_STATE,
|
|
174
|
+
PortalHost,
|
|
175
|
+
PortalItem,
|
|
176
|
+
PortalProvider,
|
|
177
|
+
usePortal
|
|
178
|
+
});
|
|
179
|
+
//# sourceMappingURL=GorhomPortal.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/GorhomPortal.tsx"],
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": ["ACTIONS", "registerHost", "deregisterHost", "addUpdatePortal", "removePortal", "React"]
|
|
6
|
+
}
|
package/dist/cjs/Portal.js
CHANGED
|
@@ -1,20 +1,15 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
var __create = Object.create;
|
|
3
2
|
var __defProp = Object.defineProperty;
|
|
4
3
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
4
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
-
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __getProtoOf = Object.getPrototypeOf, __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
6
|
var __export = (target, all) => {
|
|
9
7
|
for (var name in all)
|
|
10
|
-
__defProp(target, name, { get: all[name], enumerable:
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: !0 });
|
|
9
|
+
}, __copyProps = (to, from, except, desc) => {
|
|
10
|
+
if (from && typeof from == "object" || typeof from == "function")
|
|
14
11
|
for (let key of __getOwnPropNames(from))
|
|
15
|
-
|
|
16
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
-
}
|
|
12
|
+
!__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
18
13
|
return to;
|
|
19
14
|
};
|
|
20
15
|
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
@@ -22,43 +17,32 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
22
17
|
// file that has been converted to a CommonJS file using a Babel-
|
|
23
18
|
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
19
|
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable:
|
|
20
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: !0 }) : target,
|
|
26
21
|
mod
|
|
27
|
-
));
|
|
28
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
22
|
+
)), __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
|
|
29
23
|
var Portal_exports = {};
|
|
30
24
|
__export(Portal_exports, {
|
|
31
25
|
Portal: () => Portal
|
|
32
26
|
});
|
|
33
27
|
module.exports = __toCommonJS(Portal_exports);
|
|
34
|
-
var import_jsx_runtime = require("react/jsx-runtime");
|
|
35
|
-
var import_polyfill_dev = require("@tamagui/polyfill-dev");
|
|
36
|
-
var import_core = require("@tamagui/core");
|
|
37
|
-
var import_stacks = require("@tamagui/stacks");
|
|
38
|
-
var React = __toESM(require("react"));
|
|
39
|
-
var import_react_dom = require("react-dom");
|
|
28
|
+
var import_polyfill_dev = require("@tamagui/polyfill-dev"), import_core = require("@tamagui/core"), import_stacks = require("@tamagui/stacks"), React = __toESM(require("react")), import_react_dom = require("react-dom"), import_jsx_runtime = require("react/jsx-runtime");
|
|
40
29
|
const Portal = React.memo(
|
|
41
|
-
({ host =
|
|
30
|
+
({ host = globalThis.document?.body, ...props }) => {
|
|
42
31
|
const contents = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
43
32
|
import_stacks.YStack,
|
|
44
33
|
{
|
|
45
34
|
contain: "strict",
|
|
46
|
-
fullscreen:
|
|
35
|
+
fullscreen: !0,
|
|
47
36
|
position: import_core.isWeb ? "fixed" : "absolute",
|
|
48
37
|
maxWidth: import_core.isWeb ? "100vw" : "100%",
|
|
49
38
|
maxHeight: import_core.isWeb ? "100vh" : "100%",
|
|
50
39
|
pointerEvents: "none",
|
|
51
40
|
...props
|
|
52
41
|
}
|
|
53
|
-
);
|
|
54
|
-
|
|
55
|
-
(0, import_core.useIsomorphicLayoutEffect)(() => {
|
|
42
|
+
), [hostElement, setHostElement] = React.useState(null);
|
|
43
|
+
return (0, import_core.useIsomorphicLayoutEffect)(() => {
|
|
56
44
|
setHostElement(host);
|
|
57
|
-
}, [host]);
|
|
58
|
-
if (hostElement && props.children) {
|
|
59
|
-
return (0, import_react_dom.createPortal)(contents, hostElement);
|
|
60
|
-
}
|
|
61
|
-
return null;
|
|
45
|
+
}, [host]), hostElement && props.children ? (0, import_react_dom.createPortal)(contents, hostElement) : null;
|
|
62
46
|
}
|
|
63
47
|
);
|
|
64
48
|
// Annotate the CommonJS export names for ESM import in node:
|
package/dist/cjs/Portal.js.map
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/Portal.tsx"],
|
|
4
|
-
"mappings": "
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,0BAAO,kCAEP,cAAiD,0BACjD,gBAAuB,4BACvB,QAAuB,2BACvB,mBAA6B,sBAOvB;AAHC,MAAM,SAAS,MAAM;AAAA,EAC1B,CAAC,EAAE,OAAO,WAAW,UAAU,MAAM,GAAG,MAAM,MAAmB;AAC/D,UAAM,WACJ;AAAA,MAAC;AAAA;AAAA,QACC,SAAQ;AAAA,QACR,YAAU;AAAA,QAEV,UAAU,oBAAQ,UAAU;AAAA,QAC5B,UAAU,oBAAQ,UAAU;AAAA,QAC5B,WAAW,oBAAQ,UAAU;AAAA,QAC7B,eAAc;AAAA,QACb,GAAG;AAAA;AAAA,IACN,GAGI,CAAC,aAAa,cAAc,IAAI,MAAM,SAAc,IAAI;AAM9D,eAJA,uCAA0B,MAAM;AAC9B,qBAAe,IAAI;AAAA,IACrB,GAAG,CAAC,IAAI,CAAC,GAEL,eAAe,MAAM,eAChB,+BAAa,UAAU,WAAW,IAIpC;AAAA,EACT;AACF;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -3,18 +3,14 @@ var __create = Object.create;
|
|
|
3
3
|
var __defProp = Object.defineProperty;
|
|
4
4
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
5
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
-
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf, __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
7
|
var __export = (target, all) => {
|
|
9
8
|
for (var name in all)
|
|
10
|
-
__defProp(target, name, { get: all[name], enumerable:
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
9
|
+
__defProp(target, name, { get: all[name], enumerable: !0 });
|
|
10
|
+
}, __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from == "object" || typeof from == "function")
|
|
14
12
|
for (let key of __getOwnPropNames(from))
|
|
15
|
-
|
|
16
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
-
}
|
|
13
|
+
!__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
18
14
|
return to;
|
|
19
15
|
};
|
|
20
16
|
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
@@ -22,44 +18,31 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
22
18
|
// file that has been converted to a CommonJS file using a Babel-
|
|
23
19
|
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
20
|
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable:
|
|
21
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: !0 }) : target,
|
|
26
22
|
mod
|
|
27
|
-
));
|
|
28
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
23
|
+
)), __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
|
|
29
24
|
var Portal_native_exports = {};
|
|
30
25
|
__export(Portal_native_exports, {
|
|
31
26
|
Portal: () => Portal
|
|
32
27
|
});
|
|
33
28
|
module.exports = __toCommonJS(Portal_native_exports);
|
|
34
|
-
var import_jsx_runtime = require("react/jsx-runtime");
|
|
35
|
-
|
|
36
|
-
var React = __toESM(require("react"));
|
|
37
|
-
var import_react_native = require("react-native");
|
|
38
|
-
var import_GorhomPortal = require("./GorhomPortal");
|
|
39
|
-
const isFabric = global == null ? void 0 : global.nativeFabricUIManager;
|
|
29
|
+
var import_stacks = require("@tamagui/stacks"), React = __toESM(require("react")), import_react_native = require("react-native"), import_GorhomPortal = require("./GorhomPortal"), import_jsx_runtime = require("react/jsx-runtime");
|
|
30
|
+
const isFabric = global?.nativeFabricUIManager;
|
|
40
31
|
let createPortal;
|
|
41
|
-
|
|
42
|
-
createPortal = require("react-native/Libraries/Renderer/shims/ReactFabric").createPortal;
|
|
43
|
-
} else {
|
|
44
|
-
createPortal = require("react-native/Libraries/Renderer/shims/ReactNative").createPortal;
|
|
45
|
-
}
|
|
32
|
+
isFabric ? createPortal = require("react-native/Libraries/Renderer/shims/ReactFabric").createPortal : createPortal = require("react-native/Libraries/Renderer/shims/ReactNative").createPortal;
|
|
46
33
|
const Portal = (props) => {
|
|
47
|
-
const rootTag = React.useContext(import_react_native.RootTagContext)
|
|
48
|
-
const contents = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
34
|
+
const rootTag = React.useContext(import_react_native.RootTagContext), contents = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
49
35
|
import_stacks.YStack,
|
|
50
36
|
{
|
|
51
37
|
pointerEvents: "box-none",
|
|
52
|
-
fullscreen:
|
|
38
|
+
fullscreen: !0,
|
|
53
39
|
position: "absolute",
|
|
54
40
|
maxWidth: "100%",
|
|
55
41
|
zIndex: 1e5,
|
|
56
42
|
...props
|
|
57
43
|
}
|
|
58
44
|
);
|
|
59
|
-
|
|
60
|
-
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_GorhomPortal.PortalItem, { hostName: "root", children: contents });
|
|
61
|
-
}
|
|
62
|
-
return createPortal(contents, rootTag);
|
|
45
|
+
return import_react_native.Platform.OS === "android" || !rootTag ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_GorhomPortal.PortalItem, { hostName: "root", children: contents }) : createPortal(contents, rootTag);
|
|
63
46
|
};
|
|
64
47
|
// Annotate the CommonJS export names for ESM import in node:
|
|
65
48
|
0 && (module.exports = {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/Portal.native.tsx"],
|
|
4
|
-
"mappings": "
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAuB,4BACvB,QAAuB,2BAEvB,sBAAyC,yBAEzC,sBAA2B,2BAevB;AAZJ,MAAM,WAAW,QAAQ;AACzB,IAAI;AACA,WACF,eAAe,QAAQ,mDAAmD,EAAE,eAE5E,eAAe,QAAQ,mDAAmD,EAAE;AAGvE,MAAM,SAAS,CAAC,UAAuB;AAC5C,QAAM,UAAU,MAAM,WAAW,kCAAc,GAEzC,WACJ;AAAA,IAAC;AAAA;AAAA,MACC,eAAc;AAAA,MACd,YAAU;AAAA,MACV,UAAS;AAAA,MACT,UAAS;AAAA,MACT,QAAQ;AAAA,MACP,GAAG;AAAA;AAAA,EACN;AAGF,SAAI,6BAAS,OAAO,aAAa,CAAC,UACzB,4CAAC,kCAAW,UAAS,QAAQ,oBAAS,IAGxC,aAAa,UAAU,OAAO;AACvC;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
package/dist/cjs/PortalProps.js
CHANGED
|
@@ -1,17 +1,14 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
var __defProp = Object.defineProperty;
|
|
3
2
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
3
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
4
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
5
|
var __copyProps = (to, from, except, desc) => {
|
|
7
|
-
if (from && typeof from
|
|
6
|
+
if (from && typeof from == "object" || typeof from == "function")
|
|
8
7
|
for (let key of __getOwnPropNames(from))
|
|
9
|
-
|
|
10
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
11
|
-
}
|
|
8
|
+
!__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
12
9
|
return to;
|
|
13
10
|
};
|
|
14
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value:
|
|
11
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
|
|
15
12
|
var PortalProps_exports = {};
|
|
16
13
|
module.exports = __toCommonJS(PortalProps_exports);
|
|
17
14
|
//# sourceMappingURL=PortalProps.js.map
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __copyProps = (to, from, except, desc) => {
|
|
7
|
+
if (from && typeof from == "object" || typeof from == "function")
|
|
8
|
+
for (let key of __getOwnPropNames(from))
|
|
9
|
+
!__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
10
|
+
return to;
|
|
11
|
+
};
|
|
12
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
|
|
13
|
+
var PortalProps_exports = {};
|
|
14
|
+
module.exports = __toCommonJS(PortalProps_exports);
|
|
15
|
+
//# sourceMappingURL=PortalProps.js.map
|
package/dist/cjs/index.js
CHANGED
|
@@ -1,18 +1,14 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
var __defProp = Object.defineProperty;
|
|
3
2
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
3
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
4
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
5
|
var __copyProps = (to, from, except, desc) => {
|
|
7
|
-
if (from && typeof from
|
|
6
|
+
if (from && typeof from == "object" || typeof from == "function")
|
|
8
7
|
for (let key of __getOwnPropNames(from))
|
|
9
|
-
|
|
10
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
11
|
-
}
|
|
8
|
+
!__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
12
9
|
return to;
|
|
13
|
-
};
|
|
14
|
-
var
|
|
15
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
10
|
+
}, __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
11
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
|
|
16
12
|
var src_exports = {};
|
|
17
13
|
module.exports = __toCommonJS(src_exports);
|
|
18
14
|
__reExport(src_exports, require("./Portal"), module.exports);
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __copyProps = (to, from, except, desc) => {
|
|
7
|
+
if (from && typeof from == "object" || typeof from == "function")
|
|
8
|
+
for (let key of __getOwnPropNames(from))
|
|
9
|
+
!__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
10
|
+
return to;
|
|
11
|
+
}, __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
12
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
|
|
13
|
+
var src_exports = {};
|
|
14
|
+
module.exports = __toCommonJS(src_exports);
|
|
15
|
+
__reExport(src_exports, require("./Portal"), module.exports);
|
|
16
|
+
__reExport(src_exports, require("./PortalProps"), module.exports);
|
|
17
|
+
__reExport(src_exports, require("./GorhomPortal"), module.exports);
|
|
18
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
19
|
+
0 && (module.exports = {
|
|
20
|
+
...require("./Portal"),
|
|
21
|
+
...require("./PortalProps"),
|
|
22
|
+
...require("./GorhomPortal")
|
|
23
|
+
});
|
|
24
|
+
//# sourceMappingURL=index.js.map
|
package/dist/esm/GorhomPortal.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
2
1
|
import { useDidFinishSSR, useEvent, useIsomorphicLayoutEffect } from "@tamagui/core";
|
|
3
2
|
import React, {
|
|
4
3
|
createContext,
|
|
@@ -11,52 +10,24 @@ import React, {
|
|
|
11
10
|
useMemo,
|
|
12
11
|
useReducer
|
|
13
12
|
} from "react";
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
ACTIONS2[ACTIONS2["DEREGISTER_HOST"] = 1] = "DEREGISTER_HOST";
|
|
17
|
-
ACTIONS2[ACTIONS2["ADD_UPDATE_PORTAL"] = 2] = "ADD_UPDATE_PORTAL";
|
|
18
|
-
ACTIONS2[ACTIONS2["REMOVE_PORTAL"] = 3] = "REMOVE_PORTAL";
|
|
19
|
-
return ACTIONS2;
|
|
20
|
-
})(ACTIONS || {});
|
|
13
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
14
|
+
var ACTIONS = /* @__PURE__ */ ((ACTIONS2) => (ACTIONS2[ACTIONS2.REGISTER_HOST = 0] = "REGISTER_HOST", ACTIONS2[ACTIONS2.DEREGISTER_HOST = 1] = "DEREGISTER_HOST", ACTIONS2[ACTIONS2.ADD_UPDATE_PORTAL = 2] = "ADD_UPDATE_PORTAL", ACTIONS2[ACTIONS2.REMOVE_PORTAL = 3] = "REMOVE_PORTAL", ACTIONS2))(ACTIONS || {});
|
|
21
15
|
const INITIAL_STATE = {};
|
|
22
|
-
const registerHost = (state, hostName) => {
|
|
23
|
-
|
|
24
|
-
state[hostName] = [];
|
|
25
|
-
}
|
|
26
|
-
return state;
|
|
27
|
-
};
|
|
28
|
-
const deregisterHost = (state, hostName) => {
|
|
29
|
-
delete state[hostName];
|
|
30
|
-
return state;
|
|
31
|
-
};
|
|
32
|
-
const addUpdatePortal = (state, hostName, portalName, node) => {
|
|
33
|
-
if (!(hostName in state)) {
|
|
34
|
-
state = registerHost(state, hostName);
|
|
35
|
-
}
|
|
16
|
+
const registerHost = (state, hostName) => (hostName in state || (state[hostName] = []), state), deregisterHost = (state, hostName) => (delete state[hostName], state), addUpdatePortal = (state, hostName, portalName, node) => {
|
|
17
|
+
hostName in state || (state = registerHost(state, hostName));
|
|
36
18
|
const index = state[hostName].findIndex((item) => item.name === portalName);
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
}
|
|
45
|
-
return state;
|
|
46
|
-
};
|
|
47
|
-
const removePortal = (state, hostName, portalName) => {
|
|
48
|
-
if (!(hostName in state)) {
|
|
49
|
-
console.log(
|
|
19
|
+
return index !== -1 ? state[hostName][index].node = node : state[hostName].push({
|
|
20
|
+
name: portalName,
|
|
21
|
+
node
|
|
22
|
+
}), state;
|
|
23
|
+
}, removePortal = (state, hostName, portalName) => {
|
|
24
|
+
if (!(hostName in state))
|
|
25
|
+
return console.log(
|
|
50
26
|
`Failed to remove portal '${portalName}', '${hostName}' was not registered!`
|
|
51
|
-
);
|
|
52
|
-
return state;
|
|
53
|
-
}
|
|
27
|
+
), state;
|
|
54
28
|
const index = state[hostName].findIndex((item) => item.name === portalName);
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
return state;
|
|
58
|
-
};
|
|
59
|
-
const reducer = (state, action) => {
|
|
29
|
+
return index !== -1 && state[hostName].splice(index, 1), state;
|
|
30
|
+
}, reducer = (state, action) => {
|
|
60
31
|
const { type } = action;
|
|
61
32
|
switch (type) {
|
|
62
33
|
case 0 /* REGISTER_HOST */:
|
|
@@ -79,46 +50,37 @@ const reducer = (state, action) => {
|
|
|
79
50
|
default:
|
|
80
51
|
return state;
|
|
81
52
|
}
|
|
82
|
-
}
|
|
83
|
-
const PortalStateContext = createContext(null);
|
|
84
|
-
const PortalDispatchContext = createContext(null);
|
|
85
|
-
const usePortalState = (hostName) => {
|
|
53
|
+
}, PortalStateContext = createContext(null), PortalDispatchContext = createContext(null), usePortalState = (hostName) => {
|
|
86
54
|
const state = useContext(PortalStateContext);
|
|
87
|
-
if (state === null)
|
|
55
|
+
if (state === null)
|
|
88
56
|
throw new Error(
|
|
89
57
|
"'PortalStateContext' cannot be null, please add 'PortalProvider' to the root component."
|
|
90
58
|
);
|
|
91
|
-
}
|
|
92
59
|
return state[hostName] || [];
|
|
93
|
-
}
|
|
94
|
-
const usePortal = (hostName = "root") => {
|
|
60
|
+
}, usePortal = (hostName = "root") => {
|
|
95
61
|
const dispatch = useContext(PortalDispatchContext);
|
|
96
|
-
if (dispatch === null)
|
|
62
|
+
if (dispatch === null)
|
|
97
63
|
throw new Error(
|
|
98
64
|
"'PortalDispatchContext' cannot be null, please add 'PortalProvider' to the root component."
|
|
99
65
|
);
|
|
100
|
-
}
|
|
101
66
|
const registerHost2 = useCallback(() => {
|
|
102
67
|
dispatch({
|
|
103
68
|
type: 0 /* REGISTER_HOST */,
|
|
104
69
|
hostName
|
|
105
70
|
});
|
|
106
|
-
}, [])
|
|
107
|
-
const deregisterHost2 = useCallback(() => {
|
|
71
|
+
}, []), deregisterHost2 = useCallback(() => {
|
|
108
72
|
dispatch({
|
|
109
73
|
type: 1 /* DEREGISTER_HOST */,
|
|
110
74
|
hostName
|
|
111
75
|
});
|
|
112
|
-
}, [])
|
|
113
|
-
const addUpdatePortal2 = useCallback((name, node) => {
|
|
76
|
+
}, []), addUpdatePortal2 = useCallback((name, node) => {
|
|
114
77
|
dispatch({
|
|
115
78
|
type: 2 /* ADD_UPDATE_PORTAL */,
|
|
116
79
|
hostName,
|
|
117
80
|
portalName: name,
|
|
118
81
|
node
|
|
119
82
|
});
|
|
120
|
-
}, [])
|
|
121
|
-
const removePortal2 = useCallback((name) => {
|
|
83
|
+
}, []), removePortal2 = useCallback((name) => {
|
|
122
84
|
dispatch({
|
|
123
85
|
type: 3 /* REMOVE_PORTAL */,
|
|
124
86
|
hostName,
|
|
@@ -132,58 +94,36 @@ const usePortal = (hostName = "root") => {
|
|
|
132
94
|
updatePortal: addUpdatePortal2,
|
|
133
95
|
removePortal: removePortal2
|
|
134
96
|
};
|
|
135
|
-
}
|
|
136
|
-
const PortalProviderComponent = ({
|
|
97
|
+
}, PortalProviderComponent = ({
|
|
137
98
|
rootHostName = "root",
|
|
138
|
-
shouldAddRootHost =
|
|
99
|
+
shouldAddRootHost = !0,
|
|
139
100
|
children
|
|
140
101
|
}) => {
|
|
141
|
-
const [state, dispatch] = useReducer(reducer, INITIAL_STATE)
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
dispatch(value);
|
|
146
|
-
});
|
|
147
|
-
};
|
|
148
|
-
return next;
|
|
102
|
+
const [state, dispatch] = useReducer(reducer, INITIAL_STATE), transitionDispatch = useMemo(() => (value) => {
|
|
103
|
+
startTransition(() => {
|
|
104
|
+
dispatch(value);
|
|
105
|
+
});
|
|
149
106
|
}, [dispatch]);
|
|
150
107
|
return /* @__PURE__ */ jsx(PortalDispatchContext.Provider, { value: transitionDispatch, children: /* @__PURE__ */ jsxs(PortalStateContext.Provider, { value: state, children: [
|
|
151
108
|
children,
|
|
152
109
|
shouldAddRootHost && /* @__PURE__ */ jsx(PortalHost, { name: rootHostName })
|
|
153
110
|
] }) });
|
|
154
|
-
};
|
|
155
|
-
const PortalProvider = memo(PortalProviderComponent);
|
|
111
|
+
}, PortalProvider = memo(PortalProviderComponent);
|
|
156
112
|
PortalProvider.displayName = "PortalProvider";
|
|
157
|
-
const defaultRenderer = (children) => /* @__PURE__ */ jsx(Fragment, { children })
|
|
158
|
-
const
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
if (forwardProps) {
|
|
172
|
-
return render(
|
|
173
|
-
state.map((item) => {
|
|
174
|
-
let next = item.node;
|
|
175
|
-
if (forwardProps) {
|
|
176
|
-
return React.Children.map(next, (child) => {
|
|
177
|
-
return React.isValidElement(child) ? React.cloneElement(child, { key: child.key, ...forwardProps }) : child;
|
|
178
|
-
});
|
|
179
|
-
}
|
|
180
|
-
return next;
|
|
181
|
-
})
|
|
182
|
-
);
|
|
183
|
-
}
|
|
184
|
-
return render(state.map((item) => item.node));
|
|
185
|
-
};
|
|
186
|
-
const PortalHost = memo(PortalHostComponent);
|
|
113
|
+
const defaultRenderer = (children) => /* @__PURE__ */ jsx(Fragment, { children }), PortalHostComponent = (props) => {
|
|
114
|
+
const { name, forwardProps, render = defaultRenderer } = props, isServer = !useDidFinishSSR(), state = usePortalState(name), { registerHost: registerHost2, deregisterHost: deregisterHost2 } = usePortal(props.name);
|
|
115
|
+
return useEffect(() => {
|
|
116
|
+
if (!isServer)
|
|
117
|
+
return registerHost2(), () => {
|
|
118
|
+
deregisterHost2();
|
|
119
|
+
};
|
|
120
|
+
}, [isServer]), render(
|
|
121
|
+
forwardProps ? state.map((item) => {
|
|
122
|
+
let next = item.node;
|
|
123
|
+
return forwardProps ? React.Children.map(next, (child) => React.isValidElement(child) ? React.cloneElement(child, { key: child.key, ...forwardProps }) : child) : next;
|
|
124
|
+
}) : state.map((item) => item.node)
|
|
125
|
+
);
|
|
126
|
+
}, PortalHost = memo(PortalHostComponent);
|
|
187
127
|
PortalHost.displayName = "PortalHost";
|
|
188
128
|
const PortalComponent = (props) => {
|
|
189
129
|
const {
|
|
@@ -193,43 +133,19 @@ const PortalComponent = (props) => {
|
|
|
193
133
|
handleOnUnmount: _providedHandleOnUnmount,
|
|
194
134
|
handleOnUpdate: _providedHandleOnUpdate,
|
|
195
135
|
children
|
|
196
|
-
} = props
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
_providedHandleOnMount(() => addUpdatePortal2(name, children));
|
|
203
|
-
} else {
|
|
204
|
-
addUpdatePortal2(name, children);
|
|
205
|
-
}
|
|
206
|
-
});
|
|
207
|
-
const handleOnUnmount = useEvent(() => {
|
|
208
|
-
if (_providedHandleOnUnmount) {
|
|
209
|
-
_providedHandleOnUnmount(() => removePortal2(name));
|
|
210
|
-
} else {
|
|
211
|
-
removePortal2(name);
|
|
212
|
-
}
|
|
136
|
+
} = props, { addPortal: addUpdatePortal2, removePortal: removePortal2 } = usePortal(hostName), id = useId(), name = _providedName || id, handleOnMount = useEvent(() => {
|
|
137
|
+
_providedHandleOnMount ? _providedHandleOnMount(() => addUpdatePortal2(name, children)) : addUpdatePortal2(name, children);
|
|
138
|
+
}), handleOnUnmount = useEvent(() => {
|
|
139
|
+
_providedHandleOnUnmount ? _providedHandleOnUnmount(() => removePortal2(name)) : removePortal2(name);
|
|
140
|
+
}), handleOnUpdate = useEvent(() => {
|
|
141
|
+
_providedHandleOnUpdate ? _providedHandleOnUpdate(() => addUpdatePortal2(name, children)) : addUpdatePortal2(name, children);
|
|
213
142
|
});
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
} else {
|
|
218
|
-
addUpdatePortal2(name, children);
|
|
219
|
-
}
|
|
220
|
-
});
|
|
221
|
-
useIsomorphicLayoutEffect(() => {
|
|
222
|
-
handleOnMount();
|
|
223
|
-
return () => {
|
|
224
|
-
handleOnUnmount();
|
|
225
|
-
};
|
|
226
|
-
}, []);
|
|
227
|
-
useEffect(() => {
|
|
143
|
+
return useIsomorphicLayoutEffect(() => (handleOnMount(), () => {
|
|
144
|
+
handleOnUnmount();
|
|
145
|
+
}), []), useEffect(() => {
|
|
228
146
|
handleOnUpdate();
|
|
229
|
-
}, [children]);
|
|
230
|
-
|
|
231
|
-
};
|
|
232
|
-
const PortalItem = memo(PortalComponent);
|
|
147
|
+
}, [children]), null;
|
|
148
|
+
}, PortalItem = memo(PortalComponent);
|
|
233
149
|
PortalItem.displayName = "Portal";
|
|
234
150
|
export {
|
|
235
151
|
ACTIONS,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/GorhomPortal.tsx"],
|
|
4
|
-
"mappings": "
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["ACTIONS", "registerHost", "deregisterHost", "addUpdatePortal", "removePortal"]
|
|
6
6
|
}
|
package/dist/esm/Portal.js
CHANGED
|
@@ -1,31 +1,26 @@
|
|
|
1
|
-
import { jsx } from "react/jsx-runtime";
|
|
2
1
|
import "@tamagui/polyfill-dev";
|
|
3
2
|
import { isWeb, useIsomorphicLayoutEffect } from "@tamagui/core";
|
|
4
3
|
import { YStack } from "@tamagui/stacks";
|
|
5
4
|
import * as React from "react";
|
|
6
5
|
import { createPortal } from "react-dom";
|
|
6
|
+
import { jsx } from "react/jsx-runtime";
|
|
7
7
|
const Portal = React.memo(
|
|
8
|
-
({ host =
|
|
8
|
+
({ host = globalThis.document?.body, ...props }) => {
|
|
9
9
|
const contents = /* @__PURE__ */ jsx(
|
|
10
10
|
YStack,
|
|
11
11
|
{
|
|
12
12
|
contain: "strict",
|
|
13
|
-
fullscreen:
|
|
13
|
+
fullscreen: !0,
|
|
14
14
|
position: isWeb ? "fixed" : "absolute",
|
|
15
15
|
maxWidth: isWeb ? "100vw" : "100%",
|
|
16
16
|
maxHeight: isWeb ? "100vh" : "100%",
|
|
17
17
|
pointerEvents: "none",
|
|
18
18
|
...props
|
|
19
19
|
}
|
|
20
|
-
);
|
|
21
|
-
|
|
22
|
-
useIsomorphicLayoutEffect(() => {
|
|
20
|
+
), [hostElement, setHostElement] = React.useState(null);
|
|
21
|
+
return useIsomorphicLayoutEffect(() => {
|
|
23
22
|
setHostElement(host);
|
|
24
|
-
}, [host]);
|
|
25
|
-
if (hostElement && props.children) {
|
|
26
|
-
return createPortal(contents, hostElement);
|
|
27
|
-
}
|
|
28
|
-
return null;
|
|
23
|
+
}, [host]), hostElement && props.children ? createPortal(contents, hostElement) : null;
|
|
29
24
|
}
|
|
30
25
|
);
|
|
31
26
|
export {
|
package/dist/esm/Portal.js.map
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/Portal.tsx"],
|
|
4
|
-
"mappings": "
|
|
4
|
+
"mappings": "AACA,OAAO;AAEP,SAAS,OAAO,iCAAiC;AACjD,SAAS,cAAc;AACvB,YAAY,WAAW;AACvB,SAAS,oBAAoB;AAOvB;AAHC,MAAM,SAAS,MAAM;AAAA,EAC1B,CAAC,EAAE,OAAO,WAAW,UAAU,MAAM,GAAG,MAAM,MAAmB;AAC/D,UAAM,WACJ;AAAA,MAAC;AAAA;AAAA,QACC,SAAQ;AAAA,QACR,YAAU;AAAA,QAEV,UAAU,QAAQ,UAAU;AAAA,QAC5B,UAAU,QAAQ,UAAU;AAAA,QAC5B,WAAW,QAAQ,UAAU;AAAA,QAC7B,eAAc;AAAA,QACb,GAAG;AAAA;AAAA,IACN,GAGI,CAAC,aAAa,cAAc,IAAI,MAAM,SAAc,IAAI;AAM9D,WAJA,0BAA0B,MAAM;AAC9B,qBAAe,IAAI;AAAA,IACrB,GAAG,CAAC,IAAI,CAAC,GAEL,eAAe,MAAM,WAChB,aAAa,UAAU,WAAW,IAIpC;AAAA,EACT;AACF;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tamagui/portal",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.62.0",
|
|
4
4
|
"source": "src/index.ts",
|
|
5
5
|
"types": "./types/index.d.ts",
|
|
6
6
|
"main": "dist/cjs",
|
|
@@ -27,16 +27,16 @@
|
|
|
27
27
|
}
|
|
28
28
|
},
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"@tamagui/core": "1.
|
|
31
|
-
"@tamagui/stacks": "1.
|
|
32
|
-
"@tamagui/use-event": "1.
|
|
30
|
+
"@tamagui/core": "1.62.0",
|
|
31
|
+
"@tamagui/stacks": "1.62.0",
|
|
32
|
+
"@tamagui/use-event": "1.62.0"
|
|
33
33
|
},
|
|
34
34
|
"peerDependencies": {
|
|
35
35
|
"react": "*",
|
|
36
36
|
"react-native": "*"
|
|
37
37
|
},
|
|
38
38
|
"devDependencies": {
|
|
39
|
-
"@tamagui/build": "1.
|
|
39
|
+
"@tamagui/build": "1.62.0",
|
|
40
40
|
"react": "^18.2.0",
|
|
41
41
|
"react-native": "^0.72.1"
|
|
42
42
|
},
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { jsx } from "react/jsx-runtime";
|
|
2
|
-
import { YStack } from "@tamagui/stacks";
|
|
3
|
-
import * as React from "react";
|
|
4
|
-
import { Platform, RootTagContext } from "react-native";
|
|
5
|
-
import { PortalItem } from "./GorhomPortal";
|
|
6
|
-
const isFabric = global == null ? void 0 : global.nativeFabricUIManager;
|
|
7
|
-
let createPortal;
|
|
8
|
-
if (isFabric) {
|
|
9
|
-
createPortal = require("react-native/Libraries/Renderer/shims/ReactFabric").createPortal;
|
|
10
|
-
} else {
|
|
11
|
-
createPortal = require("react-native/Libraries/Renderer/shims/ReactNative").createPortal;
|
|
12
|
-
}
|
|
13
|
-
const Portal = (props) => {
|
|
14
|
-
const rootTag = React.useContext(RootTagContext);
|
|
15
|
-
const contents = /* @__PURE__ */ jsx(
|
|
16
|
-
YStack,
|
|
17
|
-
{
|
|
18
|
-
pointerEvents: "box-none",
|
|
19
|
-
fullscreen: true,
|
|
20
|
-
position: "absolute",
|
|
21
|
-
maxWidth: "100%",
|
|
22
|
-
zIndex: 1e5,
|
|
23
|
-
...props
|
|
24
|
-
}
|
|
25
|
-
);
|
|
26
|
-
if (Platform.OS === "android" || !rootTag) {
|
|
27
|
-
return /* @__PURE__ */ jsx(PortalItem, { hostName: "root", children: contents });
|
|
28
|
-
}
|
|
29
|
-
return createPortal(contents, rootTag);
|
|
30
|
-
};
|
|
31
|
-
export {
|
|
32
|
-
Portal
|
|
33
|
-
};
|
|
34
|
-
//# sourceMappingURL=Portal.native.js.map
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/Portal.native.tsx"],
|
|
4
|
-
"mappings": "AAoBI;AApBJ,SAAS,cAAc;AACvB,YAAY,WAAW;AAEvB,SAAS,UAAU,sBAAsB;AAEzC,SAAS,kBAAkB;AAG3B,MAAM,WAAW,iCAAQ;AACzB,IAAI;AACJ,IAAI,UAAU;AACZ,iBAAe,QAAQ,mDAAmD,EAAE;AAC9E,OAAO;AACL,iBAAe,QAAQ,mDAAmD,EAAE;AAC9E;AAEO,MAAM,SAAS,CAAC,UAAuB;AAC5C,QAAM,UAAU,MAAM,WAAW,cAAc;AAE/C,QAAM,WACJ;AAAA,IAAC;AAAA;AAAA,MACC,eAAc;AAAA,MACd,YAAU;AAAA,MACV,UAAS;AAAA,MACT,UAAS;AAAA,MACT,QAAQ;AAAA,MACP,GAAG;AAAA;AAAA,EACN;AAGF,MAAI,SAAS,OAAO,aAAa,CAAC,SAAS;AACzC,WAAO,oBAAC,cAAW,UAAS,QAAQ,oBAAS;AAAA,EAC/C;AAEA,SAAO,aAAa,UAAU,OAAO;AACvC;",
|
|
5
|
-
"names": []
|
|
6
|
-
}
|