one 1.2.6 → 1.2.7
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/ui/Slot.cjs +42 -0
- package/dist/cjs/ui/Slot.js +27 -0
- package/dist/cjs/ui/Slot.js.map +6 -0
- package/dist/cjs/ui/Slot.native.js +48 -0
- package/dist/cjs/ui/Slot.native.js.map +1 -0
- package/dist/cjs/ui/TabContext.cjs +44 -0
- package/dist/cjs/ui/TabContext.js +35 -0
- package/dist/cjs/ui/TabContext.js.map +6 -0
- package/dist/cjs/ui/TabContext.native.js +47 -0
- package/dist/cjs/ui/TabContext.native.js.map +1 -0
- package/dist/cjs/ui/TabList.cjs +52 -0
- package/dist/cjs/ui/TabList.js +38 -0
- package/dist/cjs/ui/TabList.js.map +6 -0
- package/dist/cjs/ui/TabList.native.js +57 -0
- package/dist/cjs/ui/TabList.native.js.map +1 -0
- package/dist/cjs/ui/TabRouter.cjs +47 -0
- package/dist/cjs/ui/TabRouter.js +41 -0
- package/dist/cjs/ui/TabRouter.js.map +6 -0
- package/dist/cjs/ui/TabRouter.native.js +57 -0
- package/dist/cjs/ui/TabRouter.native.js.map +1 -0
- package/dist/cjs/ui/TabSlot.cjs +115 -0
- package/dist/cjs/ui/TabSlot.js +91 -0
- package/dist/cjs/ui/TabSlot.js.map +6 -0
- package/dist/cjs/ui/TabSlot.native.js +120 -0
- package/dist/cjs/ui/TabSlot.native.js.map +1 -0
- package/dist/cjs/ui/TabTrigger.cjs +151 -0
- package/dist/cjs/ui/TabTrigger.js +120 -0
- package/dist/cjs/ui/TabTrigger.js.map +6 -0
- package/dist/cjs/ui/TabTrigger.native.js +153 -0
- package/dist/cjs/ui/TabTrigger.native.js.map +1 -0
- package/dist/cjs/ui/Tabs.cjs +175 -0
- package/dist/cjs/ui/Tabs.js +121 -0
- package/dist/cjs/ui/Tabs.js.map +6 -0
- package/dist/cjs/ui/Tabs.native.js +191 -0
- package/dist/cjs/ui/Tabs.native.js.map +1 -0
- package/dist/cjs/ui/common.cjs +160 -0
- package/dist/cjs/ui/common.js +146 -0
- package/dist/cjs/ui/common.js.map +6 -0
- package/dist/cjs/ui/common.native.js +223 -0
- package/dist/cjs/ui/common.native.js.map +1 -0
- package/dist/cjs/ui/index.cjs +18 -0
- package/dist/cjs/ui/index.js +15 -0
- package/dist/cjs/ui/index.js.map +6 -0
- package/dist/cjs/ui/index.native.js +21 -0
- package/dist/cjs/ui/index.native.js.map +1 -0
- package/dist/cjs/ui/useComponent.cjs +46 -0
- package/dist/cjs/ui/useComponent.js +37 -0
- package/dist/cjs/ui/useComponent.js.map +6 -0
- package/dist/cjs/ui/useComponent.native.js +53 -0
- package/dist/cjs/ui/useComponent.native.js.map +1 -0
- package/dist/esm/ui/Slot.js +17 -0
- package/dist/esm/ui/Slot.js.map +6 -0
- package/dist/esm/ui/Slot.mjs +19 -0
- package/dist/esm/ui/Slot.mjs.map +1 -0
- package/dist/esm/ui/Slot.native.js +22 -0
- package/dist/esm/ui/Slot.native.js.map +1 -0
- package/dist/esm/ui/TabContext.js +19 -0
- package/dist/esm/ui/TabContext.js.map +6 -0
- package/dist/esm/ui/TabContext.mjs +17 -0
- package/dist/esm/ui/TabContext.mjs.map +1 -0
- package/dist/esm/ui/TabContext.native.js +17 -0
- package/dist/esm/ui/TabContext.native.js.map +1 -0
- package/dist/esm/ui/TabList.js +24 -0
- package/dist/esm/ui/TabList.js.map +6 -0
- package/dist/esm/ui/TabList.mjs +28 -0
- package/dist/esm/ui/TabList.mjs.map +1 -0
- package/dist/esm/ui/TabList.native.js +30 -0
- package/dist/esm/ui/TabList.native.js.map +1 -0
- package/dist/esm/ui/TabRouter.js +27 -0
- package/dist/esm/ui/TabRouter.js.map +6 -0
- package/dist/esm/ui/TabRouter.mjs +24 -0
- package/dist/esm/ui/TabRouter.mjs.map +1 -0
- package/dist/esm/ui/TabRouter.native.js +31 -0
- package/dist/esm/ui/TabRouter.native.js.map +1 -0
- package/dist/esm/ui/TabSlot.js +80 -0
- package/dist/esm/ui/TabSlot.js.map +6 -0
- package/dist/esm/ui/TabSlot.mjs +89 -0
- package/dist/esm/ui/TabSlot.mjs.map +1 -0
- package/dist/esm/ui/TabSlot.native.js +91 -0
- package/dist/esm/ui/TabSlot.native.js.map +1 -0
- package/dist/esm/ui/TabTrigger.js +115 -0
- package/dist/esm/ui/TabTrigger.js.map +6 -0
- package/dist/esm/ui/TabTrigger.mjs +126 -0
- package/dist/esm/ui/TabTrigger.mjs.map +1 -0
- package/dist/esm/ui/TabTrigger.native.js +125 -0
- package/dist/esm/ui/TabTrigger.native.js.map +1 -0
- package/dist/esm/ui/Tabs.js +130 -0
- package/dist/esm/ui/Tabs.js.map +6 -0
- package/dist/esm/ui/Tabs.mjs +149 -0
- package/dist/esm/ui/Tabs.mjs.map +1 -0
- package/dist/esm/ui/Tabs.native.js +162 -0
- package/dist/esm/ui/Tabs.native.js.map +1 -0
- package/dist/esm/ui/common.js +133 -0
- package/dist/esm/ui/common.js.map +6 -0
- package/dist/esm/ui/common.mjs +135 -0
- package/dist/esm/ui/common.mjs.map +1 -0
- package/dist/esm/ui/common.native.js +195 -0
- package/dist/esm/ui/common.native.js.map +1 -0
- package/dist/esm/ui/index.js +2 -0
- package/dist/esm/ui/index.js.map +6 -0
- package/dist/esm/ui/index.mjs +2 -0
- package/dist/esm/ui/index.mjs.map +1 -0
- package/dist/esm/ui/index.native.js +2 -0
- package/dist/esm/ui/index.native.js.map +1 -0
- package/dist/esm/ui/useComponent.js +22 -0
- package/dist/esm/ui/useComponent.js.map +6 -0
- package/dist/esm/ui/useComponent.mjs +23 -0
- package/dist/esm/ui/useComponent.mjs.map +1 -0
- package/dist/esm/ui/useComponent.native.js +27 -0
- package/dist/esm/ui/useComponent.native.js.map +1 -0
- package/package.json +18 -9
- package/src/ui/README.md +121 -0
- package/src/ui/Slot.tsx +34 -0
- package/src/ui/TabContext.tsx +115 -0
- package/src/ui/TabList.tsx +47 -0
- package/src/ui/TabRouter.tsx +79 -0
- package/src/ui/TabSlot.tsx +170 -0
- package/src/ui/TabTrigger.tsx +282 -0
- package/src/ui/Tabs.tsx +313 -0
- package/src/ui/common.tsx +277 -0
- package/src/ui/index.ts +1 -0
- package/src/ui/useComponent.tsx +42 -0
- package/types/ui/Slot.d.ts +6 -0
- package/types/ui/Slot.d.ts.map +1 -0
- package/types/ui/TabContext.d.ts +190 -0
- package/types/ui/TabContext.d.ts.map +1 -0
- package/types/ui/TabList.d.ts +25 -0
- package/types/ui/TabList.d.ts.map +1 -0
- package/types/ui/TabRouter.d.ts +103 -0
- package/types/ui/TabRouter.d.ts.map +1 -0
- package/types/ui/TabSlot.d.ts +73 -0
- package/types/ui/TabSlot.d.ts.map +1 -0
- package/types/ui/TabTrigger.d.ts +88 -0
- package/types/ui/TabTrigger.d.ts.map +1 -0
- package/types/ui/Tabs.d.ts +255 -0
- package/types/ui/Tabs.d.ts.map +1 -0
- package/types/ui/common.d.ts +40 -0
- package/types/ui/common.d.ts.map +1 -0
- package/types/ui/index.d.ts +2 -0
- package/types/ui/index.d.ts.map +1 -0
- package/types/ui/useComponent.d.ts +10 -0
- package/types/ui/useComponent.d.ts.map +1 -0
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
import { resolveHref } from "../link/href.mjs";
|
|
2
|
+
import { sortRoutesWithInitial } from "../router/sortRoutes.mjs";
|
|
3
|
+
import { Slot } from "./Slot.mjs";
|
|
4
|
+
import { jsx } from "react/jsx-runtime";
|
|
5
|
+
const ViewSlot = Slot;
|
|
6
|
+
function resolveHrefWithSegments(href, routeInfo, segmentsWithoutGroups) {
|
|
7
|
+
if (href.startsWith("./") || href.startsWith("../")) {
|
|
8
|
+
const parts = ((("/" + segmentsWithoutGroups.join("/")).replace(/\/[^/]*$/, "") || "/") + "/" + href).split("/"),
|
|
9
|
+
resolved = [];
|
|
10
|
+
for (const part of parts) part === "." || part === "" || (part === ".." ? resolved.pop() : resolved.push(part));
|
|
11
|
+
return "/" + resolved.join("/");
|
|
12
|
+
}
|
|
13
|
+
return href;
|
|
14
|
+
}
|
|
15
|
+
function triggersToScreens(triggers, layoutRouteNode, linking, initialRouteName, parentTriggerMap, routeInfo, contextKey) {
|
|
16
|
+
const configs = [];
|
|
17
|
+
for (const trigger of triggers) {
|
|
18
|
+
if (trigger.name in parentTriggerMap) {
|
|
19
|
+
const parentTrigger = parentTriggerMap[trigger.name];
|
|
20
|
+
throw new Error(`Trigger ${JSON.stringify({
|
|
21
|
+
name: trigger.name,
|
|
22
|
+
href: trigger.href
|
|
23
|
+
})} has the same name as parent trigger ${JSON.stringify({
|
|
24
|
+
name: parentTrigger.name,
|
|
25
|
+
href: parentTrigger.href
|
|
26
|
+
})}. Triggers must have unique names.`);
|
|
27
|
+
}
|
|
28
|
+
if (trigger.type === "external") {
|
|
29
|
+
configs.push(trigger);
|
|
30
|
+
continue;
|
|
31
|
+
}
|
|
32
|
+
let resolvedHref = resolveHref(trigger.href);
|
|
33
|
+
if (resolvedHref.startsWith("../")) throw new Error("Trigger href cannot link to a parent directory");
|
|
34
|
+
const segmentsWithoutGroups = contextKey.split("/").filter(segment => !(segment.startsWith("(") && segment.endsWith(")")));
|
|
35
|
+
resolvedHref = resolveHrefWithSegments(resolvedHref, routeInfo, segmentsWithoutGroups);
|
|
36
|
+
let state = linking.getStateFromPath?.(resolvedHref, linking.config)?.routes[0];
|
|
37
|
+
if (!state) {
|
|
38
|
+
console.warn(`Unable to find screen for trigger ${JSON.stringify(trigger)}. Does this point to a valid screen?`);
|
|
39
|
+
continue;
|
|
40
|
+
}
|
|
41
|
+
let routeState = state;
|
|
42
|
+
if (routeState.name === "+not-found") {
|
|
43
|
+
process.env.NODE_ENV !== "production" && console.warn(`Tab trigger '${trigger.name}' has the href '${trigger.href}' which points to a +not-found route.`);
|
|
44
|
+
continue;
|
|
45
|
+
}
|
|
46
|
+
const targetStateName = layoutRouteNode.route || "__root";
|
|
47
|
+
for (; state?.state && state.name !== targetStateName;) state = state.state.routes[state.state.index ?? state.state.routes.length - 1];
|
|
48
|
+
routeState = state.state?.routes[state.state.index ?? state.state.routes.length - 1] || state;
|
|
49
|
+
const routeNode = layoutRouteNode.children.find(child => child.route === routeState?.name);
|
|
50
|
+
if (!routeNode) {
|
|
51
|
+
console.warn(`Unable to find routeNode for trigger ${JSON.stringify(trigger)}. This might be a bug in One router`);
|
|
52
|
+
continue;
|
|
53
|
+
}
|
|
54
|
+
const duplicateTrigger = trigger.type === "internal" && configs.find(config => config.type === "external" ? !1 : config.routeNode.route === routeNode.route);
|
|
55
|
+
if (duplicateTrigger) {
|
|
56
|
+
const duplicateTriggerText = `${JSON.stringify({
|
|
57
|
+
name: duplicateTrigger.name,
|
|
58
|
+
href: duplicateTrigger.href
|
|
59
|
+
})} and ${JSON.stringify({
|
|
60
|
+
name: trigger.name,
|
|
61
|
+
href: trigger.href
|
|
62
|
+
})}`;
|
|
63
|
+
throw new Error(`A navigator cannot contain multiple trigger components that map to the same sub-segment. Consider adding a shared group and assigning a group to each trigger. Conflicting triggers:
|
|
64
|
+
${duplicateTriggerText}.
|
|
65
|
+
Both triggers map to route ${routeNode.route}.`);
|
|
66
|
+
}
|
|
67
|
+
configs.push({
|
|
68
|
+
...trigger,
|
|
69
|
+
href: resolvedHref,
|
|
70
|
+
routeNode,
|
|
71
|
+
action: stateToAction(state, layoutRouteNode.route)
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
const sortFn = sortRoutesWithInitial(initialRouteName),
|
|
75
|
+
sortedConfigs = configs.sort((a, b) => a.type === "external" && b.type === "external" ? 0 : a.type === "external" ? 1 : b.type === "external" ? -1 : sortFn(a.routeNode, b.routeNode)),
|
|
76
|
+
children = [],
|
|
77
|
+
triggerMap = {
|
|
78
|
+
...parentTriggerMap
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
Screen
|
|
82
|
+
} = require("../router/useScreens"),
|
|
83
|
+
{
|
|
84
|
+
createGetIdForRoute
|
|
85
|
+
} = require("../router/useScreens");
|
|
86
|
+
for (const [index, config] of sortedConfigs.entries()) if (triggerMap[config.name] = {
|
|
87
|
+
...config,
|
|
88
|
+
index
|
|
89
|
+
}, config.type === "internal") {
|
|
90
|
+
const route = config.routeNode;
|
|
91
|
+
children.push(/* @__PURE__ */jsx(Screen, {
|
|
92
|
+
getId: createGetIdForRoute(route),
|
|
93
|
+
name: route.route,
|
|
94
|
+
options: args => {
|
|
95
|
+
const staticOptions = route.generated ? route.loadRoute()?.getNavOptions : null,
|
|
96
|
+
output = {
|
|
97
|
+
...(typeof staticOptions == "function" ? staticOptions(args) : staticOptions)
|
|
98
|
+
};
|
|
99
|
+
return route.generated && (output.tabBarButton = () => null, output.drawerItemStyle = {
|
|
100
|
+
height: 0,
|
|
101
|
+
display: "none"
|
|
102
|
+
}), output;
|
|
103
|
+
},
|
|
104
|
+
getComponent: () => {
|
|
105
|
+
const {
|
|
106
|
+
getQualifiedRouteComponent
|
|
107
|
+
} = require("../router/useScreens");
|
|
108
|
+
return getQualifiedRouteComponent(route);
|
|
109
|
+
}
|
|
110
|
+
}, route.route));
|
|
111
|
+
}
|
|
112
|
+
return {
|
|
113
|
+
children,
|
|
114
|
+
triggerMap
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
function stateToAction(state, startAtRoute) {
|
|
118
|
+
const rootPayload = {};
|
|
119
|
+
let payload = rootPayload;
|
|
120
|
+
startAtRoute = startAtRoute === "" ? "__root" : startAtRoute;
|
|
121
|
+
let foundStartingPoint = startAtRoute === void 0 || !state?.state;
|
|
122
|
+
for (; state;) if (foundStartingPoint) payload === rootPayload ? payload.name = state.name : payload.screen = state.name, payload.params = state.params ? {
|
|
123
|
+
...state.params
|
|
124
|
+
} : {}, state = state.state?.routes[state.state?.routes.length - 1], state && (payload.params ??= {}, payload = payload.params);else {
|
|
125
|
+
state.name === startAtRoute && (foundStartingPoint = !0);
|
|
126
|
+
const nextState = state.state?.routes[state.state?.routes.length - 1];
|
|
127
|
+
nextState && (state = nextState);
|
|
128
|
+
}
|
|
129
|
+
return {
|
|
130
|
+
type: "JUMP_TO",
|
|
131
|
+
payload: rootPayload
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
export { ViewSlot, stateToAction, triggersToScreens };
|
|
135
|
+
//# sourceMappingURL=common.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["resolveHref","sortRoutesWithInitial","Slot","jsx","ViewSlot","resolveHrefWithSegments","href","routeInfo","segmentsWithoutGroups","startsWith","parts","join","replace","split","resolved","part","pop","push","triggersToScreens","triggers","layoutRouteNode","linking","initialRouteName","parentTriggerMap","contextKey","configs","trigger","name","parentTrigger","Error","JSON","stringify","type","resolvedHref","filter","segment","endsWith","state","getStateFromPath","config","routes","console","warn","routeState","process","env","NODE_ENV","targetStateName","route","index","length","routeNode","children","find","child","duplicateTrigger","duplicateTriggerText","action","stateToAction","sortFn","sortedConfigs","sort","a","b","triggerMap","Screen","require","createGetIdForRoute","entries","getId","options","args","staticOptions","generated","loadRoute","getNavOptions","output","tabBarButton","drawerItemStyle","height","display","getComponent","getQualifiedRouteComponent","startAtRoute","rootPayload","payload","foundStartingPoint","screen","params","nextState"],"sources":["../../../src/ui/common.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { resolveHref } from "../link/href.native.js";
|
|
3
|
+
import { sortRoutesWithInitial } from "../router/sortRoutes.native.js";
|
|
4
|
+
import { Slot } from "./Slot.native.js";
|
|
5
|
+
var ViewSlot = Slot;
|
|
6
|
+
function resolveHrefWithSegments(href, routeInfo, segmentsWithoutGroups) {
|
|
7
|
+
if (href.startsWith("./") || href.startsWith("../")) {
|
|
8
|
+
var basePath = "/" + segmentsWithoutGroups.join("/"),
|
|
9
|
+
baseDir = basePath.replace(/\/[^/]*$/, "") || "/",
|
|
10
|
+
parts = (baseDir + "/" + href).split("/"),
|
|
11
|
+
resolved = [],
|
|
12
|
+
_iteratorNormalCompletion = !0,
|
|
13
|
+
_didIteratorError = !1,
|
|
14
|
+
_iteratorError = void 0;
|
|
15
|
+
try {
|
|
16
|
+
for (var _iterator = parts[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = !0) {
|
|
17
|
+
var part = _step.value;
|
|
18
|
+
part === "." || part === "" || (part === ".." ? resolved.pop() : resolved.push(part));
|
|
19
|
+
}
|
|
20
|
+
} catch (err) {
|
|
21
|
+
_didIteratorError = !0, _iteratorError = err;
|
|
22
|
+
} finally {
|
|
23
|
+
try {
|
|
24
|
+
!_iteratorNormalCompletion && _iterator.return != null && _iterator.return();
|
|
25
|
+
} finally {
|
|
26
|
+
if (_didIteratorError) throw _iteratorError;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
return "/" + resolved.join("/");
|
|
30
|
+
}
|
|
31
|
+
return href;
|
|
32
|
+
}
|
|
33
|
+
function triggersToScreens(triggers, layoutRouteNode, linking, initialRouteName, parentTriggerMap, routeInfo, contextKey) {
|
|
34
|
+
var configs = [],
|
|
35
|
+
_iteratorNormalCompletion = !0,
|
|
36
|
+
_didIteratorError = !1,
|
|
37
|
+
_iteratorError = void 0;
|
|
38
|
+
try {
|
|
39
|
+
for (var _loop = function () {
|
|
40
|
+
var trigger = _step.value,
|
|
41
|
+
_linking_getStateFromPath,
|
|
42
|
+
_linking_getStateFromPath1,
|
|
43
|
+
_state_state;
|
|
44
|
+
if (trigger.name in parentTriggerMap) {
|
|
45
|
+
var parentTrigger = parentTriggerMap[trigger.name];
|
|
46
|
+
throw new Error(`Trigger ${JSON.stringify({
|
|
47
|
+
name: trigger.name,
|
|
48
|
+
href: trigger.href
|
|
49
|
+
})} has the same name as parent trigger ${JSON.stringify({
|
|
50
|
+
name: parentTrigger.name,
|
|
51
|
+
href: parentTrigger.href
|
|
52
|
+
})}. Triggers must have unique names.`);
|
|
53
|
+
}
|
|
54
|
+
if (trigger.type === "external") return configs.push(trigger), "continue";
|
|
55
|
+
var resolvedHref = resolveHref(trigger.href);
|
|
56
|
+
if (resolvedHref.startsWith("../")) throw new Error("Trigger href cannot link to a parent directory");
|
|
57
|
+
var segmentsWithoutGroups = contextKey.split("/").filter(function (segment) {
|
|
58
|
+
return !(segment.startsWith("(") && segment.endsWith(")"));
|
|
59
|
+
});
|
|
60
|
+
resolvedHref = resolveHrefWithSegments(resolvedHref, routeInfo, segmentsWithoutGroups);
|
|
61
|
+
var state = (_linking_getStateFromPath1 = linking.getStateFromPath) === null || _linking_getStateFromPath1 === void 0 || (_linking_getStateFromPath = _linking_getStateFromPath1.call(linking, resolvedHref, linking.config)) === null || _linking_getStateFromPath === void 0 ? void 0 : _linking_getStateFromPath.routes[0];
|
|
62
|
+
if (!state) return console.warn(`Unable to find screen for trigger ${JSON.stringify(trigger)}. Does this point to a valid screen?`), "continue";
|
|
63
|
+
var routeState = state;
|
|
64
|
+
if (routeState.name === "+not-found") return process.env.NODE_ENV !== "production" && console.warn(`Tab trigger '${trigger.name}' has the href '${trigger.href}' which points to a +not-found route.`), "continue";
|
|
65
|
+
for (var targetStateName = layoutRouteNode.route || "__root"; state?.state && state.name !== targetStateName;) {
|
|
66
|
+
var _state_state_index;
|
|
67
|
+
state = state.state.routes[(_state_state_index = state.state.index) !== null && _state_state_index !== void 0 ? _state_state_index : state.state.routes.length - 1];
|
|
68
|
+
}
|
|
69
|
+
var _state_state_index1;
|
|
70
|
+
routeState = ((_state_state = state.state) === null || _state_state === void 0 ? void 0 : _state_state.routes[(_state_state_index1 = state.state.index) !== null && _state_state_index1 !== void 0 ? _state_state_index1 : state.state.routes.length - 1]) || state;
|
|
71
|
+
var routeNode = layoutRouteNode.children.find(function (child) {
|
|
72
|
+
return child.route === routeState?.name;
|
|
73
|
+
});
|
|
74
|
+
if (!routeNode) return console.warn(`Unable to find routeNode for trigger ${JSON.stringify(trigger)}. This might be a bug in One router`), "continue";
|
|
75
|
+
var duplicateTrigger = trigger.type === "internal" && configs.find(function (config) {
|
|
76
|
+
return config.type === "external" ? !1 : config.routeNode.route === routeNode.route;
|
|
77
|
+
});
|
|
78
|
+
if (duplicateTrigger) {
|
|
79
|
+
var duplicateTriggerText = `${JSON.stringify({
|
|
80
|
+
name: duplicateTrigger.name,
|
|
81
|
+
href: duplicateTrigger.href
|
|
82
|
+
})} and ${JSON.stringify({
|
|
83
|
+
name: trigger.name,
|
|
84
|
+
href: trigger.href
|
|
85
|
+
})}`;
|
|
86
|
+
throw new Error(`A navigator cannot contain multiple trigger components that map to the same sub-segment. Consider adding a shared group and assigning a group to each trigger. Conflicting triggers:
|
|
87
|
+
${duplicateTriggerText}.
|
|
88
|
+
Both triggers map to route ${routeNode.route}.`);
|
|
89
|
+
}
|
|
90
|
+
configs.push({
|
|
91
|
+
...trigger,
|
|
92
|
+
href: resolvedHref,
|
|
93
|
+
routeNode,
|
|
94
|
+
action: stateToAction(state, layoutRouteNode.route)
|
|
95
|
+
});
|
|
96
|
+
}, _iterator = triggers[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = !0) _loop();
|
|
97
|
+
} catch (err) {
|
|
98
|
+
_didIteratorError = !0, _iteratorError = err;
|
|
99
|
+
} finally {
|
|
100
|
+
try {
|
|
101
|
+
!_iteratorNormalCompletion && _iterator.return != null && _iterator.return();
|
|
102
|
+
} finally {
|
|
103
|
+
if (_didIteratorError) throw _iteratorError;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
var sortFn = sortRoutesWithInitial(initialRouteName),
|
|
107
|
+
sortedConfigs = configs.sort(function (a, b) {
|
|
108
|
+
return a.type === "external" && b.type === "external" ? 0 : a.type === "external" ? 1 : b.type === "external" ? -1 : sortFn(a.routeNode, b.routeNode);
|
|
109
|
+
}),
|
|
110
|
+
children = [],
|
|
111
|
+
triggerMap = {
|
|
112
|
+
...parentTriggerMap
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
Screen
|
|
116
|
+
} = require("../router/useScreens"),
|
|
117
|
+
{
|
|
118
|
+
createGetIdForRoute
|
|
119
|
+
} = require("../router/useScreens"),
|
|
120
|
+
_iteratorNormalCompletion1 = !0,
|
|
121
|
+
_didIteratorError1 = !1,
|
|
122
|
+
_iteratorError1 = void 0;
|
|
123
|
+
try {
|
|
124
|
+
for (var _loop1 = function () {
|
|
125
|
+
var [index, config] = _step1.value;
|
|
126
|
+
if (triggerMap[config.name] = {
|
|
127
|
+
...config,
|
|
128
|
+
index
|
|
129
|
+
}, config.type === "internal") {
|
|
130
|
+
var route = config.routeNode;
|
|
131
|
+
children.push(/* @__PURE__ */_jsx(Screen, {
|
|
132
|
+
getId: createGetIdForRoute(route),
|
|
133
|
+
name: route.route,
|
|
134
|
+
options: function (args) {
|
|
135
|
+
var _route_loadRoute,
|
|
136
|
+
staticOptions = route.generated ? (_route_loadRoute = route.loadRoute()) === null || _route_loadRoute === void 0 ? void 0 : _route_loadRoute.getNavOptions : null,
|
|
137
|
+
staticResult = typeof staticOptions == "function" ? staticOptions(args) : staticOptions,
|
|
138
|
+
output = {
|
|
139
|
+
...staticResult
|
|
140
|
+
};
|
|
141
|
+
return route.generated && (output.tabBarButton = function () {
|
|
142
|
+
return null;
|
|
143
|
+
}, output.drawerItemStyle = {
|
|
144
|
+
height: 0,
|
|
145
|
+
display: "none"
|
|
146
|
+
}), output;
|
|
147
|
+
},
|
|
148
|
+
getComponent: function () {
|
|
149
|
+
var {
|
|
150
|
+
getQualifiedRouteComponent
|
|
151
|
+
} = require("../router/useScreens");
|
|
152
|
+
return getQualifiedRouteComponent(route);
|
|
153
|
+
}
|
|
154
|
+
}, route.route));
|
|
155
|
+
}
|
|
156
|
+
}, _iterator1 = sortedConfigs.entries()[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = !0) _loop1();
|
|
157
|
+
} catch (err) {
|
|
158
|
+
_didIteratorError1 = !0, _iteratorError1 = err;
|
|
159
|
+
} finally {
|
|
160
|
+
try {
|
|
161
|
+
!_iteratorNormalCompletion1 && _iterator1.return != null && _iterator1.return();
|
|
162
|
+
} finally {
|
|
163
|
+
if (_didIteratorError1) throw _iteratorError1;
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
return {
|
|
167
|
+
children,
|
|
168
|
+
triggerMap
|
|
169
|
+
};
|
|
170
|
+
}
|
|
171
|
+
function stateToAction(state, startAtRoute) {
|
|
172
|
+
var rootPayload = {},
|
|
173
|
+
payload = rootPayload;
|
|
174
|
+
startAtRoute = startAtRoute === "" ? "__root" : startAtRoute;
|
|
175
|
+
for (var foundStartingPoint = startAtRoute === void 0 || !state?.state; state;) if (foundStartingPoint) {
|
|
176
|
+
var _state_state, _state_state1;
|
|
177
|
+
if (payload === rootPayload ? payload.name = state.name : payload.screen = state.name, payload.params = state.params ? {
|
|
178
|
+
...state.params
|
|
179
|
+
} : {}, state = (_state_state1 = state.state) === null || _state_state1 === void 0 ? void 0 : _state_state1.routes[((_state_state = state.state) === null || _state_state === void 0 ? void 0 : _state_state.routes.length) - 1], state) {
|
|
180
|
+
var _payload, _params;
|
|
181
|
+
(_params = (_payload = payload).params) !== null && _params !== void 0 || (_payload.params = {}), payload = payload.params;
|
|
182
|
+
}
|
|
183
|
+
} else {
|
|
184
|
+
var _state_state2, _state_state3;
|
|
185
|
+
state.name === startAtRoute && (foundStartingPoint = !0);
|
|
186
|
+
var nextState = (_state_state3 = state.state) === null || _state_state3 === void 0 ? void 0 : _state_state3.routes[((_state_state2 = state.state) === null || _state_state2 === void 0 ? void 0 : _state_state2.routes.length) - 1];
|
|
187
|
+
nextState && (state = nextState);
|
|
188
|
+
}
|
|
189
|
+
return {
|
|
190
|
+
type: "JUMP_TO",
|
|
191
|
+
payload: rootPayload
|
|
192
|
+
};
|
|
193
|
+
}
|
|
194
|
+
export { ViewSlot, stateToAction, triggersToScreens };
|
|
195
|
+
//# sourceMappingURL=common.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["jsx","_jsx","resolveHref","sortRoutesWithInitial","Slot","ViewSlot","resolveHrefWithSegments","href","routeInfo","segmentsWithoutGroups","startsWith","basePath","join","baseDir","replace","parts","split","resolved","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Symbol","iterator","_step","next","done","part","value","pop","push","err","return","triggersToScreens","triggers","layoutRouteNode","linking","initialRouteName","parentTriggerMap","contextKey","configs","_loop","trigger","_linking_getStateFromPath","_linking_getStateFromPath1","_state_state","name","parentTrigger","Error","JSON","stringify","type","resolvedHref","filter","segment","endsWith","state","getStateFromPath","call","config","routes","console","warn","routeState","process","env","NODE_ENV","targetStateName","route","_state_state_index","index","length","_state_state_index1","routeNode","children","find","child","duplicateTrigger","duplicateTriggerText","action","stateToAction","sortFn","sortedConfigs","sort","a","b","triggerMap","Screen","require","createGetIdForRoute","_iteratorNormalCompletion1","_didIteratorError1","_iteratorError1","_loop1","_step1","getId","options","args","_route_loadRoute","staticOptions","generated","loadRoute","getNavOptions","staticResult","output","tabBarButton","drawerItemStyle","height","display"],"sources":["../../../src/ui/common.tsx"],"sourcesContent":[null],"mappings":"AAKA,SAASA,GAAA,IAAAC,IAAA,QAAmB;AAC5B,SAASC,WAAA,gCAA6B;AAEtC,SAASC,qBAAY;AAkMb,SAAAC,IAAA;AAhMD,IAAAC,QAAM,GAAAD,IAAW;AA2BxB,SAASE,wBACPC,IAAA,EACAC,SAAA,EACAC,qBAAA,EACQ;EAER,IAAIF,IAAA,CAAKG,UAAA,CAAW,IAAI,KAAKH,IAAA,CAAKG,UAAA,CAAW,KAAK,GAAG;IAKnD,IAAAC,QAAM,MAJW,GAAAF,qBAAM,CAAAG,IAAsB,IAAK;MAAGC,OAC5B,GAAQF,QAAA,CAAAG,OAAc,WAGtB,KAAM,OAAM;MAAAC,KAAM,GAAG,CACxCF,OAAA,MAAsB,GAAAN,IAAA,EAAAS,KAAA;MAAAC,QAAA;MAAAC,yBAAA;MAAAC,iBAAA;MAAAC,cAAA;IAE5B;MACM,SAASC,SAAO,GAAAN,KAAS,CAAAO,MACzB,CAAAC,QAAS,KAAAC,KACX,IAAAN,yBAEc,GAAI,CAAAM,KAAA,GAAAH,SAAA,CAAAI,IAAA,IAAAC,IAAA,GAAAR,yBAAA;QAItB,IAAOS,IAAA,GAAMH,KAAA,CAAAI,KAAS;QACxBD,IAAA,YAAAA,IAAA,YAAAA,IAAA,YAAAV,QAAA,CAAAY,GAAA,KAAAZ,QAAA,CAAAa,IAAA,CAAAH,IAAA;MAEA;IACF,SAAAI,GAAA;MAEOZ,iBAAS,IACd,GAAAC,cACA,GAAAW,GAAA;IAOA,UAAM;MAEN;QACM,CAAAb,yBAAgB,IAAAG,SAAkB,CAAAW,MAAA,YAAAX,SAAA,CAAAW,MAAA;MACpC,UAAM;QACN,IAAMb,iBAAI,EACR,MAAAC,cAAgB;MAAU;IACV;IACA,OACd,MAAAH,QAAA,CAAAL,IAAA;EAAuD;EACnC,OAAAL,IACpB;AAAoB;AACpB,SACJ0B,kBAAAC,QAAA,EAAAC,eAAA,EAAAC,OAAA,EAAAC,gBAAA,EAAAC,gBAAA,EAAA9B,SAAA,EAAA+B,UAAA;EAAA,IACFC,OAAA;IAAAtB,yBAAA;IAAAC,iBAAA;IAAAC,cAAA;EAEA;IACE,SAAAqB,KAAQ,GAAK,SAAAA,CAAA,EAAO;QACpB,IAAAC,OAAA,GAAAlB,KAAA,CAAAI,KAAA;UAAAe,yBAAA;UAAAC,0BAAA;UAAAC,YAAA;QACF,IAAAH,OAAA,CAAAI,IAAA,IAAAR,gBAAA;UAEI,IAAAS,aAAe,GAAAT,gBAAoB,CAAAI,OAAI,CAAAI,IAAA;UAEvC,UAAAE,KAAa,YAAWC,IAAK,CAAAC,SAAA;YAC/BJ,IAAM,EAAIJ,OAAM,CAAAI,IAAA;YAGZvC,IAAA,EAAAmC,OAAA,CAAAnC;UAIN,0CAAuC0C,IAAA,CAAAC,SAAc;YAEjDJ,IAAA,EAAQC,aAAQ,CAAAD,IAAA;YAEfvC,IAAA,EAAOwC,aAAA,CAAAxC;UAEV,sCAAQ;QAAA;QAER,IAAAmC,OAAA,CAAAS,IAAA,iBACA,OAAAX,OAAA,CAAAV,IAAA,CAAAY,OAAA;QACF,IAAAU,YAAA,GAAAlD,WAAA,CAAAwC,OAAA,CAAAnC,IAAA;QAEA,IAAI6C,YAAa,CAAA1C,UAAA,SAEb,UAAAsC,KAAW,iDAAuB;QAChC,IAAAvC,qBAAyB,GAAA8B,UAAA,CAAAvB,KAC3B,KAAQ,CAAAqC,MAAA,WAAAC,OAAA;UACN,SAAAA,OAAgB,CAAA5C,UAAQ,CAAI,QAAA4C,OAAA,CAAAC,QAAmB,IAAQ;QACzD;QAEFH,YAAA,GAAA9C,uBAAA,CAAA8C,YAAA,EAAA5C,SAAA,EAAAC,qBAAA;QACF,IAAA+C,KAAA,IAAAZ,0BAAA,GAAAR,OAAA,CAAAqB,gBAAA,cAAAb,0BAAA,gBAAAD,yBAAA,GAAAC,0BAAA,CAAAc,IAAA,CAAAtB,OAAA,EAAAgB,YAAA,EAAAhB,OAAA,CAAAuB,MAAA,eAAAhB,yBAAA,uBAAAA,yBAAA,CAAAiB,MAAA;QAEA,IAAM,CAAAJ,KAAA,EAIN,OAAOK,OAAO,CAAAC,IACR,sCAAeb,IAAA,CAAAC,SAAA,CAAAR,OAAA;QACnB,IAAAqB,UAAc,GAAAP,KAAM;QAEtB,IAAAO,UAAa,CAAAjB,IAAM,KAAO,YAAO,EAEjC,OAAMkB,OAAY,CAAAC,GAAA,CAAAC,QAAA,KAAgB,YAAc,IAACL,OAAU,CAAAC,IAAA,CAAM,gBAAUpB,OAAY,CAAAI,IAAI,mBAAAJ,OAAA,CAAAnC,IAAA;QAE3F,KAAK,IAAA4D,eAAW,GAAAhC,eAAA,CAAAiC,KAAA,cAAAZ,KAAA,EAAAA,KAAA,IAAAA,KAAA,CAAAV,IAAA,KAAAqB,eAAA;UACd,IAAAE,kBAAQ;UACNb,KAAA,GAAAA,KAAA,CAAAA,KAAA,CAAAI,MAAA,EAAAS,kBAA6C,GAAAb,KAAA,CAAUA,KAAA,CAAAc,KAAQ,cAAAD,kBAAA,cAAAA,kBAAA,GAAAb,KAAA,CAAAA,KAAA,CAAAI,MAAA,CAAAW,MAAA;QACjE;QACA,IAAAC,mBAAA;QACFT,UAAA,KAAAlB,YAAA,GAAAW,KAAA,CAAAA,KAAA,cAAAX,YAAA,uBAAAA,YAAA,CAAAe,MAAA,EAAAY,mBAAA,GAAAhB,KAAA,CAAAA,KAAA,CAAAc,KAAA,cAAAE,mBAAA,cAAAA,mBAAA,GAAAhB,KAAA,CAAAA,KAAA,CAAAI,MAAA,CAAAW,MAAA,UAAAf,KAAA;QAEA,IAAMiB,SAAA,GAAAtC,eACI,CAAAuC,QAAS,CAAAC,IAAA,WACjBC,KAAA,EAAQ;UAQN,OAAAA,KAAA,CAAAR,KAAkB,KAAAL,UAAA,EAAAjB,IAAA;QACpB;QAEA,KAAA2B,SAAU,EACR,OAAAZ,OAAA,CAAAC,IAAA,yCAAAb,IAAA,CAAAC,SAAA,CAAAR,OAAA;QAA2L,IAAAmC,gBAAoB,GAAAnC,OAAA,CAAAS,IAAA,mBAAAX,OAAA,CAAAmC,IAAA,WAAAhB,MAAA;UAAA,OAAAA,MAAA,CAAAR,IAAA,KAAiC,UAAU,GAAK,KAAAQ,MAAA,CAAAc,SAAA,CAAAL,KAAA,KAAAK,SAAA,CAAAL,KAAA;QACjQ;QACF,IAAAS,gBAAA;UAEA,IAAQC,oBAAK,MAAA7B,IAAA,CAAAC,SAAA;YACRJ,IAAA,EAAA+B,gBAAA,CAAA/B,IAAA;YACHvC,IAAM,EAAAsE,gBAAA,CAAAtE;UACN,UAAA0C,IAAA,CAAAC,SAAA;YACAJ,IAAQ,EAAAJ,OAAA,CAAAI,IAAc;YACvBvC,IAAA,EAAAmC,OAAA,CAAAnC;UACH;UAEM,UAASyC,KAAA;AAsBf,GAAA8B,oBAAmB;AAGjB,6BAFkBL,SAAU,CAAGL,KAAA,GAAQ;QAGrC;QACA5B,OAAA,CAAAV,IAAS;UACP,GAAAY,OAAA;UAAAnC,IAAC,EAAA6C,YAAA;UAAAqB,SAAA;UAAAM,MACC,EAAAC,aAAO,CAAAxB,KAAA,EAAArB,eAAyB,CAAAiC,KAAA;QAAA;MACpB,GAAA/C,SAEZ,GAAAa,QAAU,CAAAZ,MAAS,CAAAC,QAAA,KAAAC,KAAA,IAAAN,yBAAA,IAAAM,KAAA,GAAAH,SAAA,CAAAI,IAAA,IAAAC,IAAA,GAAAR,yBAAA,OAAAuB,KAAA;EACjB,SAAAV,GAAA;IAGeZ,iBADb,KAAO,EAAAC,cAAA,GAAkBW,GAAA;EAAmC;IAK9D;MAKO,CAAAb,yBACT,IAAAG,SAAA,CAAAW,MAAA,YAAAX,SAAA,CAAAW,MAAA;IAAA,UACA;MACE,IAAAb,iBAAQ,EACR,MAAAC,cAAO;IAAgC;EACzC;EAAA,IAAA6D,MAnBK,GAAA9E,qBAAM,CAAAkC,gBAAA;IAAA6C,aAAA,GAAA1C,OAAA,CAAA2C,IAAA,WAAAC,CAAA,EAAAC,CAAA;MAAA,OAoBbD,CAAA,CAAAjC,IAAA,mBAAAkC,CAAA,CAAAlC,IAAA,sBAAAiC,CAAA,CAAAjC,IAAA,sBAAAkC,CAAA,CAAAlC,IAAA,uBAAA8B,MAAA,CAAAG,CAAA,CAAAX,SAAA,EAAAY,CAAA,CAAAZ,SAAA;IAAA;IACFC,QAAA;IAAAY,UAAA;MACF,GAAAhD;IAEF;IAAA;MAAAiD;IAAO,IAAAC,OAAA;IAAA;MAAAC;IAAA,IAAAD,OAAA;IAAAE,0BAAA;IAAAC,kBAAA;IAAAC,eAAA;EAAA,IACL;IACA,SAAAC,MAAA,YAAAA,CAAA;QACF,KAAAvB,KAAA,EAAAX,MAAA,IAAAmC,MAAA,CAAAlE,KAAA;QACF,IAAA0D,UAAA,CAAA3B,MAAA,CAAAb,IAAA;UAEO,GAASa,MAAA;UAIRW;QACF,GAAAX,MAAA,CAAUR,IAAA;UAEd,IAAAiB,KAAe,GAAAT,MAAA,CAAAc,SAAiB;UAE5BC,QAAA,CAAA5C,IAAA,gBAAqB7B,IAAA,CAAAsF,MAAiB;YAEnCQ,KAAA,EAAAN,mBAAA,CAAArB,KAAA;YACDtB,IAAA,EAAAsB,KAAA,CAAAA,KAAA;YACE4B,OAAA,EAAY,SAAAA,CAAAC,IACd;cAYG,IAAAC,gBAAA;gBAAAC,aAAA,GAAA/B,KAAA,CAAAgC,SAAA,IAAAF,gBAAA,GAAA9B,KAAA,CAAAiC,SAAA,gBAAAH,gBAAA,uBAAAA,gBAAA,CAAAI,aAAA;gBAAAC,YAAA,UAAAJ,aAAA,iBAAAA,aAAA,CAAAF,IAAA,IAAAE,aAAA;gBAAAK,MAAA;kBACK,GAAAD;gBAGJ;cACF,OAAAnC,KACF,CAAAgC,SAAQ,KAAAI,MAAA,CAAAC,YAAA;gBAEZ;cAGK,GAAAD,MAAA,CAAAE,eAAA;gBACCC,MAAA;gBACGC,OAAA;cACX,IAAAJ,MAAA;YACF","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sources":["../../../src/ui/index.ts"],"sourcesContent":[null],"mappings":"AAAA,cAAc","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sources":["../../../src/ui/index.ts"],"sourcesContent":[null],"mappings":"AAAA,cAAc","ignoreList":[]}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { useRef, forwardRef, useEffect } from "react";
|
|
2
|
+
import { jsx } from "react/jsx-runtime";
|
|
3
|
+
const NavigationContent = ({ render, children }) => render(children);
|
|
4
|
+
function useComponent(render) {
|
|
5
|
+
const renderRef = useRef(render);
|
|
6
|
+
return renderRef.current = render, useEffect(() => {
|
|
7
|
+
renderRef.current = null;
|
|
8
|
+
}), useRef(
|
|
9
|
+
forwardRef(({ children }, _ref) => {
|
|
10
|
+
const render2 = renderRef.current;
|
|
11
|
+
if (render2 === null)
|
|
12
|
+
throw new Error(
|
|
13
|
+
"The returned component must be rendered in the same render phase as the hook."
|
|
14
|
+
);
|
|
15
|
+
return /* @__PURE__ */ jsx(NavigationContent, { render: render2, children });
|
|
16
|
+
})
|
|
17
|
+
).current;
|
|
18
|
+
}
|
|
19
|
+
export {
|
|
20
|
+
useComponent
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=useComponent.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/ui/useComponent.tsx"],
|
|
4
|
+
"mappings": "AAAA,SAAS,QAAQ,YAAY,iBAA2B;AAsC3C;AA1Bb,MAAM,oBAAoB,CAAC,EAAE,QAAQ,SAAS,MACrC,OAAO,QAAQ;AAGjB,SAAS,aAAa,QAAgB;AAC3C,QAAM,YAAY,OAAsB,MAAM;AAK9C,mBAAU,UAAU,QAEpB,UAAU,MAAM;AACd,cAAU,UAAU;AAAA,EACtB,CAAC,GAEM;AAAA,IACL,WAAW,CAAC,EAAE,SAAS,GAAkC,SAAS;AAChE,YAAMA,UAAS,UAAU;AAEzB,UAAIA,YAAW;AACb,cAAM,IAAI;AAAA,UACR;AAAA,QACF;AAGF,aAAO,oBAAC,qBAAkB,QAAQA,SAAS,UAAS;AAAA,IACtD,CAAC;AAAA,EACH,EAAE;AACJ;",
|
|
5
|
+
"names": ["render"]
|
|
6
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { useRef, forwardRef, useEffect } from "react";
|
|
2
|
+
import { jsx } from "react/jsx-runtime";
|
|
3
|
+
const NavigationContent = ({
|
|
4
|
+
render,
|
|
5
|
+
children
|
|
6
|
+
}) => render(children);
|
|
7
|
+
function useComponent(render) {
|
|
8
|
+
const renderRef = useRef(render);
|
|
9
|
+
return renderRef.current = render, useEffect(() => {
|
|
10
|
+
renderRef.current = null;
|
|
11
|
+
}), useRef(forwardRef(({
|
|
12
|
+
children
|
|
13
|
+
}, _ref) => {
|
|
14
|
+
const render2 = renderRef.current;
|
|
15
|
+
if (render2 === null) throw new Error("The returned component must be rendered in the same render phase as the hook.");
|
|
16
|
+
return /* @__PURE__ */jsx(NavigationContent, {
|
|
17
|
+
render: render2,
|
|
18
|
+
children
|
|
19
|
+
});
|
|
20
|
+
})).current;
|
|
21
|
+
}
|
|
22
|
+
export { useComponent };
|
|
23
|
+
//# sourceMappingURL=useComponent.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useRef","forwardRef","useEffect","jsx","NavigationContent","render","children","useComponent","renderRef","current","_ref","render2","Error"],"sources":["../../../src/ui/useComponent.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,MAAA,EAAQC,UAAA,EAAYC,SAAA,QAA2B;AAsC3C,SAAAC,GAAA;AA1Bb,MAAMC,iBAAA,GAAoBA,CAAC;EAAEC,MAAA;EAAQC;AAAS,MACrCD,MAAA,CAAOC,QAAQ;AAGjB,SAASC,aAAaF,MAAA,EAAgB;EAC3C,MAAMG,SAAA,GAAYR,MAAA,CAAsBK,MAAM;EAK9C,OAAAG,SAAA,CAAUC,OAAA,GAAUJ,MAAA,EAEpBH,SAAA,CAAU,MAAM;IACdM,SAAA,CAAUC,OAAA,GAAU;EACtB,CAAC,GAEMT,MAAA,CACLC,UAAA,CAAW,CAAC;IAAEK;EAAS,GAAkCI,IAAA,KAAS;IAChE,MAAMC,OAAA,GAASH,SAAA,CAAUC,OAAA;IAEzB,IAAIE,OAAA,KAAW,MACb,MAAM,IAAIC,KAAA,CACR,+EACF;IAGF,OAAO,eAAAT,GAAA,CAACC,iBAAA;MAAkBC,MAAA,EAAQM,OAAA;MAASL;IAAA,CAAS;EACtD,CAAC,CACH,EAAEG,OAAA;AACJ","ignoreList":[]}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useRef, forwardRef, useEffect } from "react";
|
|
3
|
+
var NavigationContent = function (param) {
|
|
4
|
+
var {
|
|
5
|
+
render,
|
|
6
|
+
children
|
|
7
|
+
} = param;
|
|
8
|
+
return render(children);
|
|
9
|
+
};
|
|
10
|
+
function useComponent(render) {
|
|
11
|
+
var renderRef = useRef(render);
|
|
12
|
+
return renderRef.current = render, useEffect(function () {
|
|
13
|
+
renderRef.current = null;
|
|
14
|
+
}), useRef(/* @__PURE__ */forwardRef(function (param, _ref) {
|
|
15
|
+
var {
|
|
16
|
+
children
|
|
17
|
+
} = param,
|
|
18
|
+
_$render = renderRef.current;
|
|
19
|
+
if (_$render === null) throw new Error("The returned component must be rendered in the same render phase as the hook.");
|
|
20
|
+
return /* @__PURE__ */_jsx(NavigationContent, {
|
|
21
|
+
render: _$render,
|
|
22
|
+
children
|
|
23
|
+
});
|
|
24
|
+
})).current;
|
|
25
|
+
}
|
|
26
|
+
export { useComponent };
|
|
27
|
+
//# sourceMappingURL=useComponent.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["jsx","_jsx","useRef","forwardRef","useEffect","NavigationContent","param","render","children","useComponent","renderRef","current","_ref","_$render","Error"],"sources":["../../../src/ui/useComponent.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,GAAA,IAAAC,IAAQ,2BAAuC;AAsC3C,SAAAC,MAAA,EAAAC,UAAA,EAAAC,SAAA;AA1Bb,IAAAC,iBAAM,YAAAA,CAAuBC,KAAQ;EAI9B;IAAAC,MAAS;IAAAC;EAAa,IAAAF,KAAgB;EAC3C,OAAMC,MAAA,CAAAC,QAAY;AAKlB;AAGE,SAAAC,YAAUA,CAAAF,MAAU;EACtB,IAEOG,SAAA,GAAAR,MAAA,CAAAK,MAAA;EAAA,OACLG,SAAc,CAAAC,OAAA,GAASJ,MAAkC,EAAAH,SAAS;IAChEM,SAAM,CAAAC,OAAA,GAAS;EAEf,IAAAT,MAAI,gBAAWC,UAAA,WAAAG,KAAA,EAAAM,IAAA;IACb;QAAAJ;MAAU,IAAAF,KAAA;MAAAO,QAAA,GAAAH,SAAA,CAAAC,OAAA;IAAA,IAAAE,QACR,iBACF,IAAAC,KAAA;IAGF,sBAAOb,IAAA,CAAAI,iBAAC;MACTE,MAAA,EAAAM,QAAA;MACDL;IACJ","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "one",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.7",
|
|
4
4
|
"license": "BSD-3-Clause",
|
|
5
5
|
"sideEffects": [
|
|
6
6
|
"setup.mjs",
|
|
@@ -18,6 +18,15 @@
|
|
|
18
18
|
"import": "./dist/esm/index.mjs",
|
|
19
19
|
"require": "./dist/cjs/index.cjs"
|
|
20
20
|
},
|
|
21
|
+
"./ui": {
|
|
22
|
+
"react-native": {
|
|
23
|
+
"import": "./dist/esm/ui/index.native.js",
|
|
24
|
+
"require": "./dist/cjs/ui/index.native.js"
|
|
25
|
+
},
|
|
26
|
+
"types": "./types/ui/index.d.ts",
|
|
27
|
+
"import": "./dist/esm/ui/index.mjs",
|
|
28
|
+
"require": "./dist/cjs/ui/index.cjs"
|
|
29
|
+
},
|
|
21
30
|
"./vite": {
|
|
22
31
|
"types": "./types/vite.d.ts",
|
|
23
32
|
"import": "./dist/esm/vite.mjs",
|
|
@@ -112,17 +121,17 @@
|
|
|
112
121
|
"@react-navigation/routers": "~7.5.1",
|
|
113
122
|
"@swc/core": "^1.14.0",
|
|
114
123
|
"@ungap/structured-clone": "^1.2.0",
|
|
115
|
-
"@vxrn/compiler": "1.2.
|
|
116
|
-
"@vxrn/resolve": "1.2.
|
|
117
|
-
"@vxrn/tslib-lite": "1.2.
|
|
118
|
-
"@vxrn/universal-color-scheme": "1.2.
|
|
119
|
-
"@vxrn/use-isomorphic-layout-effect": "1.2.
|
|
120
|
-
"@vxrn/vite-plugin-metro": "1.2.
|
|
124
|
+
"@vxrn/compiler": "1.2.7",
|
|
125
|
+
"@vxrn/resolve": "1.2.7",
|
|
126
|
+
"@vxrn/tslib-lite": "1.2.7",
|
|
127
|
+
"@vxrn/universal-color-scheme": "1.2.7",
|
|
128
|
+
"@vxrn/use-isomorphic-layout-effect": "1.2.7",
|
|
129
|
+
"@vxrn/vite-plugin-metro": "1.2.7",
|
|
121
130
|
"babel-dead-code-elimination": "^1.0.10",
|
|
122
131
|
"babel-plugin-module-resolver": "^5.0.2",
|
|
123
132
|
"citty": "^0.1.6",
|
|
124
133
|
"core-js": "^3.38.1",
|
|
125
|
-
"create-vxrn": "1.2.
|
|
134
|
+
"create-vxrn": "1.2.7",
|
|
126
135
|
"escape-string-regexp": "^5.0.0",
|
|
127
136
|
"expo-linking": "~8.0.8",
|
|
128
137
|
"expo-modules-core": "~3.0.24",
|
|
@@ -148,7 +157,7 @@
|
|
|
148
157
|
"vite": "^7.1.12",
|
|
149
158
|
"vite-plugin-barrel": "^0.4.1",
|
|
150
159
|
"vite-tsconfig-paths": "^5.1.4",
|
|
151
|
-
"vxrn": "1.2.
|
|
160
|
+
"vxrn": "1.2.7",
|
|
152
161
|
"ws": "^8.18.0",
|
|
153
162
|
"xxhashjs": "^0.2.2"
|
|
154
163
|
},
|