@tamagui/portal 2.0.0-rc.9 → 2.0.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.cjs +177 -178
- package/dist/cjs/GorhomPortal.native.js +206 -203
- package/dist/cjs/GorhomPortal.native.js.map +1 -1
- package/dist/cjs/GorhomPortalItem.cjs +48 -27
- package/dist/cjs/GorhomPortalItem.native.js +100 -75
- package/dist/cjs/GorhomPortalItem.native.js.map +1 -1
- package/dist/cjs/Portal.cjs +54 -46
- package/dist/cjs/Portal.native.js +43 -38
- package/dist/cjs/Portal.native.js.map +1 -1
- package/dist/cjs/PortalProps.cjs +7 -5
- package/dist/cjs/PortalProps.native.js +7 -5
- package/dist/cjs/PortalProps.native.js.map +1 -1
- package/dist/cjs/constants.cjs +24 -18
- package/dist/cjs/constants.native.js +25 -21
- package/dist/cjs/constants.native.js.map +1 -1
- package/dist/cjs/helpers.cjs +19 -13
- package/dist/cjs/helpers.native.js +21 -19
- package/dist/cjs/helpers.native.js.map +1 -1
- package/dist/cjs/index.cjs +13 -11
- package/dist/cjs/index.native.js +13 -11
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/native-portal.cjs +31 -30
- package/dist/cjs/native-portal.native.js +36 -35
- package/dist/cjs/native-portal.native.js.map +1 -1
- package/dist/cjs/types.cjs +7 -5
- package/dist/cjs/types.native.js +7 -5
- package/dist/cjs/types.native.js.map +1 -1
- package/dist/esm/GorhomPortal.mjs +148 -151
- package/dist/esm/GorhomPortal.mjs.map +1 -1
- package/dist/esm/GorhomPortal.native.js +176 -175
- package/dist/esm/GorhomPortal.native.js.map +1 -1
- package/dist/esm/GorhomPortalItem.mjs +31 -12
- package/dist/esm/GorhomPortalItem.mjs.map +1 -1
- package/dist/esm/GorhomPortalItem.native.js +81 -58
- package/dist/esm/GorhomPortalItem.native.js.map +1 -1
- package/dist/esm/Portal.mjs +24 -19
- package/dist/esm/Portal.mjs.map +1 -1
- package/dist/esm/Portal.native.js +22 -19
- package/dist/esm/Portal.native.js.map +1 -1
- package/dist/esm/constants.mjs +10 -6
- package/dist/esm/constants.mjs.map +1 -1
- package/dist/esm/constants.native.js +10 -8
- package/dist/esm/constants.native.js.map +1 -1
- package/dist/esm/helpers.mjs +7 -3
- package/dist/esm/helpers.mjs.map +1 -1
- package/dist/esm/helpers.native.js +7 -7
- package/dist/esm/helpers.native.js.map +1 -1
- package/dist/esm/index.js +7 -10
- package/dist/esm/index.js.map +1 -6
- package/dist/esm/native-portal.mjs +19 -20
- package/dist/esm/native-portal.mjs.map +1 -1
- package/dist/esm/native-portal.native.js +24 -25
- package/dist/esm/native-portal.native.js.map +1 -1
- package/package.json +13 -13
- package/src/GorhomPortal.tsx +30 -15
- package/src/GorhomPortalItem.tsx +7 -2
- package/src/Portal.tsx +15 -20
- package/src/PortalProps.tsx +10 -2
- package/types/GorhomPortal.d.ts.map +1 -1
- package/types/GorhomPortalItem.d.ts +1 -1
- package/types/GorhomPortalItem.d.ts.map +1 -1
- package/types/Portal.d.ts +1 -1
- package/types/Portal.d.ts.map +1 -1
- package/types/PortalProps.d.ts +9 -2
- package/types/PortalProps.d.ts.map +1 -1
- package/dist/cjs/GorhomPortal.js +0 -159
- package/dist/cjs/GorhomPortal.js.map +0 -6
- package/dist/cjs/GorhomPortalItem.js +0 -41
- package/dist/cjs/GorhomPortalItem.js.map +0 -6
- package/dist/cjs/Portal.js +0 -59
- package/dist/cjs/Portal.js.map +0 -6
- package/dist/cjs/PortalProps.js +0 -14
- package/dist/cjs/PortalProps.js.map +0 -6
- package/dist/cjs/constants.js +0 -28
- package/dist/cjs/constants.js.map +0 -6
- package/dist/cjs/helpers.js +0 -26
- package/dist/cjs/helpers.js.map +0 -6
- package/dist/cjs/index.js +0 -27
- package/dist/cjs/index.js.map +0 -6
- package/dist/cjs/native-portal.js +0 -40
- package/dist/cjs/native-portal.js.map +0 -6
- package/dist/cjs/setup-native.js +0 -29
- package/dist/cjs/setup-native.js.map +0 -1
- package/dist/cjs/types.js +0 -14
- package/dist/cjs/types.js.map +0 -6
- package/dist/esm/GorhomPortal.js +0 -148
- package/dist/esm/GorhomPortal.js.map +0 -6
- package/dist/esm/GorhomPortalItem.js +0 -30
- package/dist/esm/GorhomPortalItem.js.map +0 -6
- package/dist/esm/Portal.js +0 -42
- package/dist/esm/Portal.js.map +0 -6
- package/dist/esm/PortalProps.js +0 -1
- package/dist/esm/PortalProps.js.map +0 -6
- package/dist/esm/constants.js +0 -13
- package/dist/esm/constants.js.map +0 -6
- package/dist/esm/helpers.js +0 -10
- package/dist/esm/helpers.js.map +0 -6
- package/dist/esm/native-portal.js +0 -24
- package/dist/esm/native-portal.js.map +0 -6
- package/dist/esm/setup-native.js +0 -3
- package/dist/esm/setup-native.js.map +0 -1
- package/dist/esm/types.js +0 -1
- package/dist/esm/types.js.map +0 -6
- package/types/setup-native.d.ts.map +0 -1
|
@@ -4,33 +4,35 @@ var __create = Object.create;
|
|
|
4
4
|
var __defProp = Object.defineProperty;
|
|
5
5
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
6
6
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
7
|
-
var __getProtoOf = Object.getPrototypeOf
|
|
8
|
-
|
|
7
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
8
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
9
9
|
var __export = (target, all) => {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
10
|
+
for (var name in all) __defProp(target, name, {
|
|
11
|
+
get: all[name],
|
|
12
|
+
enumerable: true
|
|
13
|
+
});
|
|
14
|
+
};
|
|
15
|
+
var __copyProps = (to, from, except, desc) => {
|
|
16
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
17
|
+
for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
17
18
|
get: () => from[key],
|
|
18
19
|
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
19
20
|
});
|
|
20
|
-
|
|
21
|
-
|
|
21
|
+
}
|
|
22
|
+
return to;
|
|
23
|
+
};
|
|
22
24
|
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
25
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
26
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
27
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
28
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
29
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
|
|
30
|
+
value: mod,
|
|
31
|
+
enumerable: true
|
|
32
|
+
}) : target, mod));
|
|
33
|
+
var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
34
|
+
value: true
|
|
35
|
+
}), mod);
|
|
34
36
|
var GorhomPortal_exports = {};
|
|
35
37
|
__export(GorhomPortal_exports, {
|
|
36
38
|
ACTIONS: () => ACTIONS,
|
|
@@ -40,204 +42,205 @@ __export(GorhomPortal_exports, {
|
|
|
40
42
|
usePortal: () => usePortal
|
|
41
43
|
});
|
|
42
44
|
module.exports = __toCommonJS(GorhomPortal_exports);
|
|
43
|
-
var import_jsx_runtime = require("react/jsx-runtime")
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
45
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
46
|
+
var import_constants = require("@tamagui/constants");
|
|
47
|
+
var import_native = require("@tamagui/native");
|
|
48
|
+
var import_start_transition = require("@tamagui/start-transition");
|
|
49
|
+
var import_react = __toESM(require("react"), 1);
|
|
50
|
+
require("./constants.native.js");
|
|
51
|
+
var ACTIONS = /* @__PURE__ */function (ACTIONS2) {
|
|
52
|
+
ACTIONS2[ACTIONS2["REGISTER_HOST"] = 0] = "REGISTER_HOST";
|
|
53
|
+
ACTIONS2[ACTIONS2["DEREGISTER_HOST"] = 1] = "DEREGISTER_HOST";
|
|
54
|
+
ACTIONS2[ACTIONS2["ADD_UPDATE_PORTAL"] = 2] = "ADD_UPDATE_PORTAL";
|
|
55
|
+
ACTIONS2[ACTIONS2["REMOVE_PORTAL"] = 3] = "REMOVE_PORTAL";
|
|
56
|
+
return ACTIONS2;
|
|
57
|
+
}(ACTIONS || {});
|
|
58
|
+
var INITIAL_STATE = {};
|
|
53
59
|
var registerHost = function (state, hostName) {
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
60
|
+
if (!(hostName in state)) state[hostName] = [];
|
|
61
|
+
return state;
|
|
62
|
+
};
|
|
63
|
+
var deregisterHost = function (state, hostName) {
|
|
64
|
+
delete state[hostName];
|
|
65
|
+
return state;
|
|
66
|
+
};
|
|
67
|
+
var addUpdatePortal = function (state, hostName, portalName, node) {
|
|
68
|
+
if (!(hostName in state)) state = registerHost(state, hostName);
|
|
69
|
+
var index = state[hostName].findIndex(function (item) {
|
|
70
|
+
return item.name === portalName;
|
|
71
|
+
});
|
|
72
|
+
if (index !== -1) state[hostName][index].node = node;else state[hostName].push({
|
|
73
|
+
name: portalName,
|
|
74
|
+
node
|
|
75
|
+
});
|
|
76
|
+
return state;
|
|
77
|
+
};
|
|
78
|
+
var removePortal = function (state, hostName, portalName) {
|
|
79
|
+
if (!(hostName in state)) {
|
|
80
|
+
if (process.env.NODE_ENV === "development") console.info(`Failed to remove portal '${portalName}', '${hostName}' was not registered!`);
|
|
81
|
+
return state;
|
|
82
|
+
}
|
|
83
|
+
var index = state[hostName].findIndex(function (item) {
|
|
84
|
+
return item.name === portalName;
|
|
85
|
+
});
|
|
86
|
+
if (index !== -1) state[hostName].splice(index, 1);
|
|
87
|
+
return state;
|
|
88
|
+
};
|
|
89
|
+
var reducer = function (state, action) {
|
|
90
|
+
var {
|
|
91
|
+
type
|
|
92
|
+
} = action;
|
|
93
|
+
switch (type) {
|
|
94
|
+
case 0:
|
|
95
|
+
return registerHost({
|
|
96
|
+
...state
|
|
97
|
+
}, action.hostName);
|
|
98
|
+
case 1:
|
|
99
|
+
return deregisterHost({
|
|
100
|
+
...state
|
|
101
|
+
}, action.hostName);
|
|
102
|
+
case 2:
|
|
103
|
+
return addUpdatePortal({
|
|
104
|
+
...state
|
|
105
|
+
}, action.hostName, action.portalName, action.node);
|
|
106
|
+
case 3:
|
|
107
|
+
return removePortal({
|
|
108
|
+
...state
|
|
109
|
+
}, action.hostName, action.portalName);
|
|
110
|
+
default:
|
|
111
|
+
return state;
|
|
112
|
+
}
|
|
113
|
+
};
|
|
114
|
+
var PortalStateContext = /* @__PURE__ */(0, import_react.createContext)(null);
|
|
115
|
+
var PortalDispatchContext = /* @__PURE__ */(0, import_react.createContext)(null);
|
|
116
|
+
var PortalProviderActiveContext = /* @__PURE__ */(0, import_react.createContext)(false);
|
|
117
|
+
var usePortalState = function (hostName) {
|
|
118
|
+
var state = (0, import_react.useContext)(PortalStateContext);
|
|
119
|
+
if (state === null) throw new Error("'PortalStateContext' cannot be null, please add 'PortalProvider' to the root component.");
|
|
120
|
+
return state[hostName] || [];
|
|
121
|
+
};
|
|
122
|
+
var usePortal = function () {
|
|
123
|
+
var hostName = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : "root";
|
|
124
|
+
var dispatch = (0, import_react.useContext)(PortalDispatchContext);
|
|
125
|
+
if (dispatch === null) throw new Error("'PortalDispatchContext' cannot be null, please add 'PortalProvider' to the root component.");
|
|
126
|
+
var registerHost2 = (0, import_react.useCallback)(function () {
|
|
127
|
+
dispatch({
|
|
128
|
+
type: 0,
|
|
129
|
+
hostName
|
|
130
|
+
});
|
|
131
|
+
}, []);
|
|
132
|
+
var deregisterHost2 = (0, import_react.useCallback)(function () {
|
|
133
|
+
dispatch({
|
|
134
|
+
type: 1,
|
|
135
|
+
hostName
|
|
63
136
|
});
|
|
64
|
-
|
|
65
|
-
|
|
137
|
+
}, []);
|
|
138
|
+
var addUpdatePortal2 = (0, import_react.useCallback)(function (name, node) {
|
|
139
|
+
dispatch({
|
|
140
|
+
type: 2,
|
|
141
|
+
hostName,
|
|
142
|
+
portalName: name,
|
|
66
143
|
node
|
|
67
|
-
}), state;
|
|
68
|
-
},
|
|
69
|
-
removePortal = function (state, hostName, portalName) {
|
|
70
|
-
if (!(hostName in state)) return process.env.NODE_ENV === "development" && console.info(`Failed to remove portal '${portalName}', '${hostName}' was not registered!`), state;
|
|
71
|
-
var index = state[hostName].findIndex(function (item) {
|
|
72
|
-
return item.name === portalName;
|
|
73
144
|
});
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
var state = (0, import_react.useContext)(PortalStateContext);
|
|
105
|
-
if (state === null) throw new Error("'PortalStateContext' cannot be null, please add 'PortalProvider' to the root component.");
|
|
106
|
-
return state[hostName] || [];
|
|
107
|
-
},
|
|
108
|
-
usePortal = function () {
|
|
109
|
-
var hostName = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : "root",
|
|
110
|
-
dispatch = (0, import_react.useContext)(PortalDispatchContext);
|
|
111
|
-
if (dispatch === null) throw new Error("'PortalDispatchContext' cannot be null, please add 'PortalProvider' to the root component.");
|
|
112
|
-
var registerHost2 = (0, import_react.useCallback)(function () {
|
|
113
|
-
dispatch({
|
|
114
|
-
type: 0,
|
|
115
|
-
hostName
|
|
116
|
-
});
|
|
117
|
-
}, []),
|
|
118
|
-
deregisterHost2 = (0, import_react.useCallback)(function () {
|
|
119
|
-
dispatch({
|
|
120
|
-
type: 1,
|
|
121
|
-
hostName
|
|
122
|
-
});
|
|
123
|
-
}, []),
|
|
124
|
-
addUpdatePortal2 = (0, import_react.useCallback)(function (name, node) {
|
|
125
|
-
dispatch({
|
|
126
|
-
type: 2,
|
|
127
|
-
hostName,
|
|
128
|
-
portalName: name,
|
|
129
|
-
node
|
|
130
|
-
});
|
|
131
|
-
}, []),
|
|
132
|
-
removePortal2 = (0, import_react.useCallback)(function (name) {
|
|
133
|
-
dispatch({
|
|
134
|
-
type: 3,
|
|
135
|
-
hostName,
|
|
136
|
-
portalName: name
|
|
137
|
-
});
|
|
138
|
-
}, []);
|
|
139
|
-
return {
|
|
140
|
-
registerHost: registerHost2,
|
|
141
|
-
deregisterHost: deregisterHost2,
|
|
142
|
-
addPortal: addUpdatePortal2,
|
|
143
|
-
updatePortal: addUpdatePortal2,
|
|
144
|
-
removePortal: removePortal2
|
|
145
|
-
};
|
|
146
|
-
},
|
|
147
|
-
PortalProviderComponent = function (param) {
|
|
148
|
-
var {
|
|
149
|
-
rootHostName = "root",
|
|
150
|
-
shouldAddRootHost = !0,
|
|
151
|
-
children
|
|
152
|
-
} = param,
|
|
153
|
-
[state, dispatch] = (0, import_react.useReducer)(reducer, INITIAL_STATE),
|
|
154
|
-
transitionDispatch = (0, import_react.useMemo)(function () {
|
|
155
|
-
var next = function (value) {
|
|
156
|
-
(0, import_start_transition.startTransition)(function () {
|
|
157
|
-
dispatch(value);
|
|
158
|
-
});
|
|
159
|
-
};
|
|
160
|
-
return next;
|
|
161
|
-
}, [dispatch]),
|
|
162
|
-
portalState = (0, import_native.getPortal)().state,
|
|
163
|
-
content = /* @__PURE__ */(0, import_jsx_runtime.jsx)(PortalDispatchContext.Provider, {
|
|
164
|
-
value: transitionDispatch,
|
|
165
|
-
children: /* @__PURE__ */(0, import_jsx_runtime.jsxs)(PortalStateContext.Provider, {
|
|
166
|
-
value: state,
|
|
167
|
-
children: [children, shouldAddRootHost && /* @__PURE__ */(0, import_jsx_runtime.jsx)(PortalHost, {
|
|
168
|
-
name: rootHostName
|
|
169
|
-
})]
|
|
170
|
-
})
|
|
145
|
+
}, []);
|
|
146
|
+
return {
|
|
147
|
+
registerHost: registerHost2,
|
|
148
|
+
deregisterHost: deregisterHost2,
|
|
149
|
+
addPortal: addUpdatePortal2,
|
|
150
|
+
updatePortal: addUpdatePortal2,
|
|
151
|
+
removePortal: (0, import_react.useCallback)(function (name) {
|
|
152
|
+
dispatch({
|
|
153
|
+
type: 3,
|
|
154
|
+
hostName,
|
|
155
|
+
portalName: name
|
|
156
|
+
});
|
|
157
|
+
}, [])
|
|
158
|
+
};
|
|
159
|
+
};
|
|
160
|
+
var PortalProviderComponent = function (param) {
|
|
161
|
+
var {
|
|
162
|
+
rootHostName = "root",
|
|
163
|
+
shouldAddRootHost = true,
|
|
164
|
+
children
|
|
165
|
+
} = param;
|
|
166
|
+
var isAlreadyInProvider = (0, import_react.useContext)(PortalProviderActiveContext);
|
|
167
|
+
if (process.env.NODE_ENV === "development") {
|
|
168
|
+
if (isAlreadyInProvider && shouldAddRootHost) console.warn(`[tamagui] Nested PortalProvider with shouldAddRootHost detected. This causes hydration mismatches. TamaguiProvider from 'tamagui' already includes PortalProvider - remove the explicit PortalProvider wrapper or set shouldAddRootHost={false}.`);
|
|
169
|
+
}
|
|
170
|
+
var [state, dispatch] = (0, import_react.useReducer)(reducer, INITIAL_STATE);
|
|
171
|
+
var transitionDispatch = (0, import_react.useMemo)(function () {
|
|
172
|
+
var next = function (value) {
|
|
173
|
+
(0, import_start_transition.startTransition)(function () {
|
|
174
|
+
dispatch(value);
|
|
171
175
|
});
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
176
|
+
};
|
|
177
|
+
return next;
|
|
178
|
+
}, [dispatch]);
|
|
179
|
+
var portalState = (0, import_native.getPortal)().state;
|
|
180
|
+
var content = /* @__PURE__ */(0, import_jsx_runtime.jsx)(PortalProviderActiveContext.Provider, {
|
|
181
|
+
value: true,
|
|
182
|
+
children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(PortalDispatchContext.Provider, {
|
|
183
|
+
value: transitionDispatch,
|
|
184
|
+
children: /* @__PURE__ */(0, import_jsx_runtime.jsxs)(PortalStateContext.Provider, {
|
|
185
|
+
value: state,
|
|
186
|
+
children: [children, shouldAddRootHost && /* @__PURE__ */(0, import_jsx_runtime.jsx)(PortalHost, {
|
|
187
|
+
name: rootHostName
|
|
188
|
+
})]
|
|
189
|
+
})
|
|
190
|
+
})
|
|
191
|
+
});
|
|
192
|
+
if (portalState.type === "teleport") return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_native.NativePortalProvider, {
|
|
193
|
+
children: content
|
|
194
|
+
});
|
|
195
|
+
return content;
|
|
196
|
+
};
|
|
197
|
+
var PortalProvider = /* @__PURE__ */(0, import_react.memo)(PortalProviderComponent);
|
|
177
198
|
PortalProvider.displayName = "PortalProvider";
|
|
178
199
|
var defaultRenderer = function (children) {
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
});
|
|
182
|
-
},
|
|
183
|
-
PortalHost = /* @__PURE__ */(0, import_react.memo)(function (props) {
|
|
184
|
-
if (import_constants.isWeb) return /* @__PURE__ */(0, import_jsx_runtime.jsx)(PortalHostWeb, {
|
|
185
|
-
...props
|
|
186
|
-
});
|
|
187
|
-
var portalState = (0, import_native.getPortal)().state;
|
|
188
|
-
return portalState.type === "teleport" ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_native.NativePortalHost, {
|
|
189
|
-
name: props.name
|
|
190
|
-
}) : /* @__PURE__ */(0, import_jsx_runtime.jsx)(PortalHostNonNative, {
|
|
191
|
-
...props
|
|
192
|
-
});
|
|
200
|
+
return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, {
|
|
201
|
+
children
|
|
193
202
|
});
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
};
|
|
199
|
-
}, [props.name]), /* @__PURE__ */(0, import_jsx_runtime.jsx)("div", {
|
|
200
|
-
style: {
|
|
201
|
-
display: "contents"
|
|
202
|
-
},
|
|
203
|
-
ref: function (node) {
|
|
204
|
-
if (node) {
|
|
205
|
-
var _portalListeners_props_name;
|
|
206
|
-
import_constants2.allPortalHosts.set(props.name, node), (_portalListeners_props_name = import_constants2.portalListeners[props.name]) === null || _portalListeners_props_name === void 0 || _portalListeners_props_name.forEach(function (x) {
|
|
207
|
-
return x(node);
|
|
208
|
-
});
|
|
209
|
-
}
|
|
210
|
-
}
|
|
203
|
+
};
|
|
204
|
+
var PortalHost = /* @__PURE__ */(0, import_react.memo)(function PortalHost2(props) {
|
|
205
|
+
if ((0, import_native.getPortal)().state.type === "teleport") return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_native.NativePortalHost, {
|
|
206
|
+
name: props.name
|
|
211
207
|
});
|
|
212
|
-
|
|
208
|
+
return /* @__PURE__ */(0, import_jsx_runtime.jsx)(PortalHostNonNative, {
|
|
209
|
+
...props
|
|
210
|
+
});
|
|
211
|
+
});
|
|
213
212
|
function PortalHostNonNative(props) {
|
|
214
213
|
var {
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
214
|
+
name,
|
|
215
|
+
forwardProps,
|
|
216
|
+
render = defaultRenderer
|
|
217
|
+
} = props;
|
|
218
|
+
var state = usePortalState(name);
|
|
219
|
+
var {
|
|
220
|
+
registerHost: registerHost2,
|
|
221
|
+
deregisterHost: deregisterHost2
|
|
222
|
+
} = usePortal(props.name);
|
|
223
|
+
(0, import_constants.useIsomorphicLayoutEffect)(function () {
|
|
224
|
+
registerHost2();
|
|
225
|
+
return function () {
|
|
226
226
|
deregisterHost2();
|
|
227
227
|
};
|
|
228
|
-
}, [])
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
228
|
+
}, []);
|
|
229
|
+
if (forwardProps) return render(state.map(function (item) {
|
|
230
|
+
var next = item.node;
|
|
231
|
+
var {
|
|
232
|
+
children,
|
|
233
|
+
...restForwardProps
|
|
234
|
+
} = forwardProps;
|
|
235
|
+
if (forwardProps) return import_react.default.Children.map(next, function (child) {
|
|
235
236
|
return /* @__PURE__ */import_react.default.isValidElement(child) ? /* @__PURE__ */import_react.default.cloneElement(child, {
|
|
236
237
|
key: child.key,
|
|
237
238
|
...restForwardProps
|
|
238
239
|
}) : child;
|
|
239
|
-
})
|
|
240
|
-
|
|
240
|
+
});
|
|
241
|
+
return next;
|
|
242
|
+
}));
|
|
243
|
+
return render(state.map(function (item) {
|
|
241
244
|
return item.node;
|
|
242
245
|
}));
|
|
243
246
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["isNodeMode","mod","__esModule","__defProp","target","value","enumerable","__toCommonJS","__copyProps","GorhomPortal_exports","__export","ACTIONS","INITIAL_STATE","PortalHost","PortalProvider","usePortal","module","exports","import_jsx_runtime","require","import_constants","import_native","import_start_transition","import_react","__toESM","ACTIONS2","registerHost","state","hostName","deregisterHost","addUpdatePortal","portalName","node","index","findIndex","item","name","push","removePortal","process","env","NODE_ENV","console","info","splice","reducer","action","type","PortalStateContext","createContext","PortalDispatchContext","PortalProviderActiveContext","usePortalState","useContext","Error","arguments","length","dispatch","registerHost2","useCallback","deregisterHost2","addUpdatePortal2","addPortal","updatePortal","PortalProviderComponent","param","rootHostName","shouldAddRootHost","children","isAlreadyInProvider","warn","useReducer","transitionDispatch","useMemo","next","startTransition","portalState","getPortal","content","jsx","Provider","jsxs","NativePortalProvider","memo","displayName","defaultRenderer","Fragment","PortalHost2","props","NativePortalHost","PortalHostNonNative","forwardProps","render","useIsomorphicLayoutEffect","map","restForwardProps","default","Children","child","isValidElement","cloneElement","key"],"sources":["../../src/GorhomPortal.tsx"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAAA,UAAA,KAAAC,GAAA,KAAAA,GAAA,CAAAC,UAAA,GAAAC,SAAA,CAAAC,MAAA;EAAAC,KAAA,EAAAJ,GAAA;EAAAK,UAAA;AAAA,KAAAF,MAAA,EAAAH,GAAA;AAAA,IAAAM,YAAA,GAAAN,GAAA,IAAAO,WAAA,CAAAL,SAAA;EAAAE,KAAA;AAAA,IAAAJ,GAAA;AAAA,IAAAQ,oBAAA;AAAAC,QAAA,CAAAD,oBAAA;EAIAE,OAAA,EAAAA,CAAA,KAAAA,OAA0C;EAC1CC,aAAA,EAAAA,CAAA,KAAkEA,aAAA;EAClEC,UAAA,EAAAA,CAAA,KAAAA,UAAA;EAEAC,cAAA,EAAAA,CAAA,KAOOA,cAAA;EACPC,SAAA,EAAAA,CAAA,KAAAA;AAyPQ;AAlPRC,MAAK,CAAAC,OAAL,GAAAV,YAAA,CAAAE,oBAAA;AACE,IAAAS,kBAAA,GAAAC,OAAA;AACA,IAAAC,gBAAA,GAAAD,OAAA;AACA,IAAAE,aAAA,GAAAF,OAAA;AACA,IAAAG,uBAAA,GAAAH,OAAA;AAJG,IAAAI,YAAA,GAAAC,OAAA,CAAAL,OAAA;AAAAA,OAAA;AAOL,IAAAR,OAAM,kBAAiB,UAAAc,QAAA;EAiCvBA,QAAM,CAAAA,QAAA,gBAA0D,SAAqB;EACnFA,QAAM,CAAAA,QAAA,kBAAoB;EACxBA,QAAA,CAAMA,QAAQ,oBAAK;EAAAA,QACrB,CAAAA,QAAA;EACA,OAAAA,QAAO;AACT,EAAAd,OAAA;AAEA,IAAAC,aAAM;AACJ,IAAAc,YAAa,YAAAA,CAAQC,KAAA,EAAAC,QAAA;EACrB,MAAAA,QAAO,IAAAD,KAAA,GAAAA,KAAA,CAAAC,QAAA;EACT,OAAAD,KAAA;AAEA;AAME,IAAAE,cAAM,GAAY,SAAAA,CAAQF,KAAA,EAAAC,QAAA;EACxB,OAAAD,KAAQ,CAAAC,QAAA;EAA4B,OACtCD,KAAA;AAKA;AACA,IAAAG,eAAc,GAAI,SAAAA,CAAAH,KAAA,EAAAC,QAAA,EAAAG,UAAA,EAAAC,IAAA;EAChB,MAAAJ,QAAM,IAAQD,KAAE,CAAK,EAAEA,KAAA,GAAOD,YAAA,CAAAC,KAAA,EAAAC,QAAA;EAAA,IAChCK,KAAO,GAAAN,KAAA,CAAAC,QAAA,EAAAM,SAAA,WAAAC,IAAA;IACL,OAAAA,IAAM,CAAAC,IAAQ,KAAEL,UAAK;EAAA;EACb,IAAAE,KACN,SAAAN,KAAA,CAAAC,QAAA,EAAAK,KAAA,EAAAD,IAAA,GAAAA,IAAA,MACDL,KAAA,CAAAC,QAAA,EAAAS,IAAA;IACHD,IAAA,EAAAL,UAAA;IACAC;EACF;EAEA,OAAML,KAAA;AAKJ;AACE,IAAAW,YAAY,YAAAA,CAAIX,KAAa,EAAAC,QAAA,EAAAG,UAAe;EAC1C,MAAAH,QAAQ,IAAAD,KAAA;IAAA,IAAAY,OACN,CAAAC,GAAA,CAAAC,QAAA,kBAA4B,EAAUC,OAAO,CAAAC,IAAA,6BAAQZ,UAAA,OAAAH,QAAA;IAAA,OACvDD,KAAA;EAAA;EAEF,IAAAM,KAAA,GAAON,KAAA,CAAAC,QAAA,EAAAM,SAAA,WAAAC,IAAA;IACT,OAAAA,IAAA,CAAAC,IAAA,KAAAL,UAAA;EAEA;EACA,IAAAE,KAAI,MAAU,GAAIN,KAAA,CAAAC,QAAM,CAAQ,CAAAgB,MAAE,CAAAX,KAAO,GAAO,CAAC;EACjD,OAAAN,KAAO;AACT;AAEA,IAAAkB,OAAM,YAAAA,CAAWlB,KAA0C,EAAAmB,MAAwB;EACjF;IAAAC;EAAQ,IAAKD,MAAI;EACjB,QAAAC,IAAQ;IAAM,KACZ;MAAK,OAAArB,YAAA;QAAA,GAAAC;MAAA,GAAAmB,MAAA,CAAAlB,QAAA;IACH;MAAA,OAAOC,cAAkB;QAAA,GAAMF;MAAG,GAAAmB,MAAO,CAAAlB,QAAQ;IAAA,KACnD;MAAK,OAAAE,eAAA;QAAA,GAAAH;MAAA,GAAAmB,MAAA,CAAAlB,QAAA,EAAAkB,MAAA,CAAAf,UAAA,EAAAe,MAAA,CAAAd,IAAA;IACH;MAAA,OAAOM,YAAe,CAAE;QAAA,GAAGX;MAAM,CAAG,EAAAmB,MAAO,CAAAlB,QAAQ,EAAAkB,MAAA,CAAAf,UAAA;IAAA;MAChD,OAAAJ,KAAA;EACH;AAAO;AACM,IAAAqB,kBACJ,sBAAAzB,YAAA,CAAA0B,aAAA;AAAA,IAAAC,qBAC2B,sBAAA3B,YAAA,CAAA0B,aAAA;AAAA,IAAAE,2BACA,sBAAA5B,YAAA,CAAA0B,aAAA;AAAA,IAAAG,cACpC,YAAAA,CAAAxB,QAAA;EAAA,IACFD,KAAK,OAAAJ,YAAA,CAAA8B,UAAA,EAAAL,kBAAA;EACH,IAAArB,KAAA,KAAO,gBAAA2B,KAAA;EAAA,OACL3B,KAAK,CAAAC,QAAM;AAAA;AACJ,IAAAb,SACN,GAA8B,SAAAA,CAAA;EAAA,IAAAa,QACjC,GAAA2B,SAAA,CAAAC,MAAA,QAAAD,SAAA,iBAAAA,SAAA;EAAA,IACFE,QAAA,OAAAlC,YAAA,CAAA8B,UAAA,EAAAH,qBAAA;EACE,IAAAO,QAAO,qBAAAH,KAAA;EAAA,IACXI,aAAA,OAAAnC,YAAA,CAAAoC,WAAA;IACFF,QAAA;MAEAV,IAAM;MACNnB;IACA;EAEA,KAAM;EACJ,IAAAgC,eAAc,OAAArC,YAAA,CAAAoC,WAAW,cAAkB;IAE3CF,QAAI;MACFV,IAAA,GAAM;MAAInB;IACR,EACF;EAAA,CACF;EAEA,IAAAiC,gBAAa,GAAQ,IAAKtC,YAAC,CAAAoC,WAAA,YAAAvB,IAAA,EAAAJ,IAAA;IAC7ByB,QAAA;MAEOV,IAAM;MACXnB,QAAM;MAENG,UAAI,EAAAK,IAAa;MACfJ;IAAU;EACR,GACF;EAAA,OACF;IAGAN,YAAM,EAAAgC,aAAe;IACnB7B,cAAS,EAAA+B,eAAA;IAAAE,SACP,EAAMD,gBAAA;IAAAE,YACN,EAAAF,gBAAA;IAAAvB,YACD,MAAAf,YAAA,CAAAoC,WAAA,YAAAvB,IAAA;MACHqB,QAAK;QAELV,IAAM;QACJnB,QAAA;QAASG,UACD,EAAAK;MAAA;IACN,GACD;EAAA,CACH;AAEA;AACE,IAAA4B,uBAAS,YAAAA,CAAAC,KAAA;EAAA;IACPC,YAAM;IAAAC,iBAAA;IAAAC;EAAA,IAAAH,KAAA;EAAA,IAAAI,mBACN,OAAA9C,YAAA,CAAA8B,UAAA,EAAAF,2BAAA;EAAA,IAAAZ,OACA,CAAAC,GAAA,CAAAC,QAAY;IAAA,IACZ4B,mBAAA,IAAAF,iBAAA,EAAAzB,OAAA,CAAA4B,IAAA;EAAA;EACD,IACA,CAAC3C,KAAC,EAAA8B,QAAA,QAAAlC,YAAA,CAAAgD,UAAA,EAAA1B,OAAA,EAAAjC,aAAA;EAEL,IAAA4D,kBAAM,KAAe,EAAAjD,YAAA,CAAAkD,OAAA,cAAa;IAChC,IAAAC,IAAA,GAAS,SAAAA,CAAArE,KAAA;MAAA,IACPiB,uBAAM,CAAAqD,eAAA;QAAAlB,QACN,CAAApD,KAAA;MAAA;IACY;IAEhB,OAAKqE,IAAA;EAGL,IAAAjB,QAAO;EAAA,IACLmB,WAAA,OAAAvD,aAAA,CAAAwD,SAAA,IAAAlD,KAAA;EAAA,IACAmD,OAAA,sBAAA5D,kBAAA,CAAA6D,GAAA,EAAA5B,2BAAA,CAAA6B,QAAA;IAAA3E,KACA;IAAW+D,QACX,iBAAc,IAAAlD,kBAAA,CAAA6D,GAAA,EAAA7B,qBAAA,CAAA8B,QAAA;MAAA3E,KACd,EAAAmE,kBAAA;MACFJ,QAAA,qBAAAlD,kBAAA,CAAA+D,IAAA,EAAAjC,kBAAA,CAAAgC,QAAA;QACF3E,KAAA,EAAAsB,KAAA;QAsBAyC,QAAM,GAAAA,QAAA,EAAAD,iBAA2B,uBAAAjD,kBAAA,CAAA6D,GAAA,EAAAlE,UAAA;UAAAuB,IAAA,EAAA8B;QAAA;MAC/B;IACA;EAAoB,CACpB;EACF,IAAAU,WAA2B,CAAA7B,IAAA,2CAAA7B,kBAAA,CAAA6D,GAAA,EAAA1D,aAAA,CAAA6D,oBAAA;IAAAd,QAAA,EAAAU;EAAA;EACzB,OAAMA,OAAA;AAEN;AACE,IAAAhE,cAAI,kBAAuB,IAAAS,YAAmB,CAAA4D,IAAA,EAAAnB,uBAAA;AAC5ClD,cAAQ,CAAAsE,WAAA;AAAA,IAAAC,eACN,YAAAA,CAAAjB,QAAA;EAAA,OAGF,mBAAAlD,kBAAA,CAAA6D,GAAA,EAAA7D,kBAAA,CAAAoE,QAAA;IAAAlB;EAAA;AAAA;AACF,IACFvD,UAAA,sBAAAU,YAAA,CAAA4D,IAAA,WAAAI,YAAAC,KAAA;EAEA,QAAOnE,aAAO,CAAAwD,SAAY,IAAAlD,KAAA,CAAAoB,IAAA,eAAW,SAAS,eAAa,IAAA7B,kBAAA,CAAA6D,GAAA,EAAA1D,aAAA,CAAAoE,gBAAA;IAAArD,IAAA,EAAAoD,KAAA,CAAApD;EAAA;EAC3D,OAAM,mBAAAlB,kBAAqB,CAAA6D,GAAA,EAAAW,mBAAc;IAAA,GAAAF;EAAA;AACvC;AACE,SAAAE,oBAAAF,KAAA;EACE;IAAApD,IAAA;IAAAuD,YAAc;IAAAC,MAAA,GAAAP;EAAA,IAAAG,KAAA;EAAA,IAAA7D,KACf,GAAAyB,cAAA,CAAAhB,IAAA;EAAA,IACH;IAAAV,YAAA,EAAAgC,aAAA;IAAA7B,cAAA,EAAA+B;EAAA,IAAA7C,SAAA,CAAAyE,KAAA,CAAApD,IAAA;EACA,IAAAhB,gBAAO,CAAAyE,yBAAA;IACTnC,aAAa;IAEb,OAAM;MAINE,eACE;IAGO;EAAA,GACA;EAAqD,IACxD+B,YAEJ,SAAAC,MAAA,CAAAjE,KAAA,CAAAmE,GAAA,WAAA3D,IAAA;IAIF,IAAIuC,IAAA,GAAAvC,IAAA,CAAYH,IAAA;IACd;MAAAoC,QAAO;MAAA,GAAA2B;IAAA,IAAAJ,YAAA;IACT,IAAAA,YAAA,SAAApE,YAAA,CAAAyE,OAAA,CAAAC,QAAA,CAAAH,GAAA,CAAApB,IAAA,YAAAwB,KAAA;MAEA,OAAO,eAAA3E,YAAA,CAAAyE,OAAA,CAAAG,cAAA,CAAAD,KAAA,mBAAA3E,YAAA,CAAAyE,OAAA,CAAAI,YAAA,CAAAF,KAAA;QACTG,GAAA,EAAAH,KAAA,CAAAG,GAAA;QAEO,GAAMN;MACb,KAAAG,KAAA;IAkBA;IAEO,OAAMxB,IAAA;EACX;EACE,OAAAkB,MAAO,CAAAjE,KAAA,CAAAmE,GAAA,WAAA3D,IAAA;IACT,OAAOA,IAAA,CAAAH,IAAA;EACL;AAGA","ignoreList":[]}
|
|
@@ -3,51 +3,72 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
|
3
3
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
4
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
5
|
var __export = (target, all) => {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
6
|
+
for (var name in all) __defProp(target, name, {
|
|
7
|
+
get: all[name],
|
|
8
|
+
enumerable: true
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
13
14
|
get: () => from[key],
|
|
14
15
|
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
15
16
|
});
|
|
16
|
-
|
|
17
|
-
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
18
20
|
var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
19
|
-
value:
|
|
21
|
+
value: true
|
|
20
22
|
}), mod);
|
|
21
23
|
var GorhomPortalItem_exports = {};
|
|
22
24
|
__export(GorhomPortalItem_exports, {
|
|
23
25
|
GorhomPortalItem: () => GorhomPortalItem
|
|
24
26
|
});
|
|
25
27
|
module.exports = __toCommonJS(GorhomPortalItem_exports);
|
|
26
|
-
var import_constants = require("@tamagui/constants")
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
28
|
+
var import_constants = require("@tamagui/constants");
|
|
29
|
+
var import_web = require("@tamagui/web");
|
|
30
|
+
var import_react = require("react");
|
|
31
|
+
var import_react_dom = require("react-dom");
|
|
32
|
+
var import_constants2 = require("./constants.cjs");
|
|
33
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
32
34
|
const GorhomPortalItem = props => {
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
35
|
+
const theme = (0, import_web.useThemeName)();
|
|
36
|
+
if (process.env.NODE_ENV === "development") {
|
|
37
|
+
if (!props.hostName && !props.passThrough) {
|
|
38
|
+
console.warn(`No hostName`);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
const cur = import_constants2.allPortalHosts.get(props.hostName || "");
|
|
42
|
+
const [node, setNode] = (0, import_react.useState)(cur);
|
|
43
|
+
(0, import_constants.useIsomorphicLayoutEffect)(() => {
|
|
37
44
|
if (!props.hostName) return;
|
|
38
45
|
const listener = newNode => {
|
|
39
46
|
setNode(newNode);
|
|
40
47
|
};
|
|
41
|
-
import_constants2.portalListeners[props.hostName] ||= /* @__PURE__ */new Set()
|
|
48
|
+
import_constants2.portalListeners[props.hostName] ||= /* @__PURE__ */new Set();
|
|
49
|
+
import_constants2.portalListeners[props.hostName].add(listener);
|
|
42
50
|
const existingHost = import_constants2.allPortalHosts.get(props.hostName);
|
|
43
|
-
|
|
51
|
+
if (existingHost && existingHost !== node) {
|
|
52
|
+
setNode(existingHost);
|
|
53
|
+
}
|
|
54
|
+
return () => {
|
|
44
55
|
import_constants2.portalListeners[props.hostName]?.delete(listener);
|
|
45
56
|
};
|
|
46
|
-
}, [props.hostName])
|
|
47
|
-
|
|
48
|
-
|
|
57
|
+
}, [props.hostName]);
|
|
58
|
+
(0, import_constants.useIsomorphicLayoutEffect)(() => {
|
|
59
|
+
if (cur && cur !== node) {
|
|
60
|
+
setNode(cur);
|
|
61
|
+
}
|
|
62
|
+
}, [cur, node]);
|
|
63
|
+
if (props.passThrough) {
|
|
64
|
+
return props.children;
|
|
65
|
+
}
|
|
49
66
|
const actualNode = node?.isConnected ? node : null;
|
|
50
|
-
|
|
67
|
+
if (!actualNode) {
|
|
68
|
+
return null;
|
|
69
|
+
}
|
|
70
|
+
return (0, import_react_dom.createPortal)(/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_web.TamaguiRoot, {
|
|
71
|
+
theme,
|
|
51
72
|
children: props.children
|
|
52
|
-
}), actualNode)
|
|
73
|
+
}), actualNode);
|
|
53
74
|
};
|