@tamagui/portal 2.7.7 → 3.0.0-beta.643.1
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 +132 -164
- package/dist/cjs/GorhomPortal.native.cjs +202 -0
- package/dist/cjs/GorhomPortal.native.js +166 -211
- package/dist/cjs/GorhomPortal.native.js.map +1 -1
- package/dist/cjs/GorhomPortalItem.cjs +58 -58
- package/dist/cjs/GorhomPortalItem.native.cjs +105 -0
- package/dist/cjs/GorhomPortalItem.native.js +85 -106
- package/dist/cjs/GorhomPortalItem.native.js.map +1 -1
- package/dist/cjs/Portal.cjs +52 -60
- package/dist/cjs/Portal.native.cjs +57 -0
- package/dist/cjs/Portal.native.js +39 -44
- package/dist/cjs/Portal.native.js.map +1 -1
- package/dist/cjs/PortalProps.cjs +10 -11
- package/dist/cjs/PortalProps.native.cjs +19 -0
- package/dist/cjs/PortalProps.native.js +10 -10
- package/dist/cjs/PortalProps.native.js.map +1 -1
- package/dist/cjs/constants.cjs +24 -25
- package/dist/cjs/constants.native.cjs +44 -0
- package/dist/cjs/constants.native.js +26 -26
- package/dist/cjs/constants.native.js.map +1 -1
- package/dist/cjs/helpers.cjs +23 -24
- package/dist/cjs/helpers.native.cjs +39 -0
- package/dist/cjs/helpers.native.js +23 -23
- package/dist/cjs/helpers.native.js.map +1 -1
- package/dist/cjs/index.cjs +16 -17
- package/dist/cjs/index.native.cjs +36 -0
- package/dist/cjs/index.native.js +16 -16
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/native-portal.cjs +32 -35
- package/dist/cjs/native-portal.native.cjs +51 -0
- package/dist/cjs/native-portal.native.js +37 -39
- package/dist/cjs/native-portal.native.js.map +1 -1
- package/dist/cjs/types.cjs +10 -11
- package/dist/cjs/types.native.cjs +19 -0
- package/dist/cjs/types.native.js +10 -10
- package/dist/cjs/types.native.js.map +1 -1
- package/dist/esm/GorhomPortal.mjs +112 -136
- package/dist/esm/GorhomPortal.mjs.map +1 -1
- package/dist/esm/GorhomPortal.native.js +146 -184
- package/dist/esm/GorhomPortal.native.js.map +1 -1
- package/dist/esm/GorhomPortalItem.mjs +46 -41
- package/dist/esm/GorhomPortalItem.mjs.map +1 -1
- package/dist/esm/GorhomPortalItem.native.js +74 -91
- package/dist/esm/GorhomPortalItem.native.js.map +1 -1
- package/dist/esm/Portal.mjs +38 -36
- package/dist/esm/Portal.mjs.map +1 -1
- package/dist/esm/Portal.native.js +28 -29
- package/dist/esm/Portal.native.js.map +1 -1
- package/dist/esm/PortalProps.mjs +0 -2
- package/dist/esm/PortalProps.native.js +0 -2
- package/dist/esm/constants.mjs +8 -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 +9 -7
- package/dist/esm/helpers.mjs.map +1 -1
- package/dist/esm/helpers.native.js +9 -7
- package/dist/esm/helpers.native.js.map +1 -1
- package/dist/esm/index.js +10 -6
- package/dist/esm/index.mjs +10 -6
- package/dist/esm/index.native.js +10 -6
- package/dist/esm/native-portal.mjs +23 -17
- package/dist/esm/native-portal.mjs.map +1 -1
- package/dist/esm/native-portal.native.js +28 -22
- package/dist/esm/native-portal.native.js.map +1 -1
- package/dist/esm/types.mjs +0 -2
- package/dist/esm/types.native.js +0 -2
- package/package.json +11 -10
- package/src/GorhomPortalItem.tsx +11 -2
- package/src/Portal.tsx +31 -7
- package/src/PortalProps.tsx +7 -0
- package/types/GorhomPortal.d.ts +3 -2
- package/types/GorhomPortal.d.ts.map +1 -1
- package/types/GorhomPortalItem.d.ts.map +1 -1
- package/types/GorhomPortalItem.native.d.ts +1 -1
- package/types/GorhomPortalItem.native.d.ts.map +1 -1
- package/types/Portal.d.ts.map +1 -1
- package/types/Portal.native.d.ts +1 -1
- package/types/Portal.native.d.ts.map +1 -1
- package/types/PortalProps.d.ts +7 -1
- package/types/PortalProps.d.ts.map +1 -1
- package/types/helpers.d.ts +1 -1
- package/types/helpers.d.ts.map +1 -1
- package/dist/esm/PortalProps.mjs.map +0 -1
- package/dist/esm/PortalProps.native.js.map +0 -1
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/index.mjs.map +0 -1
- package/dist/esm/index.native.js.map +0 -1
- package/dist/esm/types.mjs.map +0 -1
- package/dist/esm/types.native.js.map +0 -1
|
@@ -4,165 +4,141 @@ import { startTransition } from "@tamagui/start-transition";
|
|
|
4
4
|
import { createContext, memo, useCallback, useContext, useMemo, useReducer } from "react";
|
|
5
5
|
import { allPortalHosts, portalListeners } from "./constants.mjs";
|
|
6
6
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
7
|
+
|
|
8
|
+
var ACTIONS = /* @__PURE__ */ ((ACTIONS2) => {
|
|
9
|
+
ACTIONS2[ACTIONS2["REGISTER_HOST"] = 0] = "REGISTER_HOST";
|
|
10
|
+
ACTIONS2[ACTIONS2["DEREGISTER_HOST"] = 1] = "DEREGISTER_HOST";
|
|
11
|
+
ACTIONS2[ACTIONS2["ADD_UPDATE_PORTAL"] = 2] = "ADD_UPDATE_PORTAL";
|
|
12
|
+
ACTIONS2[ACTIONS2["REMOVE_PORTAL"] = 3] = "REMOVE_PORTAL";
|
|
13
|
+
return ACTIONS2;
|
|
13
14
|
})(ACTIONS || {});
|
|
14
15
|
const INITIAL_STATE = {};
|
|
15
16
|
const registerHost = (state, hostName) => {
|
|
16
|
-
|
|
17
|
-
|
|
17
|
+
if (!(hostName in state)) state[hostName] = [];
|
|
18
|
+
return state;
|
|
18
19
|
};
|
|
19
20
|
const deregisterHost = (state, hostName) => {
|
|
20
|
-
|
|
21
|
-
|
|
21
|
+
delete state[hostName];
|
|
22
|
+
return state;
|
|
22
23
|
};
|
|
23
24
|
const addUpdatePortal = (state, hostName, portalName, node) => {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
25
|
+
if (!(hostName in state)) state = registerHost(state, hostName);
|
|
26
|
+
const index = state[hostName].findIndex((item) => item.name === portalName);
|
|
27
|
+
if (index !== -1) state[hostName][index].node = node;
|
|
28
|
+
else state[hostName].push({
|
|
29
|
+
name: portalName,
|
|
30
|
+
node
|
|
31
|
+
});
|
|
32
|
+
return state;
|
|
31
33
|
};
|
|
32
34
|
const removePortal = (state, hostName, portalName) => {
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
35
|
+
if (!(hostName in state)) {
|
|
36
|
+
if (process.env.NODE_ENV === "development") console.info(`Failed to remove portal '${portalName}', '${hostName}' was not registered!`);
|
|
37
|
+
return state;
|
|
38
|
+
}
|
|
39
|
+
const index = state[hostName].findIndex((item) => item.name === portalName);
|
|
40
|
+
if (index !== -1) state[hostName].splice(index, 1);
|
|
41
|
+
return state;
|
|
40
42
|
};
|
|
41
43
|
const reducer = (state, action) => {
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
case 1:
|
|
51
|
-
return deregisterHost({
|
|
52
|
-
...state
|
|
53
|
-
}, action.hostName);
|
|
54
|
-
case 2:
|
|
55
|
-
return addUpdatePortal({
|
|
56
|
-
...state
|
|
57
|
-
}, action.hostName, action.portalName, action.node);
|
|
58
|
-
case 3:
|
|
59
|
-
return removePortal({
|
|
60
|
-
...state
|
|
61
|
-
}, action.hostName, action.portalName);
|
|
62
|
-
default:
|
|
63
|
-
return state;
|
|
64
|
-
}
|
|
44
|
+
const { type } = action;
|
|
45
|
+
switch (type) {
|
|
46
|
+
case 0: return registerHost({ ...state }, action.hostName);
|
|
47
|
+
case 1: return deregisterHost({ ...state }, action.hostName);
|
|
48
|
+
case 2: return addUpdatePortal({ ...state }, action.hostName, action.portalName, action.node);
|
|
49
|
+
case 3: return removePortal({ ...state }, action.hostName, action.portalName);
|
|
50
|
+
default: return state;
|
|
51
|
+
}
|
|
65
52
|
};
|
|
66
53
|
const PortalStateContext = createContext(null);
|
|
67
54
|
const PortalDispatchContext = createContext(null);
|
|
68
55
|
const PortalProviderActiveContext = createContext(false);
|
|
69
56
|
const usePortal = (hostName = "root") => {
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
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
|
-
|
|
57
|
+
const dispatch = useContext(PortalDispatchContext);
|
|
58
|
+
if (dispatch === null) throw new Error("'PortalDispatchContext' cannot be null, please add 'PortalProvider' to the root component.");
|
|
59
|
+
const registerHost2 = useCallback(() => {
|
|
60
|
+
dispatch({
|
|
61
|
+
type: 0,
|
|
62
|
+
hostName
|
|
63
|
+
});
|
|
64
|
+
}, []);
|
|
65
|
+
const deregisterHost2 = useCallback(() => {
|
|
66
|
+
dispatch({
|
|
67
|
+
type: 1,
|
|
68
|
+
hostName
|
|
69
|
+
});
|
|
70
|
+
}, []);
|
|
71
|
+
const addUpdatePortal2 = useCallback((name, node) => {
|
|
72
|
+
dispatch({
|
|
73
|
+
type: 2,
|
|
74
|
+
hostName,
|
|
75
|
+
portalName: name,
|
|
76
|
+
node
|
|
77
|
+
});
|
|
78
|
+
}, []);
|
|
79
|
+
return {
|
|
80
|
+
registerHost: registerHost2,
|
|
81
|
+
deregisterHost: deregisterHost2,
|
|
82
|
+
addPortal: addUpdatePortal2,
|
|
83
|
+
updatePortal: addUpdatePortal2,
|
|
84
|
+
removePortal: useCallback((name) => {
|
|
85
|
+
dispatch({
|
|
86
|
+
type: 3,
|
|
87
|
+
hostName,
|
|
88
|
+
portalName: name
|
|
89
|
+
});
|
|
90
|
+
}, [])
|
|
91
|
+
};
|
|
105
92
|
};
|
|
106
|
-
const PortalProviderComponent = ({
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
})]
|
|
134
|
-
})
|
|
135
|
-
})
|
|
136
|
-
});
|
|
137
|
-
if (portalState.type === "teleport") return /* @__PURE__ */jsx(NativePortalProvider, {
|
|
138
|
-
children: content
|
|
139
|
-
});
|
|
140
|
-
return content;
|
|
93
|
+
const PortalProviderComponent = ({ rootHostName = "root", shouldAddRootHost = true, children }) => {
|
|
94
|
+
const isAlreadyInProvider = useContext(PortalProviderActiveContext);
|
|
95
|
+
if (process.env.NODE_ENV === "development") {
|
|
96
|
+
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}.`);
|
|
97
|
+
}
|
|
98
|
+
const [state, dispatch] = useReducer(reducer, INITIAL_STATE);
|
|
99
|
+
const transitionDispatch = useMemo(() => {
|
|
100
|
+
const next = (value) => {
|
|
101
|
+
startTransition(() => {
|
|
102
|
+
dispatch(value);
|
|
103
|
+
});
|
|
104
|
+
};
|
|
105
|
+
return next;
|
|
106
|
+
}, [dispatch]);
|
|
107
|
+
const portalState = getPortal().state;
|
|
108
|
+
const content = /* @__PURE__ */ jsx(PortalProviderActiveContext.Provider, {
|
|
109
|
+
value: true,
|
|
110
|
+
children: /* @__PURE__ */ jsx(PortalDispatchContext.Provider, {
|
|
111
|
+
value: transitionDispatch,
|
|
112
|
+
children: /* @__PURE__ */ jsxs(PortalStateContext.Provider, {
|
|
113
|
+
value: state,
|
|
114
|
+
children: [children, shouldAddRootHost && /* @__PURE__ */ jsx(PortalHost, { name: rootHostName })]
|
|
115
|
+
})
|
|
116
|
+
})
|
|
117
|
+
});
|
|
118
|
+
if (portalState.type === "teleport") return /* @__PURE__ */ jsx(NativePortalProvider, { children: content });
|
|
119
|
+
return content;
|
|
141
120
|
};
|
|
142
121
|
const PortalProvider = memo(PortalProviderComponent);
|
|
143
122
|
PortalProvider.displayName = "PortalProvider";
|
|
144
123
|
const PortalHost = memo(function PortalHost2(props) {
|
|
145
|
-
|
|
146
|
-
...props
|
|
147
|
-
});
|
|
124
|
+
return /* @__PURE__ */ jsx(PortalHostWeb, { ...props });
|
|
148
125
|
});
|
|
149
126
|
function PortalHostWeb(props) {
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
}
|
|
165
|
-
});
|
|
127
|
+
useIsomorphicLayoutEffect(() => {
|
|
128
|
+
return () => {
|
|
129
|
+
allPortalHosts.delete(props.name);
|
|
130
|
+
};
|
|
131
|
+
}, [props.name]);
|
|
132
|
+
return /* @__PURE__ */ jsx("div", {
|
|
133
|
+
style: { display: "contents" },
|
|
134
|
+
ref: (node) => {
|
|
135
|
+
if (node) {
|
|
136
|
+
allPortalHosts.set(props.name, node);
|
|
137
|
+
portalListeners[props.name]?.forEach((x) => x(node));
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
});
|
|
166
141
|
}
|
|
142
|
+
|
|
167
143
|
export { ACTIONS, INITIAL_STATE, PortalHost, PortalProvider, usePortal };
|
|
168
144
|
//# sourceMappingURL=GorhomPortal.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useIsomorphicLayoutEffect","NativePortalProvider","getPortal","startTransition","createContext","memo","useCallback","useContext","useMemo","useReducer","allPortalHosts","portalListeners","jsx","jsxs","ACTIONS","ACTIONS2","INITIAL_STATE","registerHost","state","hostName","deregisterHost","addUpdatePortal","portalName","node","index","findIndex","item","name","push","removePortal","process","env","NODE_ENV","console","info","splice","reducer","action","type","PortalStateContext","PortalDispatchContext","PortalProviderActiveContext","usePortal","dispatch","Error","registerHost2","deregisterHost2","addUpdatePortal2","addPortal","updatePortal","PortalProviderComponent","rootHostName","shouldAddRootHost","children","isAlreadyInProvider","warn","transitionDispatch","next","value","portalState","content","Provider","PortalHost","PortalProvider","displayName","PortalHost2","props","PortalHostWeb","delete","style","display","ref","set","forEach","x"],"sources":["GorhomPortal.mjs"],"sourcesContent":["import { useIsomorphicLayoutEffect } from \"@tamagui/constants\";\nimport { NativePortalProvider, getPortal } from \"@tamagui/native\";\nimport { startTransition } from \"@tamagui/start-transition\";\nimport { createContext, memo, useCallback, useContext, useMemo, useReducer } from \"react\";\nimport { allPortalHosts, portalListeners } from \"./constants\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\n\nvar ACTIONS = /* @__PURE__ */ ((ACTIONS2) => {\n\tACTIONS2[ACTIONS2[\"REGISTER_HOST\"] = 0] = \"REGISTER_HOST\";\n\tACTIONS2[ACTIONS2[\"DEREGISTER_HOST\"] = 1] = \"DEREGISTER_HOST\";\n\tACTIONS2[ACTIONS2[\"ADD_UPDATE_PORTAL\"] = 2] = \"ADD_UPDATE_PORTAL\";\n\tACTIONS2[ACTIONS2[\"REMOVE_PORTAL\"] = 3] = \"REMOVE_PORTAL\";\n\treturn ACTIONS2;\n})(ACTIONS || {});\nconst INITIAL_STATE = {};\nconst registerHost = (state, hostName) => {\n\tif (!(hostName in state)) state[hostName] = [];\n\treturn state;\n};\nconst deregisterHost = (state, hostName) => {\n\tdelete state[hostName];\n\treturn state;\n};\nconst addUpdatePortal = (state, hostName, portalName, node) => {\n\tif (!(hostName in state)) state = registerHost(state, hostName);\n\tconst index = state[hostName].findIndex((item) => item.name === portalName);\n\tif (index !== -1) state[hostName][index].node = node;\n\telse state[hostName].push({\n\t\tname: portalName,\n\t\tnode\n\t});\n\treturn state;\n};\nconst removePortal = (state, hostName, portalName) => {\n\tif (!(hostName in state)) {\n\t\tif (process.env.NODE_ENV === \"development\") console.info(`Failed to remove portal '${portalName}', '${hostName}' was not registered!`);\n\t\treturn state;\n\t}\n\tconst index = state[hostName].findIndex((item) => item.name === portalName);\n\tif (index !== -1) state[hostName].splice(index, 1);\n\treturn state;\n};\nconst reducer = (state, action) => {\n\tconst { type } = action;\n\tswitch (type) {\n\t\tcase 0: return registerHost({ ...state }, action.hostName);\n\t\tcase 1: return deregisterHost({ ...state }, action.hostName);\n\t\tcase 2: return addUpdatePortal({ ...state }, action.hostName, action.portalName, action.node);\n\t\tcase 3: return removePortal({ ...state }, action.hostName, action.portalName);\n\t\tdefault: return state;\n\t}\n};\nconst PortalStateContext = createContext(null);\nconst PortalDispatchContext = createContext(null);\nconst PortalProviderActiveContext = createContext(false);\nconst usePortal = (hostName = \"root\") => {\n\tconst dispatch = useContext(PortalDispatchContext);\n\tif (dispatch === null) throw new Error(\"'PortalDispatchContext' cannot be null, please add 'PortalProvider' to the root component.\");\n\tconst registerHost2 = useCallback(() => {\n\t\tdispatch({\n\t\t\ttype: 0,\n\t\t\thostName\n\t\t});\n\t}, []);\n\tconst deregisterHost2 = useCallback(() => {\n\t\tdispatch({\n\t\t\ttype: 1,\n\t\t\thostName\n\t\t});\n\t}, []);\n\tconst addUpdatePortal2 = useCallback((name, node) => {\n\t\tdispatch({\n\t\t\ttype: 2,\n\t\t\thostName,\n\t\t\tportalName: name,\n\t\t\tnode\n\t\t});\n\t}, []);\n\treturn {\n\t\tregisterHost: registerHost2,\n\t\tderegisterHost: deregisterHost2,\n\t\taddPortal: addUpdatePortal2,\n\t\tupdatePortal: addUpdatePortal2,\n\t\tremovePortal: useCallback((name) => {\n\t\t\tdispatch({\n\t\t\t\ttype: 3,\n\t\t\t\thostName,\n\t\t\t\tportalName: name\n\t\t\t});\n\t\t}, [])\n\t};\n};\nconst PortalProviderComponent = ({ rootHostName = \"root\", shouldAddRootHost = true, children }) => {\n\tconst isAlreadyInProvider = useContext(PortalProviderActiveContext);\n\tif (process.env.NODE_ENV === \"development\") {\n\t\tif (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}.`);\n\t}\n\tconst [state, dispatch] = useReducer(reducer, INITIAL_STATE);\n\tconst transitionDispatch = useMemo(() => {\n\t\tconst next = (value) => {\n\t\t\tstartTransition(() => {\n\t\t\t\tdispatch(value);\n\t\t\t});\n\t\t};\n\t\treturn next;\n\t}, [dispatch]);\n\tconst portalState = getPortal().state;\n\tconst content = /* @__PURE__ */ jsx(PortalProviderActiveContext.Provider, {\n\t\tvalue: true,\n\t\tchildren: /* @__PURE__ */ jsx(PortalDispatchContext.Provider, {\n\t\t\tvalue: transitionDispatch,\n\t\t\tchildren: /* @__PURE__ */ jsxs(PortalStateContext.Provider, {\n\t\t\t\tvalue: state,\n\t\t\t\tchildren: [children, shouldAddRootHost && /* @__PURE__ */ jsx(PortalHost, { name: rootHostName })]\n\t\t\t})\n\t\t})\n\t});\n\tif (portalState.type === \"teleport\") return /* @__PURE__ */ jsx(NativePortalProvider, { children: content });\n\treturn content;\n};\nconst PortalProvider = memo(PortalProviderComponent);\nPortalProvider.displayName = \"PortalProvider\";\nconst PortalHost = memo(function PortalHost2(props) {\n\treturn /* @__PURE__ */ jsx(PortalHostWeb, { ...props });\n});\nfunction PortalHostWeb(props) {\n\tuseIsomorphicLayoutEffect(() => {\n\t\treturn () => {\n\t\t\tallPortalHosts.delete(props.name);\n\t\t};\n\t}, [props.name]);\n\treturn /* @__PURE__ */ jsx(\"div\", {\n\t\tstyle: { display: \"contents\" },\n\t\tref: (node) => {\n\t\t\tif (node) {\n\t\t\t\tallPortalHosts.set(props.name, node);\n\t\t\t\tportalListeners[props.name]?.forEach((x) => x(node));\n\t\t\t}\n\t\t}\n\t});\n}\n\nexport { ACTIONS, INITIAL_STATE, PortalHost, PortalProvider, usePortal };"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"GorhomPortal.js","names":[],"sources":["esm/GorhomPortal.js"],"sourcesContent":["import { useIsomorphicLayoutEffect } from \"@tamagui/constants\";\nimport { NativePortalProvider, getPortal } from \"@tamagui/native\";\nimport { startTransition } from \"@tamagui/start-transition\";\nimport { createContext, memo, useCallback, useContext, useMemo, useReducer } from \"react\";\nimport { allPortalHosts, portalListeners } from \"./constants\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\n\nvar ACTIONS = /* @__PURE__ */ ((ACTIONS2) => {\n\tACTIONS2[ACTIONS2[\"REGISTER_HOST\"] = 0] = \"REGISTER_HOST\";\n\tACTIONS2[ACTIONS2[\"DEREGISTER_HOST\"] = 1] = \"DEREGISTER_HOST\";\n\tACTIONS2[ACTIONS2[\"ADD_UPDATE_PORTAL\"] = 2] = \"ADD_UPDATE_PORTAL\";\n\tACTIONS2[ACTIONS2[\"REMOVE_PORTAL\"] = 3] = \"REMOVE_PORTAL\";\n\treturn ACTIONS2;\n})(ACTIONS || {});\nconst INITIAL_STATE = {};\nconst registerHost = (state, hostName) => {\n\tif (!(hostName in state)) state[hostName] = [];\n\treturn state;\n};\nconst deregisterHost = (state, hostName) => {\n\tdelete state[hostName];\n\treturn state;\n};\nconst addUpdatePortal = (state, hostName, portalName, node) => {\n\tif (!(hostName in state)) state = registerHost(state, hostName);\n\tconst index = state[hostName].findIndex((item) => item.name === portalName);\n\tif (index !== -1) state[hostName][index].node = node;\n\telse state[hostName].push({\n\t\tname: portalName,\n\t\tnode\n\t});\n\treturn state;\n};\nconst removePortal = (state, hostName, portalName) => {\n\tif (!(hostName in state)) {\n\t\tif (process.env.NODE_ENV === \"development\") console.info(`Failed to remove portal '${portalName}', '${hostName}' was not registered!`);\n\t\treturn state;\n\t}\n\tconst index = state[hostName].findIndex((item) => item.name === portalName);\n\tif (index !== -1) state[hostName].splice(index, 1);\n\treturn state;\n};\nconst reducer = (state, action) => {\n\tconst { type } = action;\n\tswitch (type) {\n\t\tcase 0: return registerHost({ ...state }, action.hostName);\n\t\tcase 1: return deregisterHost({ ...state }, action.hostName);\n\t\tcase 2: return addUpdatePortal({ ...state }, action.hostName, action.portalName, action.node);\n\t\tcase 3: return removePortal({ ...state }, action.hostName, action.portalName);\n\t\tdefault: return state;\n\t}\n};\nconst PortalStateContext = createContext(null);\nconst PortalDispatchContext = createContext(null);\nconst PortalProviderActiveContext = createContext(false);\nconst usePortal = (hostName = \"root\") => {\n\tconst dispatch = useContext(PortalDispatchContext);\n\tif (dispatch === null) throw new Error(\"'PortalDispatchContext' cannot be null, please add 'PortalProvider' to the root component.\");\n\tconst registerHost2 = useCallback(() => {\n\t\tdispatch({\n\t\t\ttype: 0,\n\t\t\thostName\n\t\t});\n\t}, []);\n\tconst deregisterHost2 = useCallback(() => {\n\t\tdispatch({\n\t\t\ttype: 1,\n\t\t\thostName\n\t\t});\n\t}, []);\n\tconst addUpdatePortal2 = useCallback((name, node) => {\n\t\tdispatch({\n\t\t\ttype: 2,\n\t\t\thostName,\n\t\t\tportalName: name,\n\t\t\tnode\n\t\t});\n\t}, []);\n\treturn {\n\t\tregisterHost: registerHost2,\n\t\tderegisterHost: deregisterHost2,\n\t\taddPortal: addUpdatePortal2,\n\t\tupdatePortal: addUpdatePortal2,\n\t\tremovePortal: useCallback((name) => {\n\t\t\tdispatch({\n\t\t\t\ttype: 3,\n\t\t\t\thostName,\n\t\t\t\tportalName: name\n\t\t\t});\n\t\t}, [])\n\t};\n};\nconst PortalProviderComponent = ({ rootHostName = \"root\", shouldAddRootHost = true, children }) => {\n\tconst isAlreadyInProvider = useContext(PortalProviderActiveContext);\n\tif (process.env.NODE_ENV === \"development\") {\n\t\tif (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}.`);\n\t}\n\tconst [state, dispatch] = useReducer(reducer, INITIAL_STATE);\n\tconst transitionDispatch = useMemo(() => {\n\t\tconst next = (value) => {\n\t\t\tstartTransition(() => {\n\t\t\t\tdispatch(value);\n\t\t\t});\n\t\t};\n\t\treturn next;\n\t}, [dispatch]);\n\tconst portalState = getPortal().state;\n\tconst content = /* @__PURE__ */ jsx(PortalProviderActiveContext.Provider, {\n\t\tvalue: true,\n\t\tchildren: /* @__PURE__ */ jsx(PortalDispatchContext.Provider, {\n\t\t\tvalue: transitionDispatch,\n\t\t\tchildren: /* @__PURE__ */ jsxs(PortalStateContext.Provider, {\n\t\t\t\tvalue: state,\n\t\t\t\tchildren: [children, shouldAddRootHost && /* @__PURE__ */ jsx(PortalHost, { name: rootHostName })]\n\t\t\t})\n\t\t})\n\t});\n\tif (portalState.type === \"teleport\") return /* @__PURE__ */ jsx(NativePortalProvider, { children: content });\n\treturn content;\n};\nconst PortalProvider = memo(PortalProviderComponent);\nPortalProvider.displayName = \"PortalProvider\";\nconst PortalHost = memo(function PortalHost2(props) {\n\treturn /* @__PURE__ */ jsx(PortalHostWeb, { ...props });\n});\nfunction PortalHostWeb(props) {\n\tuseIsomorphicLayoutEffect(() => {\n\t\treturn () => {\n\t\t\tallPortalHosts.delete(props.name);\n\t\t};\n\t}, [props.name]);\n\treturn /* @__PURE__ */ jsx(\"div\", {\n\t\tstyle: { display: \"contents\" },\n\t\tref: (node) => {\n\t\t\tif (node) {\n\t\t\t\tallPortalHosts.set(props.name, node);\n\t\t\t\tportalListeners[props.name]?.forEach((x) => x(node));\n\t\t\t}\n\t\t}\n\t});\n}\n\nexport { ACTIONS, INITIAL_STATE, PortalHost, PortalProvider, usePortal };"],"mappings":"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"}
|