@tamagui/portal 1.116.4 → 1.116.6
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 +14 -4
- package/dist/cjs/GorhomPortal.js +12 -4
- package/dist/cjs/GorhomPortal.js.map +2 -2
- package/dist/cjs/GorhomPortal.native.js +23 -4
- package/dist/cjs/GorhomPortal.native.js.map +2 -2
- package/dist/esm/GorhomPortal.js +14 -5
- package/dist/esm/GorhomPortal.js.map +2 -2
- package/dist/esm/GorhomPortal.mjs +15 -5
- package/dist/esm/GorhomPortal.mjs.map +1 -1
- package/dist/esm/GorhomPortal.native.js +24 -5
- package/dist/esm/GorhomPortal.native.js.map +2 -2
- package/package.json +8 -8
- package/src/GorhomPortal.tsx +26 -3
- package/types/GorhomPortal.d.ts.map +1 -1
|
@@ -165,14 +165,15 @@ const defaultRenderer = children => /* @__PURE__ */(0, import_jsx_runtime.jsx)(i
|
|
|
165
165
|
...props
|
|
166
166
|
});
|
|
167
167
|
}),
|
|
168
|
-
allPortalHosts = /* @__PURE__ */new Map()
|
|
168
|
+
allPortalHosts = /* @__PURE__ */new Map(),
|
|
169
|
+
listeners = {};
|
|
169
170
|
function PortalHostWeb(props) {
|
|
170
171
|
return /* @__PURE__ */(0, import_jsx_runtime.jsx)("div", {
|
|
171
172
|
style: {
|
|
172
173
|
display: "contents"
|
|
173
174
|
},
|
|
174
175
|
ref: node => {
|
|
175
|
-
node ? allPortalHosts.set(props.name, node) : allPortalHosts.delete(props.name);
|
|
176
|
+
node ? (allPortalHosts.set(props.name, node), listeners[props.name]?.forEach(x => x(node))) : allPortalHosts.delete(props.name);
|
|
176
177
|
}
|
|
177
178
|
});
|
|
178
179
|
}
|
|
@@ -212,8 +213,17 @@ const PortalItem = (0, import_react.memo)(function (props) {
|
|
|
212
213
|
}),
|
|
213
214
|
PortalItemWeb = props => {
|
|
214
215
|
if (!props.hostName) throw new Error("No name");
|
|
215
|
-
const
|
|
216
|
-
|
|
216
|
+
const cur = allPortalHosts.get(props.hostName),
|
|
217
|
+
[node, setNode] = (0, import_react.useState)(cur);
|
|
218
|
+
return cur && !node && setNode(cur), (0, import_react.useEffect)(() => {
|
|
219
|
+
if (!props.hostName || node) return;
|
|
220
|
+
const listener = node2 => {
|
|
221
|
+
setNode(node2);
|
|
222
|
+
};
|
|
223
|
+
return listeners[props.hostName] ||= /* @__PURE__ */new Set(), listeners[props.hostName].add(listener), () => {
|
|
224
|
+
listeners[props.hostName]?.delete(listener);
|
|
225
|
+
};
|
|
226
|
+
}, [node]), node ? (0, import_react_dom.createPortal)(props.children, node) : null;
|
|
217
227
|
},
|
|
218
228
|
NonNativePortalComponent = props => {
|
|
219
229
|
const {
|
package/dist/cjs/GorhomPortal.js
CHANGED
|
@@ -131,7 +131,7 @@ const registerHost = (state, hostName) => (hostName in state || (state[hostName]
|
|
|
131
131
|
PortalProvider.displayName = "PortalProvider";
|
|
132
132
|
const defaultRenderer = (children) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, { children }), PortalHost = (0, import_react.memo)(function(props) {
|
|
133
133
|
return import_constants.isWeb ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(PortalHostWeb, { ...props }) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(PortalHostNonNative, { ...props });
|
|
134
|
-
}), allPortalHosts = /* @__PURE__ */ new Map();
|
|
134
|
+
}), allPortalHosts = /* @__PURE__ */ new Map(), listeners = {};
|
|
135
135
|
function PortalHostWeb(props) {
|
|
136
136
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
137
137
|
"div",
|
|
@@ -140,7 +140,7 @@ function PortalHostWeb(props) {
|
|
|
140
140
|
display: "contents"
|
|
141
141
|
},
|
|
142
142
|
ref: (node) => {
|
|
143
|
-
node ? allPortalHosts.set(props.name, node) : allPortalHosts.delete(props.name);
|
|
143
|
+
node ? (allPortalHosts.set(props.name, node), listeners[props.name]?.forEach((x) => x(node))) : allPortalHosts.delete(props.name);
|
|
144
144
|
}
|
|
145
145
|
}
|
|
146
146
|
);
|
|
@@ -165,8 +165,16 @@ const PortalItem = (0, import_react.memo)(function(props) {
|
|
|
165
165
|
}), PortalItemWeb = (props) => {
|
|
166
166
|
if (!props.hostName)
|
|
167
167
|
throw new Error("No name");
|
|
168
|
-
const
|
|
169
|
-
return
|
|
168
|
+
const cur = allPortalHosts.get(props.hostName), [node, setNode] = (0, import_react.useState)(cur);
|
|
169
|
+
return cur && !node && setNode(cur), (0, import_react.useEffect)(() => {
|
|
170
|
+
if (!props.hostName || node) return;
|
|
171
|
+
const listener = (node2) => {
|
|
172
|
+
setNode(node2);
|
|
173
|
+
};
|
|
174
|
+
return listeners[props.hostName] ||= /* @__PURE__ */ new Set(), listeners[props.hostName].add(listener), () => {
|
|
175
|
+
listeners[props.hostName]?.delete(listener);
|
|
176
|
+
};
|
|
177
|
+
}, [node]), node ? (0, import_react_dom.createPortal)(props.children, node) : null;
|
|
170
178
|
}, NonNativePortalComponent = (props) => {
|
|
171
179
|
const {
|
|
172
180
|
name: _providedName,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/GorhomPortal.tsx"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAAiD,+BAGjD,cAAyB,0BAEzB,0BAAgC,sCAEhC,
|
|
5
|
-
"names": ["ACTIONS", "registerHost", "deregisterHost", "addUpdatePortal", "removePortal", "React"]
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": ["ACTIONS", "registerHost", "deregisterHost", "addUpdatePortal", "removePortal", "React", "node"]
|
|
6
6
|
}
|
|
@@ -151,14 +151,20 @@ var defaultRenderer = function(children) {
|
|
|
151
151
|
}) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(PortalHostNonNative, {
|
|
152
152
|
...props
|
|
153
153
|
});
|
|
154
|
-
}), allPortalHosts = /* @__PURE__ */ new Map();
|
|
154
|
+
}), allPortalHosts = /* @__PURE__ */ new Map(), listeners = {};
|
|
155
155
|
function PortalHostWeb(props) {
|
|
156
156
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
|
|
157
157
|
style: {
|
|
158
158
|
display: "contents"
|
|
159
159
|
},
|
|
160
160
|
ref: function(node) {
|
|
161
|
-
|
|
161
|
+
if (node) {
|
|
162
|
+
var _listeners_props_name;
|
|
163
|
+
allPortalHosts.set(props.name, node), (_listeners_props_name = listeners[props.name]) === null || _listeners_props_name === void 0 || _listeners_props_name.forEach(function(x) {
|
|
164
|
+
return x(node);
|
|
165
|
+
});
|
|
166
|
+
} else
|
|
167
|
+
allPortalHosts.delete(props.name);
|
|
162
168
|
}
|
|
163
169
|
});
|
|
164
170
|
}
|
|
@@ -190,8 +196,21 @@ var PortalItem = /* @__PURE__ */ (0, import_react.memo)(function(props) {
|
|
|
190
196
|
}), PortalItemWeb = function(props) {
|
|
191
197
|
if (!props.hostName)
|
|
192
198
|
throw new Error("No name");
|
|
193
|
-
var
|
|
194
|
-
return
|
|
199
|
+
var cur = allPortalHosts.get(props.hostName), [node, setNode] = (0, import_react.useState)(cur);
|
|
200
|
+
return cur && !node && setNode(cur), (0, import_react.useEffect)(function() {
|
|
201
|
+
var _listeners, _props_hostName;
|
|
202
|
+
if (props.hostName && !node) {
|
|
203
|
+
var listener = function(node2) {
|
|
204
|
+
setNode(node2);
|
|
205
|
+
};
|
|
206
|
+
return (_listeners = listeners)[_props_hostName = props.hostName] || (_listeners[_props_hostName] = /* @__PURE__ */ new Set()), listeners[props.hostName].add(listener), function() {
|
|
207
|
+
var _listeners_props_hostName;
|
|
208
|
+
(_listeners_props_hostName = listeners[props.hostName]) === null || _listeners_props_hostName === void 0 || _listeners_props_hostName.delete(listener);
|
|
209
|
+
};
|
|
210
|
+
}
|
|
211
|
+
}, [
|
|
212
|
+
node
|
|
213
|
+
]), node ? /* @__PURE__ */ (0, import_react_dom.createPortal)(props.children, node) : null;
|
|
195
214
|
}, NonNativePortalComponent = function(props) {
|
|
196
215
|
var { name: _providedName, hostName, handleOnMount: _providedHandleOnMount, handleOnUnmount: _providedHandleOnUnmount, handleOnUpdate: _providedHandleOnUpdate, children, passthrough } = props, { addPortal: addUpdatePortal2, removePortal: removePortal2 } = usePortal(hostName), id = (0, import_react.useId)(), name = _providedName || id, handleOnMount = (0, import_core.useEvent)(function() {
|
|
197
216
|
_providedHandleOnMount ? _providedHandleOnMount(function() {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/Users/n8/tamagui/code/ui/portal/src/GorhomPortal.tsx"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uDAAA,mBAAiD,+BAGjD,cAAyB,0BAEzB,0BAAgC,sCAEhC,
|
|
5
|
-
"names": ["ACTIONS", "INITIAL_STATE", "registerHost", "state", "hostName", "deregisterHost", "addUpdatePortal", "portalName", "node", "index", "findIndex", "item", "name", "push", "removePortal", "console", "info", "splice", "reducer", "action", "type", "PortalStateContext", "createContext", "PortalDispatchContext", "usePortalState", "useContext", "Error", "usePortal", "dispatch", "useCallback", "addPortal", "updatePortal", "PortalProviderComponent", "rootHostName", "shouldAddRootHost", "children", "useReducer", "INITIAL_STATE", "transitionDispatch", "useMemo", "next", "value", "startTransition", "_jsx", "Provider", "_jsxs", "PortalHost", "PortalProvider", "memo", "displayName", "defaultRenderer", "_Fragment", "props", "isWeb", "PortalHostWeb", "PortalHostNonNative", "allPortalHosts", "Map", "div", "style", "display", "ref", "set", "delete", "forwardProps", "render", "useEffect", "window", "map", "restForwardProps", "React", "Children", "child", "isValidElement", "cloneElement", "key", "PortalItem", "PortalItemWeb", "NonNativePortalComponent", "
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": ["ACTIONS", "INITIAL_STATE", "registerHost", "state", "hostName", "deregisterHost", "addUpdatePortal", "portalName", "node", "index", "findIndex", "item", "name", "push", "removePortal", "console", "info", "splice", "reducer", "action", "type", "PortalStateContext", "createContext", "PortalDispatchContext", "usePortalState", "useContext", "Error", "usePortal", "dispatch", "useCallback", "addPortal", "updatePortal", "PortalProviderComponent", "rootHostName", "shouldAddRootHost", "children", "useReducer", "INITIAL_STATE", "transitionDispatch", "useMemo", "next", "value", "startTransition", "_jsx", "Provider", "_jsxs", "PortalHost", "PortalProvider", "memo", "displayName", "defaultRenderer", "_Fragment", "props", "isWeb", "PortalHostWeb", "PortalHostNonNative", "allPortalHosts", "Map", "listeners", "div", "style", "display", "ref", "set", "forEach", "x", "delete", "forwardProps", "render", "useEffect", "window", "map", "restForwardProps", "React", "Children", "child", "isValidElement", "cloneElement", "key", "PortalItem", "PortalItemWeb", "NonNativePortalComponent", "cur", "get", "setNode", "useState", "listener", "Set", "add", "createPortal", "_providedName", "handleOnMount", "_providedHandleOnMount", "handleOnUnmount", "_providedHandleOnUnmount", "handleOnUpdate", "_providedHandleOnUpdate", "passthrough", "id", "useId", "useEvent", "useIsomorphicLayoutEffect"]
|
|
6
6
|
}
|
package/dist/esm/GorhomPortal.js
CHANGED
|
@@ -9,7 +9,8 @@ import React, {
|
|
|
9
9
|
useEffect,
|
|
10
10
|
useId,
|
|
11
11
|
useMemo,
|
|
12
|
-
useReducer
|
|
12
|
+
useReducer,
|
|
13
|
+
useState
|
|
13
14
|
} from "react";
|
|
14
15
|
import { createPortal } from "react-dom";
|
|
15
16
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
@@ -114,7 +115,7 @@ const registerHost = (state, hostName) => (hostName in state || (state[hostName]
|
|
|
114
115
|
PortalProvider.displayName = "PortalProvider";
|
|
115
116
|
const defaultRenderer = (children) => /* @__PURE__ */ jsx(Fragment, { children }), PortalHost = memo(function(props) {
|
|
116
117
|
return isWeb ? /* @__PURE__ */ jsx(PortalHostWeb, { ...props }) : /* @__PURE__ */ jsx(PortalHostNonNative, { ...props });
|
|
117
|
-
}), allPortalHosts = /* @__PURE__ */ new Map();
|
|
118
|
+
}), allPortalHosts = /* @__PURE__ */ new Map(), listeners = {};
|
|
118
119
|
function PortalHostWeb(props) {
|
|
119
120
|
return /* @__PURE__ */ jsx(
|
|
120
121
|
"div",
|
|
@@ -123,7 +124,7 @@ function PortalHostWeb(props) {
|
|
|
123
124
|
display: "contents"
|
|
124
125
|
},
|
|
125
126
|
ref: (node) => {
|
|
126
|
-
node ? allPortalHosts.set(props.name, node) : allPortalHosts.delete(props.name);
|
|
127
|
+
node ? (allPortalHosts.set(props.name, node), listeners[props.name]?.forEach((x) => x(node))) : allPortalHosts.delete(props.name);
|
|
127
128
|
}
|
|
128
129
|
}
|
|
129
130
|
);
|
|
@@ -148,8 +149,16 @@ const PortalItem = memo(function(props) {
|
|
|
148
149
|
}), PortalItemWeb = (props) => {
|
|
149
150
|
if (!props.hostName)
|
|
150
151
|
throw new Error("No name");
|
|
151
|
-
const
|
|
152
|
-
return
|
|
152
|
+
const cur = allPortalHosts.get(props.hostName), [node, setNode] = useState(cur);
|
|
153
|
+
return cur && !node && setNode(cur), useEffect(() => {
|
|
154
|
+
if (!props.hostName || node) return;
|
|
155
|
+
const listener = (node2) => {
|
|
156
|
+
setNode(node2);
|
|
157
|
+
};
|
|
158
|
+
return listeners[props.hostName] ||= /* @__PURE__ */ new Set(), listeners[props.hostName].add(listener), () => {
|
|
159
|
+
listeners[props.hostName]?.delete(listener);
|
|
160
|
+
};
|
|
161
|
+
}, [node]), node ? createPortal(props.children, node) : null;
|
|
153
162
|
}, NonNativePortalComponent = (props) => {
|
|
154
163
|
const {
|
|
155
164
|
name: _providedName,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/GorhomPortal.tsx"],
|
|
4
|
-
"mappings": "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
|
|
5
|
-
"names": ["ACTIONS", "registerHost", "deregisterHost", "addUpdatePortal", "removePortal"]
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": ["ACTIONS", "registerHost", "deregisterHost", "addUpdatePortal", "removePortal", "node"]
|
|
6
6
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { isWeb, useIsomorphicLayoutEffect } from "@tamagui/constants";
|
|
2
2
|
import { useEvent } from "@tamagui/core";
|
|
3
3
|
import { startTransition } from "@tamagui/start-transition";
|
|
4
|
-
import React, { createContext, memo, useCallback, useContext, useEffect, useId, useMemo, useReducer } from "react";
|
|
4
|
+
import React, { createContext, memo, useCallback, useContext, useEffect, useId, useMemo, useReducer, useState } from "react";
|
|
5
5
|
import { createPortal } from "react-dom";
|
|
6
6
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
7
7
|
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 || {});
|
|
@@ -124,14 +124,15 @@ const defaultRenderer = children => /* @__PURE__ */jsx(Fragment, {
|
|
|
124
124
|
...props
|
|
125
125
|
});
|
|
126
126
|
}),
|
|
127
|
-
allPortalHosts = /* @__PURE__ */new Map()
|
|
127
|
+
allPortalHosts = /* @__PURE__ */new Map(),
|
|
128
|
+
listeners = {};
|
|
128
129
|
function PortalHostWeb(props) {
|
|
129
130
|
return /* @__PURE__ */jsx("div", {
|
|
130
131
|
style: {
|
|
131
132
|
display: "contents"
|
|
132
133
|
},
|
|
133
134
|
ref: node => {
|
|
134
|
-
node ? allPortalHosts.set(props.name, node) : allPortalHosts.delete(props.name);
|
|
135
|
+
node ? (allPortalHosts.set(props.name, node), listeners[props.name]?.forEach(x => x(node))) : allPortalHosts.delete(props.name);
|
|
135
136
|
}
|
|
136
137
|
});
|
|
137
138
|
}
|
|
@@ -171,8 +172,17 @@ const PortalItem = memo(function (props) {
|
|
|
171
172
|
}),
|
|
172
173
|
PortalItemWeb = props => {
|
|
173
174
|
if (!props.hostName) throw new Error("No name");
|
|
174
|
-
const
|
|
175
|
-
|
|
175
|
+
const cur = allPortalHosts.get(props.hostName),
|
|
176
|
+
[node, setNode] = useState(cur);
|
|
177
|
+
return cur && !node && setNode(cur), useEffect(() => {
|
|
178
|
+
if (!props.hostName || node) return;
|
|
179
|
+
const listener = node2 => {
|
|
180
|
+
setNode(node2);
|
|
181
|
+
};
|
|
182
|
+
return listeners[props.hostName] ||= /* @__PURE__ */new Set(), listeners[props.hostName].add(listener), () => {
|
|
183
|
+
listeners[props.hostName]?.delete(listener);
|
|
184
|
+
};
|
|
185
|
+
}, [node]), node ? createPortal(props.children, node) : null;
|
|
176
186
|
},
|
|
177
187
|
NonNativePortalComponent = props => {
|
|
178
188
|
const {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["isWeb","useIsomorphicLayoutEffect","useEvent","startTransition","React","createContext","memo","useCallback","useContext","useEffect","useId","useMemo","useReducer","createPortal","Fragment","jsx","jsxs","ACTIONS","ACTIONS2","REGISTER_HOST","DEREGISTER_HOST","ADD_UPDATE_PORTAL","REMOVE_PORTAL","INITIAL_STATE","registerHost","state","hostName","deregisterHost","addUpdatePortal","portalName","node","index","findIndex","item","name","push","removePortal","console","info","splice","reducer","action","type","PortalStateContext","PortalDispatchContext","usePortalState","Error","usePortal","dispatch","registerHost2","deregisterHost2","addUpdatePortal2","removePortal2","addPortal","updatePortal","PortalProviderComponent","rootHostName","shouldAddRootHost","children","transitionDispatch","value","Provider","PortalHost","PortalProvider","displayName","defaultRenderer","props","PortalHostWeb","PortalHostNonNative","allPortalHosts","Map","style","display","ref","set","delete","forwardProps","render","window","map","next","restForwardProps","Children","child","isValidElement","cloneElement","key","PortalItem","PortalItemWeb","NonNativePortalComponent","
|
|
1
|
+
{"version":3,"names":["isWeb","useIsomorphicLayoutEffect","useEvent","startTransition","React","createContext","memo","useCallback","useContext","useEffect","useId","useMemo","useReducer","useState","createPortal","Fragment","jsx","jsxs","ACTIONS","ACTIONS2","REGISTER_HOST","DEREGISTER_HOST","ADD_UPDATE_PORTAL","REMOVE_PORTAL","INITIAL_STATE","registerHost","state","hostName","deregisterHost","addUpdatePortal","portalName","node","index","findIndex","item","name","push","removePortal","console","info","splice","reducer","action","type","PortalStateContext","PortalDispatchContext","usePortalState","Error","usePortal","dispatch","registerHost2","deregisterHost2","addUpdatePortal2","removePortal2","addPortal","updatePortal","PortalProviderComponent","rootHostName","shouldAddRootHost","children","transitionDispatch","value","Provider","PortalHost","PortalProvider","displayName","defaultRenderer","props","PortalHostWeb","PortalHostNonNative","allPortalHosts","Map","listeners","style","display","ref","set","forEach","x","delete","forwardProps","render","window","map","next","restForwardProps","Children","child","isValidElement","cloneElement","key","PortalItem","PortalItemWeb","NonNativePortalComponent","cur","get","setNode","listener","node2","Set","add","_providedName","handleOnMount","_providedHandleOnMount","handleOnUnmount","_providedHandleOnUnmount","handleOnUpdate","_providedHandleOnUpdate","passthrough","id"],"sources":["../../src/GorhomPortal.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -2,7 +2,7 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
|
|
|
2
2
|
import { isWeb, useIsomorphicLayoutEffect } from "@tamagui/constants";
|
|
3
3
|
import { useEvent } from "@tamagui/core";
|
|
4
4
|
import { startTransition } from "@tamagui/start-transition";
|
|
5
|
-
import React, { createContext, memo, useCallback, useContext, useEffect, useId, useMemo, useReducer } from "react";
|
|
5
|
+
import React, { createContext, memo, useCallback, useContext, useEffect, useId, useMemo, useReducer, useState } from "react";
|
|
6
6
|
import { createPortal } from "react-dom";
|
|
7
7
|
var ACTIONS = /* @__PURE__ */ function(ACTIONS2) {
|
|
8
8
|
return 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;
|
|
@@ -124,14 +124,20 @@ var defaultRenderer = function(children) {
|
|
|
124
124
|
}) : /* @__PURE__ */ _jsx(PortalHostNonNative, {
|
|
125
125
|
...props
|
|
126
126
|
});
|
|
127
|
-
}), allPortalHosts = /* @__PURE__ */ new Map();
|
|
127
|
+
}), allPortalHosts = /* @__PURE__ */ new Map(), listeners = {};
|
|
128
128
|
function PortalHostWeb(props) {
|
|
129
129
|
return /* @__PURE__ */ _jsx("div", {
|
|
130
130
|
style: {
|
|
131
131
|
display: "contents"
|
|
132
132
|
},
|
|
133
133
|
ref: function(node) {
|
|
134
|
-
|
|
134
|
+
if (node) {
|
|
135
|
+
var _listeners_props_name;
|
|
136
|
+
allPortalHosts.set(props.name, node), (_listeners_props_name = listeners[props.name]) === null || _listeners_props_name === void 0 || _listeners_props_name.forEach(function(x) {
|
|
137
|
+
return x(node);
|
|
138
|
+
});
|
|
139
|
+
} else
|
|
140
|
+
allPortalHosts.delete(props.name);
|
|
135
141
|
}
|
|
136
142
|
});
|
|
137
143
|
}
|
|
@@ -163,8 +169,21 @@ var PortalItem = /* @__PURE__ */ memo(function(props) {
|
|
|
163
169
|
}), PortalItemWeb = function(props) {
|
|
164
170
|
if (!props.hostName)
|
|
165
171
|
throw new Error("No name");
|
|
166
|
-
var
|
|
167
|
-
return
|
|
172
|
+
var cur = allPortalHosts.get(props.hostName), [node, setNode] = useState(cur);
|
|
173
|
+
return cur && !node && setNode(cur), useEffect(function() {
|
|
174
|
+
var _listeners, _props_hostName;
|
|
175
|
+
if (props.hostName && !node) {
|
|
176
|
+
var listener = function(node2) {
|
|
177
|
+
setNode(node2);
|
|
178
|
+
};
|
|
179
|
+
return (_listeners = listeners)[_props_hostName = props.hostName] || (_listeners[_props_hostName] = /* @__PURE__ */ new Set()), listeners[props.hostName].add(listener), function() {
|
|
180
|
+
var _listeners_props_hostName;
|
|
181
|
+
(_listeners_props_hostName = listeners[props.hostName]) === null || _listeners_props_hostName === void 0 || _listeners_props_hostName.delete(listener);
|
|
182
|
+
};
|
|
183
|
+
}
|
|
184
|
+
}, [
|
|
185
|
+
node
|
|
186
|
+
]), node ? /* @__PURE__ */ createPortal(props.children, node) : null;
|
|
168
187
|
}, NonNativePortalComponent = function(props) {
|
|
169
188
|
var { name: _providedName, hostName, handleOnMount: _providedHandleOnMount, handleOnUnmount: _providedHandleOnUnmount, handleOnUpdate: _providedHandleOnUpdate, children, passthrough } = props, { addPortal: addUpdatePortal2, removePortal: removePortal2 } = usePortal(hostName), id = useId(), name = _providedName || id, handleOnMount = useEvent(function() {
|
|
170
189
|
_providedHandleOnMount ? _providedHandleOnMount(function() {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/Users/n8/tamagui/code/ui/portal/src/GorhomPortal.tsx"],
|
|
4
|
-
"mappings": ";AAAA,SAASA,OAAOC,iCAAiC;AAGjD,SAASC,gBAAgB;AAEzB,SAASC,uBAAuB;AAEhC,OAAOC,SACLC,eACAC,MACAC,aACAC,YACAC,WACAC,OACAC,SACAC,
|
|
5
|
-
"names": ["isWeb", "useIsomorphicLayoutEffect", "useEvent", "startTransition", "React", "createContext", "memo", "useCallback", "useContext", "useEffect", "useId", "useMemo", "useReducer", "createPortal", "ACTIONS", "INITIAL_STATE", "registerHost", "state", "hostName", "deregisterHost", "addUpdatePortal", "portalName", "node", "index", "findIndex", "item", "name", "push", "removePortal", "console", "info", "splice", "reducer", "action", "type", "PortalStateContext", "createContext", "PortalDispatchContext", "usePortalState", "useContext", "Error", "usePortal", "dispatch", "useCallback", "addPortal", "updatePortal", "PortalProviderComponent", "rootHostName", "shouldAddRootHost", "children", "useReducer", "INITIAL_STATE", "transitionDispatch", "useMemo", "next", "value", "startTransition", "Provider", "PortalHost", "PortalProvider", "memo", "displayName", "defaultRenderer", "props", "isWeb", "PortalHostWeb", "PortalHostNonNative", "allPortalHosts", "Map", "div", "style", "display", "ref", "set", "delete", "forwardProps", "render", "useEffect", "window", "map", "restForwardProps", "React", "Children", "child", "isValidElement", "cloneElement", "key", "PortalItem", "PortalItemWeb", "NonNativePortalComponent", "
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": ["isWeb", "useIsomorphicLayoutEffect", "useEvent", "startTransition", "React", "createContext", "memo", "useCallback", "useContext", "useEffect", "useId", "useMemo", "useReducer", "useState", "createPortal", "ACTIONS", "INITIAL_STATE", "registerHost", "state", "hostName", "deregisterHost", "addUpdatePortal", "portalName", "node", "index", "findIndex", "item", "name", "push", "removePortal", "console", "info", "splice", "reducer", "action", "type", "PortalStateContext", "createContext", "PortalDispatchContext", "usePortalState", "useContext", "Error", "usePortal", "dispatch", "useCallback", "addPortal", "updatePortal", "PortalProviderComponent", "rootHostName", "shouldAddRootHost", "children", "useReducer", "INITIAL_STATE", "transitionDispatch", "useMemo", "next", "value", "startTransition", "Provider", "PortalHost", "PortalProvider", "memo", "displayName", "defaultRenderer", "props", "isWeb", "PortalHostWeb", "PortalHostNonNative", "allPortalHosts", "Map", "listeners", "div", "style", "display", "ref", "set", "forEach", "x", "delete", "forwardProps", "render", "useEffect", "window", "map", "restForwardProps", "React", "Children", "child", "isValidElement", "cloneElement", "key", "PortalItem", "PortalItemWeb", "NonNativePortalComponent", "cur", "get", "setNode", "useState", "listener", "Set", "add", "createPortal", "_providedName", "handleOnMount", "_providedHandleOnMount", "handleOnUnmount", "_providedHandleOnUnmount", "handleOnUpdate", "_providedHandleOnUpdate", "passthrough", "id", "useId", "useEvent", "useIsomorphicLayoutEffect"]
|
|
6
6
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tamagui/portal",
|
|
3
|
-
"version": "1.116.
|
|
3
|
+
"version": "1.116.6",
|
|
4
4
|
"source": "src/index.ts",
|
|
5
5
|
"types": "./types/index.d.ts",
|
|
6
6
|
"main": "dist/cjs",
|
|
@@ -30,17 +30,17 @@
|
|
|
30
30
|
}
|
|
31
31
|
},
|
|
32
32
|
"dependencies": {
|
|
33
|
-
"@tamagui/constants": "1.116.
|
|
34
|
-
"@tamagui/core": "1.116.
|
|
35
|
-
"@tamagui/stacks": "1.116.
|
|
36
|
-
"@tamagui/start-transition": "1.116.
|
|
37
|
-
"@tamagui/use-did-finish-ssr": "1.116.
|
|
38
|
-
"@tamagui/use-event": "1.116.
|
|
33
|
+
"@tamagui/constants": "1.116.6",
|
|
34
|
+
"@tamagui/core": "1.116.6",
|
|
35
|
+
"@tamagui/stacks": "1.116.6",
|
|
36
|
+
"@tamagui/start-transition": "1.116.6",
|
|
37
|
+
"@tamagui/use-did-finish-ssr": "1.116.6",
|
|
38
|
+
"@tamagui/use-event": "1.116.6",
|
|
39
39
|
"react": "^18.2.0 || ^19.0.0",
|
|
40
40
|
"react-dom": "^18.2.0 || ^19.0.0"
|
|
41
41
|
},
|
|
42
42
|
"devDependencies": {
|
|
43
|
-
"@tamagui/build": "1.116.
|
|
43
|
+
"@tamagui/build": "1.116.6",
|
|
44
44
|
"react-native": "0.74.1"
|
|
45
45
|
},
|
|
46
46
|
"publishConfig": {
|
package/src/GorhomPortal.tsx
CHANGED
|
@@ -14,6 +14,7 @@ import React, {
|
|
|
14
14
|
useId,
|
|
15
15
|
useMemo,
|
|
16
16
|
useReducer,
|
|
17
|
+
useState,
|
|
17
18
|
} from 'react'
|
|
18
19
|
import { createPortal } from 'react-dom'
|
|
19
20
|
|
|
@@ -282,6 +283,7 @@ export const PortalHost = memo(function PortalHost(props: PortalHostProps) {
|
|
|
282
283
|
})
|
|
283
284
|
|
|
284
285
|
const allPortalHosts = new Map<string, HTMLElement>()
|
|
286
|
+
const listeners: Record<string, Set<Function>> = {}
|
|
285
287
|
|
|
286
288
|
function PortalHostWeb(props: PortalHostProps) {
|
|
287
289
|
return (
|
|
@@ -292,6 +294,7 @@ function PortalHostWeb(props: PortalHostProps) {
|
|
|
292
294
|
ref={(node) => {
|
|
293
295
|
if (node) {
|
|
294
296
|
allPortalHosts.set(props.name, node)
|
|
297
|
+
listeners[props.name]?.forEach((x) => x(node))
|
|
295
298
|
} else {
|
|
296
299
|
allPortalHosts.delete(props.name)
|
|
297
300
|
}
|
|
@@ -393,13 +396,33 @@ const PortalItemWeb = (props: PortalItemProps) => {
|
|
|
393
396
|
throw new Error(`No name`)
|
|
394
397
|
}
|
|
395
398
|
|
|
396
|
-
const
|
|
399
|
+
const cur = allPortalHosts.get(props.hostName)
|
|
400
|
+
const [node, setNode] = useState(cur)
|
|
397
401
|
|
|
398
|
-
if (!
|
|
402
|
+
if (cur && !node) {
|
|
403
|
+
setNode(cur)
|
|
404
|
+
}
|
|
405
|
+
|
|
406
|
+
useEffect(() => {
|
|
407
|
+
if (!props.hostName) return
|
|
408
|
+
if (node) return
|
|
409
|
+
|
|
410
|
+
const listener = (node) => {
|
|
411
|
+
setNode(node)
|
|
412
|
+
}
|
|
413
|
+
|
|
414
|
+
listeners[props.hostName] ||= new Set()
|
|
415
|
+
listeners[props.hostName].add(listener)
|
|
416
|
+
return () => {
|
|
417
|
+
listeners[props.hostName!]?.delete(listener)
|
|
418
|
+
}
|
|
419
|
+
}, [node])
|
|
420
|
+
|
|
421
|
+
if (!node) {
|
|
399
422
|
return null
|
|
400
423
|
}
|
|
401
424
|
|
|
402
|
-
return createPortal(props.children,
|
|
425
|
+
return createPortal(props.children, node)
|
|
403
426
|
}
|
|
404
427
|
|
|
405
428
|
const NonNativePortalComponent = (props: PortalItemProps) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GorhomPortal.d.ts","sourceRoot":"","sources":["../src/GorhomPortal.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACtC,OAAO,
|
|
1
|
+
{"version":3,"file":"GorhomPortal.d.ts","sourceRoot":"","sources":["../src/GorhomPortal.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACtC,OAAO,KAUN,MAAM,OAAO,CAAA;AAQd,aAAK,OAAO;IACV,aAAa,IAAA;IACb,eAAe,IAAA;IACf,iBAAiB,IAAA;IACjB,aAAa,IAAA;CACd;AAED,QAAA,MAAM,aAAa,IAAK,CAAA;AAExB,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,CAAA;AAEjC,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,OAAO,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,SAAS,CAAA;CAChB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,OAAO,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,OAAO,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,OAAO,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,MAAM,WAAW,GACnB,qBAAqB,GACrB,kBAAkB,GAClB,kBAAkB,GAClB,oBAAoB,CAAA;AAgGxB,eAAO,MAAM,SAAS;;;sBAwBuB,MAAM,QAAQ,SAAS;yBAAvB,MAAM,QAAQ,SAAS;yBAS1B,MAAM;CAgB/C,CAAA;AAED,MAAM,WAAW,mBAAmB;IAClC;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAE3B;;;;;OAKG;IACH,YAAY,CAAC,EAAE,MAAM,CAAA;IAErB,QAAQ,EAAE,SAAS,GAAG,SAAS,EAAE,CAAA;CAClC;AA2BD,eAAO,MAAM,cAAc,6EArBxB,mBAAmB,6CAqBqC,CAAA;AAG3D,MAAM,WAAW,eAAe;IAC9B;;;OAGG;IACH,IAAI,EAAE,MAAM,CAAA;IAEZ,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAElC;;;;OAIG;IACH,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,KAAK,KAAK,CAAC,YAAY,CAAA;CAC3D;AAGD,eAAO,MAAM,UAAU,6CAMrB,CAAA;AA4DF,MAAM,WAAW,eAAe;IAC9B,WAAW,CAAC,EAAE,OAAO,CAAA;IAErB;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;IACb;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB;;;;;OAKG;IACH,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,IAAI,KAAK,IAAI,CAAA;IAC3C;;;;;OAKG;IACH,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,IAAI,KAAK,IAAI,CAAA;IAC/C;;;;;OAKG;IACH,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,IAAI,KAAK,IAAI,CAAA;IAC7C;;;;OAIG;IACH,QAAQ,CAAC,EAAE,SAAS,GAAG,SAAS,EAAE,CAAA;CACnC;AAED,eAAO,MAAM,UAAU,6CAKrB,CAAA"}
|