@tamagui/adapt 2.0.0-rc.4 → 2.0.0-rc.40
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/Adapt.cjs +203 -150
- package/dist/cjs/Adapt.native.js +250 -162
- package/dist/cjs/Adapt.native.js.map +1 -1
- package/dist/cjs/index.cjs +7 -5
- package/dist/cjs/index.native.js +7 -5
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/esm/Adapt.mjs +173 -122
- package/dist/esm/Adapt.mjs.map +1 -1
- package/dist/esm/Adapt.native.js +218 -133
- package/dist/esm/Adapt.native.js.map +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -6
- package/package.json +10 -13
- package/src/Adapt.tsx +118 -32
- package/types/Adapt.d.ts +0 -1
- package/types/Adapt.d.ts.map +1 -1
- package/dist/cjs/Adapt.js +0 -146
- package/dist/cjs/Adapt.js.map +0 -6
- package/dist/cjs/index.js +0 -15
- package/dist/cjs/index.js.map +0 -6
- package/dist/esm/Adapt.js +0 -134
- package/dist/esm/Adapt.js.map +0 -6
package/dist/esm/Adapt.mjs
CHANGED
|
@@ -1,67 +1,93 @@
|
|
|
1
1
|
import { isAndroid, isIos, isTouchable, isWeb, useIsomorphicLayoutEffect } from "@tamagui/constants";
|
|
2
2
|
import { createStyledContext, useMedia } from "@tamagui/core";
|
|
3
3
|
import { withStaticProperties } from "@tamagui/helpers";
|
|
4
|
+
import { getPortal } from "@tamagui/native";
|
|
4
5
|
import { PortalHost, PortalItem } from "@tamagui/portal";
|
|
5
6
|
import { StackZIndexContext } from "@tamagui/z-index-stack";
|
|
6
7
|
import React, { createContext, useContext, useId, useMemo } from "react";
|
|
7
|
-
import { jsx } from "react/jsx-runtime";
|
|
8
|
+
import { Fragment, jsx } from "react/jsx-runtime";
|
|
9
|
+
function createAdaptChildrenStore() {
|
|
10
|
+
let children = null;
|
|
11
|
+
const listeners = /* @__PURE__ */new Set();
|
|
12
|
+
return {
|
|
13
|
+
set(c) {
|
|
14
|
+
children = c;
|
|
15
|
+
for (const l of listeners) l();
|
|
16
|
+
},
|
|
17
|
+
get: () => children,
|
|
18
|
+
subscribe(callback) {
|
|
19
|
+
listeners.add(callback);
|
|
20
|
+
return () => listeners.delete(callback);
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
const AdaptChildrenStoreContext = createContext(null);
|
|
8
25
|
const AdaptContext = createStyledContext({
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
26
|
+
Contents: null,
|
|
27
|
+
scopeName: "",
|
|
28
|
+
portalName: "",
|
|
29
|
+
platform: null,
|
|
30
|
+
setPlatform: x => {},
|
|
31
|
+
when: null,
|
|
32
|
+
setWhen: () => {}
|
|
33
|
+
});
|
|
34
|
+
const LastAdaptContextScope = createContext("");
|
|
35
|
+
const ProvideAdaptContext = ({
|
|
36
|
+
children,
|
|
37
|
+
...context
|
|
38
|
+
}) => {
|
|
39
|
+
const scope = context.scopeName || "";
|
|
40
|
+
const lastScope = useContext(LastAdaptContextScope);
|
|
41
|
+
return /* @__PURE__ */jsx(LastAdaptContextScope.Provider, {
|
|
42
|
+
value: lastScope || context.lastScope || "",
|
|
43
|
+
children: /* @__PURE__ */jsx(AdaptContext.Provider, {
|
|
44
|
+
scope,
|
|
45
|
+
lastScope: lastScope || context.lastScope,
|
|
46
|
+
...context,
|
|
47
|
+
children
|
|
48
|
+
})
|
|
49
|
+
});
|
|
50
|
+
};
|
|
51
|
+
const useAdaptContext = scope => {
|
|
52
|
+
const lastScope = useContext(LastAdaptContextScope);
|
|
53
|
+
const adaptScope = scope ?? lastScope;
|
|
54
|
+
return AdaptContext.useStyledContext(adaptScope);
|
|
55
|
+
};
|
|
56
|
+
const AdaptPortals = /* @__PURE__ */new Map();
|
|
57
|
+
const AdaptParent = ({
|
|
58
|
+
children,
|
|
59
|
+
Contents,
|
|
60
|
+
scope,
|
|
61
|
+
portal
|
|
62
|
+
}) => {
|
|
63
|
+
const id = useId();
|
|
64
|
+
const portalName = `AdaptPortal${scope}${id}`;
|
|
65
|
+
const childrenStoreRef = React.useRef(null);
|
|
66
|
+
if (!childrenStoreRef.current) childrenStoreRef.current = createAdaptChildrenStore();
|
|
67
|
+
const isTeleport = false;
|
|
68
|
+
const FinalContents = useMemo(() => {
|
|
69
|
+
if (Contents) return Contents;
|
|
70
|
+
if (AdaptPortals.has(portalName)) return AdaptPortals.get(portalName);
|
|
71
|
+
const element = () => {
|
|
72
|
+
return /* @__PURE__ */jsx(PortalHost, {
|
|
73
|
+
name: portalName,
|
|
74
|
+
forwardProps: typeof portal === "boolean" ? void 0 : portal?.forwardProps
|
|
75
|
+
}, id);
|
|
76
|
+
};
|
|
77
|
+
AdaptPortals.set(portalName, element);
|
|
78
|
+
return element;
|
|
79
|
+
}, [portalName, Contents, isTeleport]);
|
|
80
|
+
useIsomorphicLayoutEffect(() => {
|
|
81
|
+
AdaptPortals.set(portalName, FinalContents);
|
|
82
|
+
return () => {
|
|
59
83
|
AdaptPortals.delete(portalName);
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
84
|
+
};
|
|
85
|
+
}, [portalName, isTeleport]);
|
|
86
|
+
const [when, setWhen] = React.useState(null);
|
|
87
|
+
const [platform, setPlatform] = React.useState(null);
|
|
88
|
+
return /* @__PURE__ */jsx(AdaptChildrenStoreContext.Provider, {
|
|
89
|
+
value: childrenStoreRef.current,
|
|
90
|
+
children: /* @__PURE__ */jsx(LastAdaptContextScope.Provider, {
|
|
65
91
|
value: scope,
|
|
66
92
|
children: /* @__PURE__ */jsx(ProvideAdaptContext, {
|
|
67
93
|
Contents: FinalContents,
|
|
@@ -69,76 +95,101 @@ const AdaptContext = createStyledContext({
|
|
|
69
95
|
platform,
|
|
70
96
|
setPlatform,
|
|
71
97
|
setWhen,
|
|
72
|
-
setChildren,
|
|
73
98
|
portalName,
|
|
74
99
|
scopeName: scope,
|
|
75
100
|
children
|
|
76
101
|
})
|
|
77
|
-
})
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
};
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
children,
|
|
96
|
-
scope
|
|
97
|
-
} = props,
|
|
98
|
-
context = useAdaptContext(scope),
|
|
99
|
-
enabled = useAdaptIsActiveGiven(props);
|
|
100
|
-
useIsomorphicLayoutEffect(() => {
|
|
101
|
-
context?.setWhen?.(when || enabled), context?.setPlatform?.(platform || null);
|
|
102
|
-
}, [when, platform, enabled, context.setWhen, context.setPlatform]), useIsomorphicLayoutEffect(() => () => {
|
|
103
|
-
context?.setWhen?.(null), context?.setPlatform?.(null);
|
|
104
|
-
}, []);
|
|
105
|
-
let output;
|
|
106
|
-
if (typeof children == "function") {
|
|
107
|
-
const Component = context?.Contents;
|
|
108
|
-
output = children(Component ? /* @__PURE__ */jsx(Component, {}) : null);
|
|
109
|
-
} else output = children;
|
|
110
|
-
return useIsomorphicLayoutEffect(() => {
|
|
111
|
-
typeof children == "function" && output !== void 0 && context?.setChildren(output);
|
|
112
|
-
}, [output]), /* @__PURE__ */jsx(StackZIndexContext, {
|
|
113
|
-
children: enabled ? output : null
|
|
114
|
-
});
|
|
115
|
-
}, {
|
|
116
|
-
Contents: AdaptContents
|
|
117
|
-
}),
|
|
118
|
-
AdaptPortalContents = props => {
|
|
119
|
-
const isActive = useAdaptIsActive(props.scope),
|
|
120
|
-
{
|
|
121
|
-
portalName
|
|
122
|
-
} = useAdaptContext(props.scope);
|
|
123
|
-
return /* @__PURE__ */jsx(PortalItem, {
|
|
124
|
-
passThrough: !isActive,
|
|
125
|
-
hostName: portalName,
|
|
126
|
-
children: props.children
|
|
127
|
-
});
|
|
128
|
-
},
|
|
129
|
-
useAdaptIsActiveGiven = ({
|
|
102
|
+
})
|
|
103
|
+
});
|
|
104
|
+
};
|
|
105
|
+
const AdaptContents = ({
|
|
106
|
+
scope,
|
|
107
|
+
...rest
|
|
108
|
+
}) => {
|
|
109
|
+
const context = useAdaptContext(scope);
|
|
110
|
+
if (!context?.Contents) throw new Error(process.env.NODE_ENV === "production" ? `tamagui.dev/docs/intro/errors#warning-002` : `You're rendering a Tamagui <Adapt /> component without nesting it inside a parent that is able to adapt.`);
|
|
111
|
+
return React.createElement(context.Contents, {
|
|
112
|
+
...rest,
|
|
113
|
+
key: `stable`
|
|
114
|
+
});
|
|
115
|
+
};
|
|
116
|
+
AdaptContents.shouldForwardSpace = true;
|
|
117
|
+
const Adapt = withStaticProperties(function Adapt2(props) {
|
|
118
|
+
const {
|
|
119
|
+
platform,
|
|
130
120
|
when,
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
return
|
|
142
|
-
|
|
121
|
+
children,
|
|
122
|
+
scope
|
|
123
|
+
} = props;
|
|
124
|
+
const context = useAdaptContext(scope);
|
|
125
|
+
const enabled = useAdaptIsActiveGiven(props);
|
|
126
|
+
useIsomorphicLayoutEffect(() => {
|
|
127
|
+
context?.setWhen?.(when || enabled);
|
|
128
|
+
context?.setPlatform?.(platform || null);
|
|
129
|
+
}, [when, platform, enabled, context.setWhen, context.setPlatform]);
|
|
130
|
+
useIsomorphicLayoutEffect(() => {
|
|
131
|
+
return () => {
|
|
132
|
+
context?.setWhen?.(null);
|
|
133
|
+
context?.setPlatform?.(null);
|
|
134
|
+
};
|
|
135
|
+
}, []);
|
|
136
|
+
let output;
|
|
137
|
+
if (typeof children === "function") {
|
|
138
|
+
const Component = context?.Contents;
|
|
139
|
+
output = children(Component ? /* @__PURE__ */jsx(Component, {}) : null);
|
|
140
|
+
} else output = children;
|
|
141
|
+
return /* @__PURE__ */jsx(StackZIndexContext, {
|
|
142
|
+
children: !enabled ? null : output
|
|
143
|
+
});
|
|
144
|
+
}, {
|
|
145
|
+
Contents: AdaptContents
|
|
146
|
+
});
|
|
147
|
+
const AdaptPortalContents = props => {
|
|
148
|
+
const isActive = useAdaptIsActive(props.scope);
|
|
149
|
+
const {
|
|
150
|
+
portalName
|
|
151
|
+
} = useAdaptContext(props.scope);
|
|
152
|
+
const childrenStore = useContext(AdaptChildrenStoreContext);
|
|
153
|
+
if (!isWeb && getPortal().state.type === "teleport" && childrenStore) return /* @__PURE__ */jsx(AdaptPortalTeleport, {
|
|
154
|
+
isActive,
|
|
155
|
+
store: childrenStore,
|
|
156
|
+
children: props.children
|
|
157
|
+
});
|
|
158
|
+
return /* @__PURE__ */jsx(PortalItem, {
|
|
159
|
+
passThrough: !isActive,
|
|
160
|
+
hostName: portalName,
|
|
161
|
+
children: props.children
|
|
162
|
+
});
|
|
163
|
+
};
|
|
164
|
+
function AdaptPortalTeleport({
|
|
165
|
+
isActive,
|
|
166
|
+
store,
|
|
167
|
+
children
|
|
168
|
+
}) {
|
|
169
|
+
useIsomorphicLayoutEffect(() => {
|
|
170
|
+
if (!isActive) return;
|
|
171
|
+
store.set(children);
|
|
172
|
+
return () => store.set(null);
|
|
173
|
+
});
|
|
174
|
+
return isActive ? null : /* @__PURE__ */jsx(Fragment, {
|
|
175
|
+
children
|
|
176
|
+
});
|
|
177
|
+
}
|
|
178
|
+
const useAdaptIsActiveGiven = ({
|
|
179
|
+
when,
|
|
180
|
+
platform
|
|
181
|
+
}) => {
|
|
182
|
+
const media = useMedia();
|
|
183
|
+
if (when == null && platform == null) return false;
|
|
184
|
+
if (when === true) return true;
|
|
185
|
+
let enabled = false;
|
|
186
|
+
if (platform === "touch") enabled = isTouchable;else if (platform === "native") enabled = !isWeb;else if (platform === "web") enabled = isWeb;else if (platform === "ios") enabled = isIos;else if (platform === "android") enabled = isAndroid;
|
|
187
|
+
if (platform && enabled == false) return false;
|
|
188
|
+
if (when && typeof when === "string") enabled = media[when];
|
|
189
|
+
return enabled;
|
|
190
|
+
};
|
|
191
|
+
const useAdaptIsActive = scope => {
|
|
192
|
+
return useAdaptIsActiveGiven(useAdaptContext(scope));
|
|
193
|
+
};
|
|
143
194
|
export { Adapt, AdaptContents, AdaptContext, AdaptParent, AdaptPortalContents, ProvideAdaptContext, useAdaptContext, useAdaptIsActive };
|
|
144
195
|
//# sourceMappingURL=Adapt.mjs.map
|
package/dist/esm/Adapt.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["isAndroid","isIos","isTouchable","isWeb","useIsomorphicLayoutEffect","createStyledContext","useMedia","withStaticProperties","PortalHost","PortalItem","StackZIndexContext","React","createContext","useContext","useId","useMemo","jsx","AdaptContext","Contents","scopeName","portalName","platform","setPlatform","x","when","
|
|
1
|
+
{"version":3,"names":["isAndroid","isIos","isTouchable","isWeb","useIsomorphicLayoutEffect","createStyledContext","useMedia","withStaticProperties","getPortal","PortalHost","PortalItem","StackZIndexContext","React","createContext","useContext","useId","useMemo","Fragment","jsx","createAdaptChildrenStore","children","listeners","Set","set","c","l","get","subscribe","callback","add","delete","AdaptChildrenStoreContext","AdaptContext","Contents","scopeName","portalName","platform","setPlatform","x","when","setWhen","LastAdaptContextScope","ProvideAdaptContext","context","scope","lastScope","Provider","value","useAdaptContext","adaptScope","useStyledContext","AdaptPortals","Map","AdaptParent","portal","id","childrenStoreRef","useRef","current","isTeleport","FinalContents","has","element","name","forwardProps","useState","AdaptContents","rest","Error","process","env","NODE_ENV","createElement","key","shouldForwardSpace","Adapt","Adapt2","props","enabled","useAdaptIsActiveGiven","output","Component","AdaptPortalContents","isActive","useAdaptIsActive","childrenStore","state","type","AdaptPortalTeleport","store","passThrough","hostName","media"],"sources":["../../src/Adapt.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|