@tamagui/portal 1.99.1 → 1.100.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 +7 -5
- package/dist/cjs/GorhomPortal.js.map +1 -1
- package/dist/cjs/GorhomPortal.native.js +13 -19
- package/dist/cjs/GorhomPortal.native.js.map +2 -2
- package/dist/cjs/Portal.js +5 -3
- package/dist/cjs/Portal.js.map +2 -2
- package/dist/esm/GorhomPortal.js +7 -5
- package/dist/esm/GorhomPortal.js.map +1 -1
- package/dist/esm/GorhomPortal.mjs +6 -6
- package/dist/esm/GorhomPortal.native.js +13 -20
- package/dist/esm/GorhomPortal.native.js.map +2 -2
- package/dist/esm/Portal.js +4 -3
- package/dist/esm/Portal.js.map +1 -1
- package/dist/esm/Portal.mjs +4 -3
- package/package.json +7 -7
- package/src/GorhomPortal.tsx +5 -5
- package/src/Portal.tsx +4 -3
- package/types/GorhomPortal.d.ts.map +1 -1
- package/types/Portal.d.ts.map +1 -1
package/dist/cjs/GorhomPortal.js
CHANGED
|
@@ -30,7 +30,7 @@ __export(GorhomPortal_exports, {
|
|
|
30
30
|
usePortal: () => usePortal
|
|
31
31
|
});
|
|
32
32
|
module.exports = __toCommonJS(GorhomPortal_exports);
|
|
33
|
-
var import_constants = require("@tamagui/constants"), import_core = require("@tamagui/core"),
|
|
33
|
+
var import_constants = require("@tamagui/constants"), 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 || {});
|
|
34
34
|
const INITIAL_STATE = {};
|
|
35
35
|
const registerHost = (state, hostName) => (hostName in state || (state[hostName] = []), state), deregisterHost = (state, hostName) => (delete state[hostName], state), addUpdatePortal = (state, hostName, portalName, node) => {
|
|
36
36
|
hostName in state || (state = registerHost(state, hostName));
|
|
@@ -119,7 +119,9 @@ const registerHost = (state, hostName) => (hostName in state || (state[hostName]
|
|
|
119
119
|
children
|
|
120
120
|
}) => {
|
|
121
121
|
const [state, dispatch] = (0, import_react.useReducer)(reducer, INITIAL_STATE), transitionDispatch = (0, import_react.useMemo)(() => (value) => {
|
|
122
|
-
|
|
122
|
+
(0, import_react.startTransition)(() => {
|
|
123
|
+
dispatch(value);
|
|
124
|
+
});
|
|
123
125
|
}, [dispatch]);
|
|
124
126
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(PortalDispatchContext.Provider, { value: transitionDispatch, children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(PortalStateContext.Provider, { value: state, children: [
|
|
125
127
|
children,
|
|
@@ -128,13 +130,13 @@ const registerHost = (state, hostName) => (hostName in state || (state[hostName]
|
|
|
128
130
|
}, PortalProvider = (0, import_react.memo)(PortalProviderComponent);
|
|
129
131
|
PortalProvider.displayName = "PortalProvider";
|
|
130
132
|
const defaultRenderer = (children) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, { children }), PortalHostComponent = (props) => {
|
|
131
|
-
const { name, forwardProps, render = defaultRenderer } = props,
|
|
133
|
+
const { name, forwardProps, render = defaultRenderer } = props, state = usePortalState(name), { registerHost: registerHost2, deregisterHost: deregisterHost2 } = usePortal(props.name);
|
|
132
134
|
return (0, import_react.useEffect)(() => {
|
|
133
|
-
if (!
|
|
135
|
+
if (!(typeof window > "u"))
|
|
134
136
|
return registerHost2(), () => {
|
|
135
137
|
deregisterHost2();
|
|
136
138
|
};
|
|
137
|
-
}, [
|
|
139
|
+
}, []), render(
|
|
138
140
|
forwardProps ? state.map((item) => {
|
|
139
141
|
let next = item.node;
|
|
140
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;
|
|
@@ -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,uBAA0C,+BAG1C,cAAyB,
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["ACTIONS", "registerHost", "deregisterHost", "addUpdatePortal", "removePortal", "React"]
|
|
6
6
|
}
|
|
@@ -31,16 +31,14 @@ __export(GorhomPortal_exports, {
|
|
|
31
31
|
usePortal: () => usePortal
|
|
32
32
|
});
|
|
33
33
|
module.exports = __toCommonJS(GorhomPortal_exports);
|
|
34
|
-
var import_jsx_runtime = require("react/jsx-runtime"), import_constants = require("@tamagui/constants"), import_core = require("@tamagui/core"),
|
|
34
|
+
var import_jsx_runtime = require("react/jsx-runtime"), import_constants = require("@tamagui/constants"), import_core = require("@tamagui/core"), import_react = __toESM(require("react"));
|
|
35
35
|
function _array_like_to_array(arr, len) {
|
|
36
36
|
(len == null || len > arr.length) && (len = arr.length);
|
|
37
|
-
for (var i = 0, arr2 = new Array(len); i < len; i++)
|
|
38
|
-
arr2[i] = arr[i];
|
|
37
|
+
for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
|
|
39
38
|
return arr2;
|
|
40
39
|
}
|
|
41
40
|
function _array_with_holes(arr) {
|
|
42
|
-
if (Array.isArray(arr))
|
|
43
|
-
return arr;
|
|
41
|
+
if (Array.isArray(arr)) return arr;
|
|
44
42
|
}
|
|
45
43
|
function _define_property(obj, key, value) {
|
|
46
44
|
return key in obj ? Object.defineProperty(obj, key, {
|
|
@@ -63,8 +61,7 @@ function _iterable_to_array_limit(arr, i) {
|
|
|
63
61
|
try {
|
|
64
62
|
!_n && _i.return != null && _i.return();
|
|
65
63
|
} finally {
|
|
66
|
-
if (_d)
|
|
67
|
-
throw _e;
|
|
64
|
+
if (_d) throw _e;
|
|
68
65
|
}
|
|
69
66
|
}
|
|
70
67
|
return _arr;
|
|
@@ -89,13 +86,10 @@ function _sliced_to_array(arr, i) {
|
|
|
89
86
|
}
|
|
90
87
|
function _unsupported_iterable_to_array(o, minLen) {
|
|
91
88
|
if (o) {
|
|
92
|
-
if (typeof o == "string")
|
|
93
|
-
return _array_like_to_array(o, minLen);
|
|
89
|
+
if (typeof o == "string") return _array_like_to_array(o, minLen);
|
|
94
90
|
var n = Object.prototype.toString.call(o).slice(8, -1);
|
|
95
|
-
if (n === "Object" && o.constructor && (n = o.constructor.name), n === "Map" || n === "Set")
|
|
96
|
-
|
|
97
|
-
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))
|
|
98
|
-
return _array_like_to_array(o, minLen);
|
|
91
|
+
if (n === "Object" && o.constructor && (n = o.constructor.name), n === "Map" || n === "Set") return Array.from(n);
|
|
92
|
+
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
|
|
99
93
|
}
|
|
100
94
|
}
|
|
101
95
|
var ACTIONS;
|
|
@@ -180,7 +174,9 @@ var registerHost = function(state, hostName) {
|
|
|
180
174
|
}, PortalProviderComponent = function(param) {
|
|
181
175
|
var _param_rootHostName = param.rootHostName, rootHostName = _param_rootHostName === void 0 ? "root" : _param_rootHostName, _param_shouldAddRootHost = param.shouldAddRootHost, shouldAddRootHost = _param_shouldAddRootHost === void 0 ? !0 : _param_shouldAddRootHost, children = param.children, _useReducer = _sliced_to_array((0, import_react.useReducer)(reducer, INITIAL_STATE), 2), state = _useReducer[0], dispatch = _useReducer[1], transitionDispatch = (0, import_react.useMemo)(function() {
|
|
182
176
|
var next = function(value) {
|
|
183
|
-
|
|
177
|
+
(0, import_react.startTransition)(function() {
|
|
178
|
+
dispatch(value);
|
|
179
|
+
});
|
|
184
180
|
};
|
|
185
181
|
return next;
|
|
186
182
|
}, [
|
|
@@ -205,15 +201,13 @@ var defaultRenderer = function(children) {
|
|
|
205
201
|
children
|
|
206
202
|
});
|
|
207
203
|
}, PortalHostComponent = function(props) {
|
|
208
|
-
var name = props.name, forwardProps = props.forwardProps, _props_render = props.render, render = _props_render === void 0 ? defaultRenderer : _props_render,
|
|
204
|
+
var name = props.name, forwardProps = props.forwardProps, _props_render = props.render, render = _props_render === void 0 ? defaultRenderer : _props_render, state = usePortalState(name), _usePortal = usePortal(props.name), registerHost2 = _usePortal.registerHost, deregisterHost2 = _usePortal.deregisterHost;
|
|
209
205
|
return (0, import_react.useEffect)(function() {
|
|
210
|
-
if (!
|
|
206
|
+
if (!(typeof window > "u"))
|
|
211
207
|
return registerHost2(), function() {
|
|
212
208
|
deregisterHost2();
|
|
213
209
|
};
|
|
214
|
-
}, [
|
|
215
|
-
isServer
|
|
216
|
-
]), render(forwardProps ? state.map(function(item) {
|
|
210
|
+
}, []), render(forwardProps ? state.map(function(item) {
|
|
217
211
|
var next = item.node;
|
|
218
212
|
return forwardProps ? import_react.default.Children.map(next, function(child) {
|
|
219
213
|
return /* @__PURE__ */ import_react.default.isValidElement(child) ? /* @__PURE__ */ import_react.default.cloneElement(child, _object_spread({
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/Users/n8/tamagui/packages/portal/src/GorhomPortal.tsx"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uDAAA,mBAA0C,+BAG1C,cAAyB,
|
|
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", "_jsx", "Provider", "_jsxs", "PortalHost", "PortalProvider", "memo", "displayName", "defaultRenderer", "_Fragment", "PortalHostComponent", "props", "forwardProps", "render", "
|
|
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", "PortalHostComponent", "props", "forwardProps", "render", "useEffect", "window", "map", "React", "Children", "child", "isValidElement", "cloneElement", "key", "PortalComponent", "_providedName", "_providedHandleOnMount", "handleOnMount", "_providedHandleOnUnmount", "handleOnUnmount", "_providedHandleOnUpdate", "handleOnUpdate", "id", "useId", "useEvent", "useIsomorphicLayoutEffect", "PortalItem"]
|
|
6
6
|
}
|
package/dist/cjs/Portal.js
CHANGED
|
@@ -25,7 +25,7 @@ __export(Portal_exports, {
|
|
|
25
25
|
Portal: () => Portal
|
|
26
26
|
});
|
|
27
27
|
module.exports = __toCommonJS(Portal_exports);
|
|
28
|
-
var import_polyfill_dev = require("@tamagui/polyfill-dev"), import_constants = require("@tamagui/constants"),
|
|
28
|
+
var import_polyfill_dev = require("@tamagui/polyfill-dev"), import_constants = require("@tamagui/constants"), import_stacks = require("@tamagui/stacks"), React = __toESM(require("react")), import_react_dom = require("react-dom"), import_jsx_runtime = require("react/jsx-runtime");
|
|
29
29
|
const Portal = React.memo(
|
|
30
30
|
({ host = globalThis.document?.body, ...props }) => {
|
|
31
31
|
const contents = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
@@ -40,8 +40,10 @@ const Portal = React.memo(
|
|
|
40
40
|
...props
|
|
41
41
|
}
|
|
42
42
|
), [hostElement, setHostElement] = React.useState(null);
|
|
43
|
-
return
|
|
44
|
-
|
|
43
|
+
return React.useEffect(() => {
|
|
44
|
+
React.startTransition(() => {
|
|
45
|
+
setHostElement(host);
|
|
46
|
+
});
|
|
45
47
|
}, [host]), hostElement && props.children ? (0, import_react_dom.createPortal)(contents, hostElement) : null;
|
|
46
48
|
}
|
|
47
49
|
);
|
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": ";;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0BAAO,kCAEP,mBAAsB,+
|
|
5
|
-
"names": [
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0BAAO,kCAEP,mBAAsB,+BACtB,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,yBAAQ,UAAU;AAAA,QAC5B,UAAU,yBAAQ,UAAU;AAAA,QAC5B,WAAW,yBAAQ,UAAU;AAAA,QAC7B,eAAc;AAAA,QACb,GAAG;AAAA;AAAA,IACN,GAGI,CAAC,aAAa,cAAc,IAAI,MAAM,SAAc,IAAI;AAQ9D,WANA,MAAM,UAAU,MAAM;AACpB,YAAM,gBAAgB,MAAM;AAC1B,uBAAe,IAAI;AAAA,MACrB,CAAC;AAAA,IACH,GAAG,CAAC,IAAI,CAAC,GAEL,eAAe,MAAM,eAChB,+BAAa,UAAU,WAAW,IAIpC;AAAA,EACT;AACF;",
|
|
5
|
+
"names": []
|
|
6
6
|
}
|
package/dist/esm/GorhomPortal.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { useIsomorphicLayoutEffect } from "@tamagui/constants";
|
|
2
2
|
import { useEvent } from "@tamagui/core";
|
|
3
|
-
import { useDidFinishSSR } from "@tamagui/use-did-finish-ssr";
|
|
4
3
|
import React, {
|
|
5
4
|
createContext,
|
|
6
5
|
memo,
|
|
6
|
+
startTransition,
|
|
7
7
|
useCallback,
|
|
8
8
|
useContext,
|
|
9
9
|
useEffect,
|
|
@@ -101,7 +101,9 @@ const registerHost = (state, hostName) => (hostName in state || (state[hostName]
|
|
|
101
101
|
children
|
|
102
102
|
}) => {
|
|
103
103
|
const [state, dispatch] = useReducer(reducer, INITIAL_STATE), transitionDispatch = useMemo(() => (value) => {
|
|
104
|
-
|
|
104
|
+
startTransition(() => {
|
|
105
|
+
dispatch(value);
|
|
106
|
+
});
|
|
105
107
|
}, [dispatch]);
|
|
106
108
|
return /* @__PURE__ */ jsx(PortalDispatchContext.Provider, { value: transitionDispatch, children: /* @__PURE__ */ jsxs(PortalStateContext.Provider, { value: state, children: [
|
|
107
109
|
children,
|
|
@@ -110,13 +112,13 @@ const registerHost = (state, hostName) => (hostName in state || (state[hostName]
|
|
|
110
112
|
}, PortalProvider = memo(PortalProviderComponent);
|
|
111
113
|
PortalProvider.displayName = "PortalProvider";
|
|
112
114
|
const defaultRenderer = (children) => /* @__PURE__ */ jsx(Fragment, { children }), PortalHostComponent = (props) => {
|
|
113
|
-
const { name, forwardProps, render = defaultRenderer } = props,
|
|
115
|
+
const { name, forwardProps, render = defaultRenderer } = props, state = usePortalState(name), { registerHost: registerHost2, deregisterHost: deregisterHost2 } = usePortal(props.name);
|
|
114
116
|
return useEffect(() => {
|
|
115
|
-
if (!
|
|
117
|
+
if (!(typeof window > "u"))
|
|
116
118
|
return registerHost2(), () => {
|
|
117
119
|
deregisterHost2();
|
|
118
120
|
};
|
|
119
|
-
}, [
|
|
121
|
+
}, []), render(
|
|
120
122
|
forwardProps ? state.map((item) => {
|
|
121
123
|
let next = item.node;
|
|
122
124
|
return forwardProps ? React.Children.map(next, (child) => React.isValidElement(child) ? React.cloneElement(child, { key: child.key, ...forwardProps }) : child) : next;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/GorhomPortal.tsx"],
|
|
4
|
-
"mappings": "AAAA,SAAS,iCAAiC;AAG1C,SAAS,gBAAgB;
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["ACTIONS", "registerHost", "deregisterHost", "addUpdatePortal", "removePortal"]
|
|
6
6
|
}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { useIsomorphicLayoutEffect } from "@tamagui/constants";
|
|
2
2
|
import { useEvent } from "@tamagui/core";
|
|
3
|
-
import {
|
|
4
|
-
import React, { createContext, memo, useCallback, useContext, useEffect, useId, useMemo, useReducer } from "react";
|
|
3
|
+
import React, { createContext, memo, startTransition, useCallback, useContext, useEffect, useId, useMemo, useReducer } from "react";
|
|
5
4
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
6
5
|
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 || {});
|
|
7
6
|
const INITIAL_STATE = {};
|
|
@@ -97,7 +96,9 @@ const registerHost = (state, hostName) => (hostName in state || (state[hostName]
|
|
|
97
96
|
}) => {
|
|
98
97
|
const [state, dispatch] = useReducer(reducer, INITIAL_STATE),
|
|
99
98
|
transitionDispatch = useMemo(() => value => {
|
|
100
|
-
|
|
99
|
+
startTransition(() => {
|
|
100
|
+
dispatch(value);
|
|
101
|
+
});
|
|
101
102
|
}, [dispatch]);
|
|
102
103
|
return /* @__PURE__ */jsx(PortalDispatchContext.Provider, {
|
|
103
104
|
value: transitionDispatch,
|
|
@@ -120,17 +121,16 @@ const defaultRenderer = children => /* @__PURE__ */jsx(Fragment, {
|
|
|
120
121
|
forwardProps,
|
|
121
122
|
render = defaultRenderer
|
|
122
123
|
} = props,
|
|
123
|
-
isServer = !useDidFinishSSR(),
|
|
124
124
|
state = usePortalState(name),
|
|
125
125
|
{
|
|
126
126
|
registerHost: registerHost2,
|
|
127
127
|
deregisterHost: deregisterHost2
|
|
128
128
|
} = usePortal(props.name);
|
|
129
129
|
return useEffect(() => {
|
|
130
|
-
if (!
|
|
130
|
+
if (!(typeof window > "u")) return registerHost2(), () => {
|
|
131
131
|
deregisterHost2();
|
|
132
132
|
};
|
|
133
|
-
}, [
|
|
133
|
+
}, []), render(forwardProps ? state.map(item => {
|
|
134
134
|
let next = item.node;
|
|
135
135
|
return forwardProps ? React.Children.map(next, child => React.isValidElement(child) ? React.cloneElement(child, {
|
|
136
136
|
key: child.key,
|
|
@@ -1,17 +1,14 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
2
|
import { useIsomorphicLayoutEffect } from "@tamagui/constants";
|
|
3
3
|
import { useEvent } from "@tamagui/core";
|
|
4
|
-
import {
|
|
5
|
-
import React, { createContext, memo, useCallback, useContext, useEffect, useId, useMemo, useReducer } from "react";
|
|
4
|
+
import React, { createContext, memo, startTransition, useCallback, useContext, useEffect, useId, useMemo, useReducer } from "react";
|
|
6
5
|
function _array_like_to_array(arr, len) {
|
|
7
6
|
(len == null || len > arr.length) && (len = arr.length);
|
|
8
|
-
for (var i = 0, arr2 = new Array(len); i < len; i++)
|
|
9
|
-
arr2[i] = arr[i];
|
|
7
|
+
for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
|
|
10
8
|
return arr2;
|
|
11
9
|
}
|
|
12
10
|
function _array_with_holes(arr) {
|
|
13
|
-
if (Array.isArray(arr))
|
|
14
|
-
return arr;
|
|
11
|
+
if (Array.isArray(arr)) return arr;
|
|
15
12
|
}
|
|
16
13
|
function _define_property(obj, key, value) {
|
|
17
14
|
return key in obj ? Object.defineProperty(obj, key, {
|
|
@@ -34,8 +31,7 @@ function _iterable_to_array_limit(arr, i) {
|
|
|
34
31
|
try {
|
|
35
32
|
!_n && _i.return != null && _i.return();
|
|
36
33
|
} finally {
|
|
37
|
-
if (_d)
|
|
38
|
-
throw _e;
|
|
34
|
+
if (_d) throw _e;
|
|
39
35
|
}
|
|
40
36
|
}
|
|
41
37
|
return _arr;
|
|
@@ -60,13 +56,10 @@ function _sliced_to_array(arr, i) {
|
|
|
60
56
|
}
|
|
61
57
|
function _unsupported_iterable_to_array(o, minLen) {
|
|
62
58
|
if (o) {
|
|
63
|
-
if (typeof o == "string")
|
|
64
|
-
return _array_like_to_array(o, minLen);
|
|
59
|
+
if (typeof o == "string") return _array_like_to_array(o, minLen);
|
|
65
60
|
var n = Object.prototype.toString.call(o).slice(8, -1);
|
|
66
|
-
if (n === "Object" && o.constructor && (n = o.constructor.name), n === "Map" || n === "Set")
|
|
67
|
-
|
|
68
|
-
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))
|
|
69
|
-
return _array_like_to_array(o, minLen);
|
|
61
|
+
if (n === "Object" && o.constructor && (n = o.constructor.name), n === "Map" || n === "Set") return Array.from(n);
|
|
62
|
+
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
|
|
70
63
|
}
|
|
71
64
|
}
|
|
72
65
|
var ACTIONS;
|
|
@@ -151,7 +144,9 @@ var registerHost = function(state, hostName) {
|
|
|
151
144
|
}, PortalProviderComponent = function(param) {
|
|
152
145
|
var _param_rootHostName = param.rootHostName, rootHostName = _param_rootHostName === void 0 ? "root" : _param_rootHostName, _param_shouldAddRootHost = param.shouldAddRootHost, shouldAddRootHost = _param_shouldAddRootHost === void 0 ? !0 : _param_shouldAddRootHost, children = param.children, _useReducer = _sliced_to_array(useReducer(reducer, INITIAL_STATE), 2), state = _useReducer[0], dispatch = _useReducer[1], transitionDispatch = useMemo(function() {
|
|
153
146
|
var next = function(value) {
|
|
154
|
-
|
|
147
|
+
startTransition(function() {
|
|
148
|
+
dispatch(value);
|
|
149
|
+
});
|
|
155
150
|
};
|
|
156
151
|
return next;
|
|
157
152
|
}, [
|
|
@@ -176,15 +171,13 @@ var defaultRenderer = function(children) {
|
|
|
176
171
|
children
|
|
177
172
|
});
|
|
178
173
|
}, PortalHostComponent = function(props) {
|
|
179
|
-
var name = props.name, forwardProps = props.forwardProps, _props_render = props.render, render = _props_render === void 0 ? defaultRenderer : _props_render,
|
|
174
|
+
var name = props.name, forwardProps = props.forwardProps, _props_render = props.render, render = _props_render === void 0 ? defaultRenderer : _props_render, state = usePortalState(name), _usePortal = usePortal(props.name), registerHost2 = _usePortal.registerHost, deregisterHost2 = _usePortal.deregisterHost;
|
|
180
175
|
return useEffect(function() {
|
|
181
|
-
if (!
|
|
176
|
+
if (!(typeof window > "u"))
|
|
182
177
|
return registerHost2(), function() {
|
|
183
178
|
deregisterHost2();
|
|
184
179
|
};
|
|
185
|
-
}, [
|
|
186
|
-
isServer
|
|
187
|
-
]), render(forwardProps ? state.map(function(item) {
|
|
180
|
+
}, []), render(forwardProps ? state.map(function(item) {
|
|
188
181
|
var next = item.node;
|
|
189
182
|
return forwardProps ? React.Children.map(next, function(child) {
|
|
190
183
|
return /* @__PURE__ */ React.isValidElement(child) ? /* @__PURE__ */ React.cloneElement(child, _object_spread({
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/Users/n8/tamagui/packages/portal/src/GorhomPortal.tsx"],
|
|
4
|
-
"mappings": ";AAAA,SAASA,iCAAiC;AAG1C,SAASC,gBAAgB;
|
|
5
|
-
"names": ["useIsomorphicLayoutEffect", "useEvent", "
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": ["useIsomorphicLayoutEffect", "useEvent", "React", "createContext", "memo", "startTransition", "useCallback", "useContext", "useEffect", "useId", "useMemo", "useReducer", "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", "PortalHostComponent", "props", "forwardProps", "render", "useEffect", "window", "map", "React", "Children", "child", "isValidElement", "cloneElement", "key", "PortalComponent", "_providedName", "_providedHandleOnMount", "handleOnMount", "_providedHandleOnUnmount", "handleOnUnmount", "_providedHandleOnUpdate", "handleOnUpdate", "id", "useId", "useEvent", "useIsomorphicLayoutEffect", "PortalItem"]
|
|
6
6
|
}
|
package/dist/esm/Portal.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import "@tamagui/polyfill-dev";
|
|
2
2
|
import { isWeb } from "@tamagui/constants";
|
|
3
|
-
import { useIsomorphicLayoutEffect } from "@tamagui/constants";
|
|
4
3
|
import { YStack } from "@tamagui/stacks";
|
|
5
4
|
import * as React from "react";
|
|
6
5
|
import { createPortal } from "react-dom";
|
|
@@ -19,8 +18,10 @@ const Portal = React.memo(
|
|
|
19
18
|
...props
|
|
20
19
|
}
|
|
21
20
|
), [hostElement, setHostElement] = React.useState(null);
|
|
22
|
-
return
|
|
23
|
-
|
|
21
|
+
return React.useEffect(() => {
|
|
22
|
+
React.startTransition(() => {
|
|
23
|
+
setHostElement(host);
|
|
24
|
+
});
|
|
24
25
|
}, [host]), hostElement && props.children ? createPortal(contents, hostElement) : null;
|
|
25
26
|
}
|
|
26
27
|
);
|
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": "AAAA,OAAO;AAEP,SAAS,aAAa;AACtB,SAAS,
|
|
4
|
+
"mappings": "AAAA,OAAO;AAEP,SAAS,aAAa;AACtB,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;AAQ9D,WANA,MAAM,UAAU,MAAM;AACpB,YAAM,gBAAgB,MAAM;AAC1B,uBAAe,IAAI;AAAA,MACrB,CAAC;AAAA,IACH,GAAG,CAAC,IAAI,CAAC,GAEL,eAAe,MAAM,WAChB,aAAa,UAAU,WAAW,IAIpC;AAAA,EACT;AACF;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
package/dist/esm/Portal.mjs
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import "@tamagui/polyfill-dev";
|
|
2
2
|
import { isWeb } from "@tamagui/constants";
|
|
3
|
-
import { useIsomorphicLayoutEffect } from "@tamagui/constants";
|
|
4
3
|
import { YStack } from "@tamagui/stacks";
|
|
5
4
|
import * as React from "react";
|
|
6
5
|
import { createPortal } from "react-dom";
|
|
@@ -19,8 +18,10 @@ const Portal = React.memo(({
|
|
|
19
18
|
...props
|
|
20
19
|
}),
|
|
21
20
|
[hostElement, setHostElement] = React.useState(null);
|
|
22
|
-
return
|
|
23
|
-
|
|
21
|
+
return React.useEffect(() => {
|
|
22
|
+
React.startTransition(() => {
|
|
23
|
+
setHostElement(host);
|
|
24
|
+
});
|
|
24
25
|
}, [host]), hostElement && props.children ? createPortal(contents, hostElement) : null;
|
|
25
26
|
});
|
|
26
27
|
export { Portal };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tamagui/portal",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.100.0",
|
|
4
4
|
"source": "src/index.ts",
|
|
5
5
|
"types": "./types/index.d.ts",
|
|
6
6
|
"main": "dist/cjs",
|
|
@@ -28,18 +28,18 @@
|
|
|
28
28
|
}
|
|
29
29
|
},
|
|
30
30
|
"dependencies": {
|
|
31
|
-
"@tamagui/constants": "1.
|
|
32
|
-
"@tamagui/core": "1.
|
|
33
|
-
"@tamagui/stacks": "1.
|
|
34
|
-
"@tamagui/use-did-finish-ssr": "1.
|
|
35
|
-
"@tamagui/use-event": "1.
|
|
31
|
+
"@tamagui/constants": "1.100.0",
|
|
32
|
+
"@tamagui/core": "1.100.0",
|
|
33
|
+
"@tamagui/stacks": "1.100.0",
|
|
34
|
+
"@tamagui/use-did-finish-ssr": "1.100.0",
|
|
35
|
+
"@tamagui/use-event": "1.100.0"
|
|
36
36
|
},
|
|
37
37
|
"peerDependencies": {
|
|
38
38
|
"react": "*",
|
|
39
39
|
"react-native": "*"
|
|
40
40
|
},
|
|
41
41
|
"devDependencies": {
|
|
42
|
-
"@tamagui/build": "1.
|
|
42
|
+
"@tamagui/build": "1.100.0",
|
|
43
43
|
"react": "^18.2.0",
|
|
44
44
|
"react-native": "0.74.1"
|
|
45
45
|
},
|
package/src/GorhomPortal.tsx
CHANGED
|
@@ -3,7 +3,6 @@ import { useIsomorphicLayoutEffect } from '@tamagui/constants'
|
|
|
3
3
|
// MIT License Copyright (c) 2020 Mo Gorhom
|
|
4
4
|
import { useEvent } from '@tamagui/core'
|
|
5
5
|
// fixing SSR issue
|
|
6
|
-
import { useDidFinishSSR } from '@tamagui/use-did-finish-ssr'
|
|
7
6
|
import type { ReactNode } from 'react'
|
|
8
7
|
import React, {
|
|
9
8
|
createContext,
|
|
@@ -235,7 +234,9 @@ const PortalProviderComponent = ({
|
|
|
235
234
|
const [state, dispatch] = useReducer(reducer, INITIAL_STATE)
|
|
236
235
|
const transitionDispatch = useMemo(() => {
|
|
237
236
|
const next = (value: any) => {
|
|
238
|
-
|
|
237
|
+
startTransition(() => {
|
|
238
|
+
dispatch(value)
|
|
239
|
+
})
|
|
239
240
|
}
|
|
240
241
|
return next as typeof dispatch
|
|
241
242
|
}, [dispatch])
|
|
@@ -273,18 +274,17 @@ const defaultRenderer: PortalHostProps['render'] = (children) => <>{children}</>
|
|
|
273
274
|
|
|
274
275
|
const PortalHostComponent = (props: PortalHostProps) => {
|
|
275
276
|
const { name, forwardProps, render = defaultRenderer } = props
|
|
276
|
-
const isServer = !useDidFinishSSR()
|
|
277
277
|
const state = usePortalState(name)
|
|
278
278
|
const { registerHost, deregisterHost } = usePortal(props.name)
|
|
279
279
|
|
|
280
280
|
//#region effects
|
|
281
281
|
useEffect(() => {
|
|
282
|
-
if (
|
|
282
|
+
if (typeof window === 'undefined') return
|
|
283
283
|
registerHost()
|
|
284
284
|
return () => {
|
|
285
285
|
deregisterHost()
|
|
286
286
|
}
|
|
287
|
-
}, [
|
|
287
|
+
}, [])
|
|
288
288
|
//#endregion
|
|
289
289
|
|
|
290
290
|
if (forwardProps) {
|
package/src/Portal.tsx
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import '@tamagui/polyfill-dev'
|
|
2
2
|
|
|
3
3
|
import { isWeb } from '@tamagui/constants'
|
|
4
|
-
import { useIsomorphicLayoutEffect } from '@tamagui/constants'
|
|
5
4
|
import { YStack } from '@tamagui/stacks'
|
|
6
5
|
import * as React from 'react'
|
|
7
6
|
import { createPortal } from 'react-dom'
|
|
@@ -25,8 +24,10 @@ export const Portal = React.memo(
|
|
|
25
24
|
|
|
26
25
|
const [hostElement, setHostElement] = React.useState<any>(null)
|
|
27
26
|
|
|
28
|
-
|
|
29
|
-
|
|
27
|
+
React.useEffect(() => {
|
|
28
|
+
React.startTransition(() => {
|
|
29
|
+
setHostElement(host)
|
|
30
|
+
})
|
|
30
31
|
}, [host])
|
|
31
32
|
|
|
32
33
|
if (hostElement && props.children) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GorhomPortal.d.ts","sourceRoot":"","sources":["../src/GorhomPortal.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"GorhomPortal.d.ts","sourceRoot":"","sources":["../src/GorhomPortal.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACtC,OAAO,KAUN,MAAM,OAAO,CAAA;AAOd,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;AAyCD,eAAO,MAAM,UAAU,oCAtCa,eAAe,wEAsCA,CAAA;AAGnD,MAAM,WAAW,eAAe;IAC9B;;;;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;AAqDD,eAAO,MAAM,UAAU,oCAnDS,eAAe,UAmDA,CAAA"}
|
package/types/Portal.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Portal.d.ts","sourceRoot":"","sources":["../src/Portal.tsx"],"names":[],"mappings":"AAAA,OAAO,uBAAuB,CAAA;
|
|
1
|
+
{"version":3,"file":"Portal.d.ts","sourceRoot":"","sources":["../src/Portal.tsx"],"names":[],"mappings":"AAAA,OAAO,uBAAuB,CAAA;AAI9B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAG9B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAEhD,eAAO,MAAM,MAAM,iDACgC,WAAW,SA6B7D,CAAA"}
|