@react-navigation/core 7.0.0-alpha.8 → 7.0.0-rc.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/lib/commonjs/BaseNavigationContainer.js +18 -19
- package/lib/commonjs/BaseNavigationContainer.js.map +1 -1
- package/lib/commonjs/CurrentRenderContext.js +1 -1
- package/lib/commonjs/CurrentRenderContext.js.map +1 -1
- package/lib/commonjs/DeprecatedNavigationInChildContext.js +1 -1
- package/lib/commonjs/DeprecatedNavigationInChildContext.js.map +1 -1
- package/lib/commonjs/EnsureSingleNavigator.js +4 -5
- package/lib/commonjs/EnsureSingleNavigator.js.map +1 -1
- package/lib/commonjs/Group.js.map +1 -1
- package/lib/commonjs/NavigationBuilderContext.js +1 -1
- package/lib/commonjs/NavigationBuilderContext.js.map +1 -1
- package/lib/commonjs/NavigationContainerRefContext.js +1 -1
- package/lib/commonjs/NavigationContainerRefContext.js.map +1 -1
- package/lib/commonjs/NavigationContext.js +1 -1
- package/lib/commonjs/NavigationContext.js.map +1 -1
- package/lib/commonjs/NavigationHelpersContext.js +1 -1
- package/lib/commonjs/NavigationHelpersContext.js.map +1 -1
- package/lib/commonjs/NavigationIndependentTree.js +4 -5
- package/lib/commonjs/NavigationIndependentTree.js.map +1 -1
- package/lib/commonjs/NavigationIndependentTreeContext.js +1 -1
- package/lib/commonjs/NavigationIndependentTreeContext.js.map +1 -1
- package/lib/commonjs/NavigationRouteContext.js +1 -1
- package/lib/commonjs/NavigationRouteContext.js.map +1 -1
- package/lib/commonjs/NavigationStateContext.js +1 -1
- package/lib/commonjs/NavigationStateContext.js.map +1 -1
- package/lib/commonjs/PreventRemoveContext.js +1 -1
- package/lib/commonjs/PreventRemoveContext.js.map +1 -1
- package/lib/commonjs/PreventRemoveProvider.js +12 -17
- package/lib/commonjs/PreventRemoveProvider.js.map +1 -1
- package/lib/commonjs/SceneView.js +11 -12
- package/lib/commonjs/SceneView.js.map +1 -1
- package/lib/commonjs/Screen.js.map +1 -1
- package/lib/commonjs/StaticContainer.js +1 -1
- package/lib/commonjs/StaticContainer.js.map +1 -1
- package/lib/commonjs/StaticNavigation.js +85 -37
- package/lib/commonjs/StaticNavigation.js.map +1 -1
- package/lib/commonjs/UnhandledActionContext.js +1 -1
- package/lib/commonjs/UnhandledActionContext.js.map +1 -1
- package/lib/commonjs/checkDuplicateRouteNames.js.map +1 -1
- package/lib/commonjs/checkSerializable.js.map +1 -1
- package/lib/commonjs/createNavigationContainerRef.js +2 -6
- package/lib/commonjs/createNavigationContainerRef.js.map +1 -1
- package/lib/commonjs/createNavigatorFactory.js.map +1 -1
- package/lib/commonjs/deepFreeze.js +37 -0
- package/lib/commonjs/deepFreeze.js.map +1 -0
- package/lib/commonjs/findFocusedRoute.js.map +1 -1
- package/lib/commonjs/getActionFromState.js +1 -2
- package/lib/commonjs/getActionFromState.js.map +1 -1
- package/lib/commonjs/getFocusedRouteNameFromRoute.js.map +1 -1
- package/lib/commonjs/getPathFromState.js +8 -14
- package/lib/commonjs/getPathFromState.js.map +1 -1
- package/lib/commonjs/getStateFromPath.js +48 -20
- package/lib/commonjs/getStateFromPath.js.map +1 -1
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/isArrayEqual.js.map +1 -1
- package/lib/commonjs/isRecordEqual.js.map +1 -1
- package/lib/commonjs/theming/ThemeContext.js +1 -1
- package/lib/commonjs/theming/ThemeContext.js.map +1 -1
- package/lib/commonjs/theming/ThemeProvider.js +5 -6
- package/lib/commonjs/theming/ThemeProvider.js.map +1 -1
- package/lib/commonjs/theming/useTheme.js +1 -1
- package/lib/commonjs/theming/useTheme.js.map +1 -1
- package/lib/commonjs/types.js.map +1 -1
- package/lib/commonjs/useChildListeners.js +1 -1
- package/lib/commonjs/useChildListeners.js.map +1 -1
- package/lib/commonjs/useComponent.js +8 -10
- package/lib/commonjs/useComponent.js.map +1 -1
- package/lib/commonjs/useCurrentRender.js +6 -7
- package/lib/commonjs/useCurrentRender.js.map +1 -1
- package/lib/commonjs/useDescriptors.js +16 -17
- package/lib/commonjs/useDescriptors.js.map +1 -1
- package/lib/commonjs/useEventEmitter.js +7 -8
- package/lib/commonjs/useEventEmitter.js.map +1 -1
- package/lib/commonjs/useFocusEffect.js +3 -3
- package/lib/commonjs/useFocusEffect.js.map +1 -1
- package/lib/commonjs/useFocusEvents.js +5 -6
- package/lib/commonjs/useFocusEvents.js.map +1 -1
- package/lib/commonjs/useFocusedListenersChildrenAdapter.js +5 -6
- package/lib/commonjs/useFocusedListenersChildrenAdapter.js.map +1 -1
- package/lib/commonjs/useIsFocused.js +1 -1
- package/lib/commonjs/useIsFocused.js.map +1 -1
- package/lib/commonjs/useIsomorphicLayoutEffect.js.map +1 -1
- package/lib/commonjs/useIsomorphicLayoutEffect.native.js.map +1 -1
- package/lib/commonjs/useKeyedChildListeners.js +1 -1
- package/lib/commonjs/useKeyedChildListeners.js.map +1 -1
- package/lib/commonjs/useLazyValue.js +17 -0
- package/lib/commonjs/useLazyValue.js.map +1 -0
- package/lib/commonjs/useNavigation.js +1 -1
- package/lib/commonjs/useNavigation.js.map +1 -1
- package/lib/commonjs/useNavigationBuilder.js +16 -8
- package/lib/commonjs/useNavigationBuilder.js.map +1 -1
- package/lib/commonjs/useNavigationCache.js +12 -18
- package/lib/commonjs/useNavigationCache.js.map +1 -1
- package/lib/commonjs/useNavigationContainerRef.js +1 -1
- package/lib/commonjs/useNavigationContainerRef.js.map +1 -1
- package/lib/commonjs/useNavigationHelpers.js +9 -12
- package/lib/commonjs/useNavigationHelpers.js.map +1 -1
- package/lib/commonjs/useNavigationIndependentTree.js +1 -1
- package/lib/commonjs/useNavigationIndependentTree.js.map +1 -1
- package/lib/commonjs/useNavigationState.js +1 -1
- package/lib/commonjs/useNavigationState.js.map +1 -1
- package/lib/commonjs/useOnAction.js +12 -14
- package/lib/commonjs/useOnAction.js.map +1 -1
- package/lib/commonjs/useOnGetState.js +5 -6
- package/lib/commonjs/useOnGetState.js.map +1 -1
- package/lib/commonjs/useOnPreventRemove.js +6 -7
- package/lib/commonjs/useOnPreventRemove.js.map +1 -1
- package/lib/commonjs/useOnRouteFocus.js +7 -8
- package/lib/commonjs/useOnRouteFocus.js.map +1 -1
- package/lib/commonjs/useOptionsGetters.js +6 -7
- package/lib/commonjs/useOptionsGetters.js.map +1 -1
- package/lib/commonjs/usePreventRemove.js +2 -2
- package/lib/commonjs/usePreventRemove.js.map +1 -1
- package/lib/commonjs/usePreventRemoveContext.js +1 -1
- package/lib/commonjs/usePreventRemoveContext.js.map +1 -1
- package/lib/commonjs/useRegisterNavigator.js +1 -1
- package/lib/commonjs/useRegisterNavigator.js.map +1 -1
- package/lib/commonjs/useRoute.js +1 -1
- package/lib/commonjs/useRoute.js.map +1 -1
- package/lib/commonjs/useRouteCache.js +16 -2
- package/lib/commonjs/useRouteCache.js.map +1 -1
- package/lib/commonjs/useSyncState.js +13 -4
- package/lib/commonjs/useSyncState.js.map +1 -1
- package/lib/commonjs/validatePathConfig.js +3 -8
- package/lib/commonjs/validatePathConfig.js.map +1 -1
- package/lib/module/BaseNavigationContainer.js +16 -17
- package/lib/module/BaseNavigationContainer.js.map +1 -1
- package/lib/module/CurrentRenderContext.js.map +1 -1
- package/lib/module/DeprecatedNavigationInChildContext.js.map +1 -1
- package/lib/module/EnsureSingleNavigator.js +3 -4
- package/lib/module/EnsureSingleNavigator.js.map +1 -1
- package/lib/module/Group.js.map +1 -1
- package/lib/module/NavigationBuilderContext.js.map +1 -1
- package/lib/module/NavigationContainerRefContext.js.map +1 -1
- package/lib/module/NavigationContext.js.map +1 -1
- package/lib/module/NavigationHelpersContext.js.map +1 -1
- package/lib/module/NavigationIndependentTree.js +3 -4
- package/lib/module/NavigationIndependentTree.js.map +1 -1
- package/lib/module/NavigationIndependentTreeContext.js.map +1 -1
- package/lib/module/NavigationRouteContext.js.map +1 -1
- package/lib/module/NavigationStateContext.js.map +1 -1
- package/lib/module/PreventRemoveContext.js.map +1 -1
- package/lib/module/PreventRemoveProvider.js +10 -15
- package/lib/module/PreventRemoveProvider.js.map +1 -1
- package/lib/module/SceneView.js +10 -11
- package/lib/module/SceneView.js.map +1 -1
- package/lib/module/Screen.js.map +1 -1
- package/lib/module/StaticContainer.js.map +1 -1
- package/lib/module/StaticNavigation.js +84 -36
- package/lib/module/StaticNavigation.js.map +1 -1
- package/lib/module/UnhandledActionContext.js.map +1 -1
- package/lib/module/checkDuplicateRouteNames.js.map +1 -1
- package/lib/module/checkSerializable.js.map +1 -1
- package/lib/module/createNavigationContainerRef.js +2 -6
- package/lib/module/createNavigationContainerRef.js.map +1 -1
- package/lib/module/createNavigatorFactory.js +1 -0
- package/lib/module/createNavigatorFactory.js.map +1 -1
- package/lib/module/deepFreeze.js +29 -0
- package/lib/module/deepFreeze.js.map +1 -0
- package/lib/module/findFocusedRoute.js.map +1 -1
- package/lib/module/getActionFromState.js +1 -2
- package/lib/module/getActionFromState.js.map +1 -1
- package/lib/module/getFocusedRouteNameFromRoute.js.map +1 -1
- package/lib/module/getPathFromState.js +7 -13
- package/lib/module/getPathFromState.js.map +1 -1
- package/lib/module/getStateFromPath.js +46 -18
- package/lib/module/getStateFromPath.js.map +1 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/isArrayEqual.js.map +1 -1
- package/lib/module/isRecordEqual.js.map +1 -1
- package/lib/module/theming/ThemeContext.js.map +1 -1
- package/lib/module/theming/ThemeProvider.js +4 -5
- package/lib/module/theming/ThemeProvider.js.map +1 -1
- package/lib/module/theming/useTheme.js.map +1 -1
- package/lib/module/types.js.map +1 -1
- package/lib/module/useChildListeners.js.map +1 -1
- package/lib/module/useComponent.js +7 -9
- package/lib/module/useComponent.js.map +1 -1
- package/lib/module/useCurrentRender.js +5 -6
- package/lib/module/useCurrentRender.js.map +1 -1
- package/lib/module/useDescriptors.js +15 -16
- package/lib/module/useDescriptors.js.map +1 -1
- package/lib/module/useEventEmitter.js +6 -7
- package/lib/module/useEventEmitter.js.map +1 -1
- package/lib/module/useFocusEffect.js +2 -2
- package/lib/module/useFocusEffect.js.map +1 -1
- package/lib/module/useFocusEvents.js +4 -5
- package/lib/module/useFocusEvents.js.map +1 -1
- package/lib/module/useFocusedListenersChildrenAdapter.js +4 -5
- package/lib/module/useFocusedListenersChildrenAdapter.js.map +1 -1
- package/lib/module/useIsFocused.js.map +1 -1
- package/lib/module/useIsomorphicLayoutEffect.js.map +1 -1
- package/lib/module/useIsomorphicLayoutEffect.native.js.map +1 -1
- package/lib/module/useKeyedChildListeners.js.map +1 -1
- package/lib/module/useLazyValue.js +9 -0
- package/lib/module/useLazyValue.js.map +1 -0
- package/lib/module/useNavigation.js.map +1 -1
- package/lib/module/useNavigationBuilder.js +14 -6
- package/lib/module/useNavigationBuilder.js.map +1 -1
- package/lib/module/useNavigationCache.js +11 -17
- package/lib/module/useNavigationCache.js.map +1 -1
- package/lib/module/useNavigationContainerRef.js.map +1 -1
- package/lib/module/useNavigationHelpers.js +8 -11
- package/lib/module/useNavigationHelpers.js.map +1 -1
- package/lib/module/useNavigationIndependentTree.js.map +1 -1
- package/lib/module/useNavigationState.js.map +1 -1
- package/lib/module/useOnAction.js +11 -13
- package/lib/module/useOnAction.js.map +1 -1
- package/lib/module/useOnGetState.js +4 -5
- package/lib/module/useOnGetState.js.map +1 -1
- package/lib/module/useOnPreventRemove.js +5 -6
- package/lib/module/useOnPreventRemove.js.map +1 -1
- package/lib/module/useOnRouteFocus.js +6 -7
- package/lib/module/useOnRouteFocus.js.map +1 -1
- package/lib/module/useOptionsGetters.js +5 -6
- package/lib/module/useOptionsGetters.js.map +1 -1
- package/lib/module/usePreventRemove.js.map +1 -1
- package/lib/module/usePreventRemoveContext.js.map +1 -1
- package/lib/module/useRegisterNavigator.js.map +1 -1
- package/lib/module/useRoute.js.map +1 -1
- package/lib/module/useRouteCache.js +15 -1
- package/lib/module/useRouteCache.js.map +1 -1
- package/lib/module/useSyncState.js +12 -3
- package/lib/module/useSyncState.js.map +1 -1
- package/lib/module/validatePathConfig.js +3 -8
- package/lib/module/validatePathConfig.js.map +1 -1
- package/lib/typescript/src/BaseNavigationContainer.d.ts.map +1 -1
- package/lib/typescript/src/CurrentRenderContext.d.ts +1 -1
- package/lib/typescript/src/CurrentRenderContext.d.ts.map +1 -1
- package/lib/typescript/src/Group.d.ts +1 -1
- package/lib/typescript/src/Group.d.ts.map +1 -1
- package/lib/typescript/src/NavigationBuilderContext.d.ts +5 -5
- package/lib/typescript/src/NavigationBuilderContext.d.ts.map +1 -1
- package/lib/typescript/src/NavigationStateContext.d.ts +3 -19
- package/lib/typescript/src/NavigationStateContext.d.ts.map +1 -1
- package/lib/typescript/src/PreventRemoveContext.d.ts.map +1 -1
- package/lib/typescript/src/Screen.d.ts +1 -1
- package/lib/typescript/src/Screen.d.ts.map +1 -1
- package/lib/typescript/src/StaticNavigation.d.ts +43 -19
- package/lib/typescript/src/StaticNavigation.d.ts.map +1 -1
- package/lib/typescript/src/checkSerializable.d.ts.map +1 -1
- package/lib/typescript/src/createNavigatorFactory.d.ts +1 -9
- package/lib/typescript/src/createNavigatorFactory.d.ts.map +1 -1
- package/lib/typescript/src/deepFreeze.d.ts +3 -0
- package/lib/typescript/src/deepFreeze.d.ts.map +1 -0
- package/lib/typescript/src/findFocusedRoute.d.ts +1 -11
- package/lib/typescript/src/findFocusedRoute.d.ts.map +1 -1
- package/lib/typescript/src/getPathFromState.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +1 -1
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/types.d.ts +69 -24
- package/lib/typescript/src/types.d.ts.map +1 -1
- package/lib/typescript/src/useChildListeners.d.ts.map +1 -1
- package/lib/typescript/src/useComponent.d.ts.map +1 -1
- package/lib/typescript/src/useDescriptors.d.ts +35 -45
- package/lib/typescript/src/useDescriptors.d.ts.map +1 -1
- package/lib/typescript/src/useKeyedChildListeners.d.ts.map +1 -1
- package/lib/typescript/src/useLazyValue.d.ts +2 -0
- package/lib/typescript/src/useLazyValue.d.ts.map +1 -0
- package/lib/typescript/src/useNavigation.d.ts +4 -1
- package/lib/typescript/src/useNavigation.d.ts.map +1 -1
- package/lib/typescript/src/useNavigationBuilder.d.ts +57 -93
- package/lib/typescript/src/useNavigationBuilder.d.ts.map +1 -1
- package/lib/typescript/src/useNavigationCache.d.ts +17 -22
- package/lib/typescript/src/useNavigationCache.d.ts.map +1 -1
- package/lib/typescript/src/useNavigationHelpers.d.ts +21 -26
- package/lib/typescript/src/useNavigationHelpers.d.ts.map +1 -1
- package/lib/typescript/src/useOnAction.d.ts.map +1 -1
- package/lib/typescript/src/useOnPreventRemove.d.ts.map +1 -1
- package/lib/typescript/src/useRouteCache.d.ts +1 -1
- package/lib/typescript/src/useRouteCache.d.ts.map +1 -1
- package/lib/typescript/src/useSyncState.d.ts.map +1 -1
- package/package.json +5 -5
- package/src/BaseNavigationContainer.tsx +3 -0
- package/src/Group.tsx +2 -1
- package/src/Screen.tsx +11 -1
- package/src/StaticNavigation.tsx +299 -72
- package/src/createNavigatorFactory.tsx +1 -36
- package/src/deepFreeze.tsx +34 -0
- package/src/getPathFromState.tsx +6 -1
- package/src/getStateFromPath.tsx +60 -16
- package/src/index.tsx +1 -0
- package/src/types.tsx +138 -23
- package/src/useDescriptors.tsx +8 -1
- package/src/useFocusEffect.tsx +2 -2
- package/src/useLazyValue.tsx +11 -0
- package/src/useNavigation.tsx +4 -1
- package/src/useNavigationBuilder.tsx +33 -11
- package/src/useRouteCache.tsx +17 -1
- package/src/useSyncState.tsx +16 -3
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (
|
|
1
|
+
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
import { isValidElementType } from 'react-is';
|
|
4
4
|
import { useRoute } from './useRoute';
|
|
@@ -27,10 +27,9 @@ import { useRoute } from './useRoute';
|
|
|
27
27
|
* Infer the param list from the static navigation config.
|
|
28
28
|
*/
|
|
29
29
|
|
|
30
|
-
const MemoizedScreen = /*#__PURE__*/React.memo(
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
} = _ref;
|
|
30
|
+
const MemoizedScreen = /*#__PURE__*/React.memo(({
|
|
31
|
+
component
|
|
32
|
+
}) => {
|
|
34
33
|
const route = useRoute();
|
|
35
34
|
const children = /*#__PURE__*/React.createElement(component, {
|
|
36
35
|
route
|
|
@@ -38,8 +37,7 @@ const MemoizedScreen = /*#__PURE__*/React.memo(_ref => {
|
|
|
38
37
|
return children;
|
|
39
38
|
});
|
|
40
39
|
const getItemsFromScreens = (Screen, screens) => {
|
|
41
|
-
return Object.entries(screens).map(
|
|
42
|
-
let [name, item] = _ref2;
|
|
40
|
+
return Object.entries(screens).map(([name, item]) => {
|
|
43
41
|
let component;
|
|
44
42
|
let props = {};
|
|
45
43
|
let useIf;
|
|
@@ -67,7 +65,7 @@ const getItemsFromScreens = (Screen, screens) => {
|
|
|
67
65
|
if (component == null) {
|
|
68
66
|
throw new Error(`Couldn't find a 'screen' property for the screen '${name}'. This can happen if you passed 'undefined'. You likely forgot to export your component from the file it's defined in, or mixed up default import and named import when importing.`);
|
|
69
67
|
}
|
|
70
|
-
const element = isNavigator ? /*#__PURE__*/React.createElement(component, {}) : /*#__PURE__*/React.createElement(MemoizedScreen, {
|
|
68
|
+
const element = isNavigator ? ( /*#__PURE__*/React.createElement(component, {})) : /*#__PURE__*/React.createElement(MemoizedScreen, {
|
|
71
69
|
component: component
|
|
72
70
|
});
|
|
73
71
|
return () => {
|
|
@@ -102,16 +100,15 @@ export function createComponentForStaticNavigation(tree, displayName) {
|
|
|
102
100
|
groups,
|
|
103
101
|
...rest
|
|
104
102
|
} = config;
|
|
105
|
-
if (screens == null) {
|
|
106
|
-
throw new Error("Couldn't find a 'screens' property. Make sure to define your screens under a 'screens' property in the configuration.");
|
|
103
|
+
if (screens == null && groups == null) {
|
|
104
|
+
throw new Error("Couldn't find a 'screens' or 'groups' property. Make sure to define your screens under a 'screens' property in the configuration.");
|
|
107
105
|
}
|
|
108
|
-
const items = getItemsFromScreens(Screen, screens);
|
|
106
|
+
const items = screens ? getItemsFromScreens(Screen, screens) : [];
|
|
109
107
|
if (groups) {
|
|
110
|
-
items.push(...Object.entries(groups).map(
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
}] = _ref3;
|
|
108
|
+
items.push(...Object.entries(groups).map(([key, {
|
|
109
|
+
if: useIf,
|
|
110
|
+
...group
|
|
111
|
+
}]) => {
|
|
115
112
|
const groupItems = getItemsFromScreens(Screen, group.screens);
|
|
116
113
|
return () => {
|
|
117
114
|
// Call unconditionally since screen configs may contain `useIf` hooks
|
|
@@ -135,11 +132,12 @@ export function createComponentForStaticNavigation(tree, displayName) {
|
|
|
135
132
|
NavigatorComponent.displayName = displayName;
|
|
136
133
|
return NavigatorComponent;
|
|
137
134
|
}
|
|
138
|
-
|
|
139
135
|
/**
|
|
140
136
|
* Create a path config object from a static navigation config for deep linking.
|
|
141
137
|
*
|
|
142
138
|
* @param tree Static navigation config.
|
|
139
|
+
* @param options Additional options from `linking.config`.
|
|
140
|
+
* @param auto Whether to automatically generate paths for leaf screens.
|
|
143
141
|
* @returns Path config object to use in linking config.
|
|
144
142
|
*
|
|
145
143
|
* @example
|
|
@@ -153,26 +151,76 @@ export function createComponentForStaticNavigation(tree, displayName) {
|
|
|
153
151
|
* };
|
|
154
152
|
* ```
|
|
155
153
|
*/
|
|
156
|
-
export function createPathConfigForStaticNavigation(tree) {
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
const
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
154
|
+
export function createPathConfigForStaticNavigation(tree, options, auto) {
|
|
155
|
+
let initialScreenConfig;
|
|
156
|
+
const createPathConfigForTree = (t, o, skipInitialDetection) => {
|
|
157
|
+
const createPathConfigForScreens = (screens, initialRouteName) => {
|
|
158
|
+
return Object.fromEntries(Object.entries(screens)
|
|
159
|
+
// Re-order to move the initial route to the front
|
|
160
|
+
// This way we can detect the initial route correctly
|
|
161
|
+
.sort(([a], [b]) => {
|
|
162
|
+
if (a === initialRouteName) {
|
|
163
|
+
return -1;
|
|
164
|
+
}
|
|
165
|
+
if (b === initialRouteName) {
|
|
166
|
+
return 1;
|
|
167
|
+
}
|
|
168
|
+
return 0;
|
|
169
|
+
}).map(([key, item]) => {
|
|
170
|
+
const screenConfig = {};
|
|
171
|
+
if ('linking' in item) {
|
|
172
|
+
if (typeof item.linking === 'string') {
|
|
173
|
+
screenConfig.path = item.linking;
|
|
174
|
+
} else {
|
|
175
|
+
Object.assign(screenConfig, item.linking);
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
let screens;
|
|
179
|
+
if ('config' in item) {
|
|
180
|
+
screens = createPathConfigForTree(item, undefined, skipInitialDetection || screenConfig.path != null);
|
|
181
|
+
} else if ('screen' in item && 'config' in item.screen && (item.screen.config.screens || item.screen.config.groups)) {
|
|
182
|
+
screens = createPathConfigForTree(item.screen, undefined, skipInitialDetection || screenConfig.path != null);
|
|
183
|
+
}
|
|
184
|
+
if (screens) {
|
|
185
|
+
screenConfig.screens = screens;
|
|
186
|
+
}
|
|
187
|
+
if (auto && !screenConfig.screens && !('linking' in item)) {
|
|
188
|
+
if (screenConfig.path) {
|
|
189
|
+
if (!skipInitialDetection) {
|
|
190
|
+
// Normalize the path to remove leading and trailing slashes
|
|
191
|
+
const path = screenConfig.path?.split('/').filter(Boolean).join('/');
|
|
192
|
+
|
|
193
|
+
// We encounter a leaf screen with empty path,
|
|
194
|
+
// Clear the initial screen config as it's not needed anymore
|
|
195
|
+
if (!skipInitialDetection && path === '') {
|
|
196
|
+
initialScreenConfig = undefined;
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
} else {
|
|
200
|
+
if (!skipInitialDetection && initialScreenConfig == null) {
|
|
201
|
+
initialScreenConfig = screenConfig;
|
|
202
|
+
}
|
|
203
|
+
screenConfig.path = key.replace(/([A-Z]+)/g, '-$1').replace(/^-/, '').toLowerCase();
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
return [key, screenConfig];
|
|
207
|
+
}).filter(([, screen]) => Object.keys(screen).length > 0));
|
|
208
|
+
};
|
|
209
|
+
const screens = t.config.screens ? createPathConfigForScreens(t.config.screens, o?.initialRouteName ?? t.config.initialRouteName) : {};
|
|
210
|
+
if (t.config.groups) {
|
|
211
|
+
Object.entries(t.config.groups).forEach(([, group]) => {
|
|
212
|
+
Object.assign(screens, createPathConfigForScreens(group.screens, o?.initialRouteName ?? t.config.initialRouteName));
|
|
213
|
+
});
|
|
166
214
|
}
|
|
167
|
-
if (
|
|
168
|
-
|
|
169
|
-
} else if ('screen' in item && 'config' in item.screen && item.screen.config.screens) {
|
|
170
|
-
screenConfig.screens = createPathConfigForStaticNavigation(item.screen);
|
|
215
|
+
if (Object.keys(screens).length === 0) {
|
|
216
|
+
return undefined;
|
|
171
217
|
}
|
|
172
|
-
return
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
218
|
+
return screens;
|
|
219
|
+
};
|
|
220
|
+
const screens = createPathConfigForTree(tree, options, false);
|
|
221
|
+
if (auto && initialScreenConfig) {
|
|
222
|
+
initialScreenConfig.path = '';
|
|
223
|
+
}
|
|
224
|
+
return screens;
|
|
177
225
|
}
|
|
178
226
|
//# sourceMappingURL=StaticNavigation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","isValidElementType","useRoute","MemoizedScreen","memo","
|
|
1
|
+
{"version":3,"names":["React","isValidElementType","useRoute","MemoizedScreen","memo","component","route","children","createElement","getItemsFromScreens","Screen","screens","Object","entries","map","name","item","props","useIf","isNavigator","screen","if","_if","rest","createComponentForStaticNavigation","Error","element","shouldRender","_extends","key","tree","displayName","Navigator","Group","config","groups","items","push","group","groupItems","navigationKey","NavigatorComponent","createPathConfigForStaticNavigation","options","auto","initialScreenConfig","createPathConfigForTree","t","o","skipInitialDetection","createPathConfigForScreens","initialRouteName","fromEntries","sort","a","b","screenConfig","linking","path","assign","undefined","split","filter","Boolean","join","replace","toLowerCase","keys","length","forEach"],"sourceRoot":"../../src","sources":["StaticNavigation.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","UnhandledActionContext","createContext","undefined"],"sourceRoot":"../../src","sources":["UnhandledActionContext.tsx"],"mappings":"AACA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAE9B,OAAO,MAAMC,sBAAsB,gBAAGD,KAAK,CAACE,aAAa,CAEvDC,SAAS,CAAC"}
|
|
1
|
+
{"version":3,"names":["React","UnhandledActionContext","createContext","undefined"],"sourceRoot":"../../src","sources":["UnhandledActionContext.tsx"],"mappings":"AACA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAE9B,OAAO,MAAMC,sBAAsB,gBAAGD,KAAK,CAACE,aAAa,CAEvDC,SAAS,CAAC","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["checkDuplicateRouteNames","state","duplicates","getRouteNames","location","routes","forEach","route","currentLocation","name","routeNames","routeName","push"],"sourceRoot":"../../src","sources":["checkDuplicateRouteNames.tsx"],"mappings":"AAEA,OAAO,SAASA,wBAAwBA,CAACC,KAAsB,EAAE;EAC/D,MAAMC,UAAsB,GAAG,EAAE;EAEjC,MAAMC,aAAa,GAAGA,CACpBC,QAAgB,EAChBH,KAAsD,KACnD;IACHA,KAAK,CAACI,MAAM,CAACC,OAAO,CAAEC,KAA+B,IAAK;MACxD,MAAMC,eAAe,GAAGJ,QAAQ,
|
|
1
|
+
{"version":3,"names":["checkDuplicateRouteNames","state","duplicates","getRouteNames","location","routes","forEach","route","currentLocation","name","routeNames","routeName","push"],"sourceRoot":"../../src","sources":["checkDuplicateRouteNames.tsx"],"mappings":"AAEA,OAAO,SAASA,wBAAwBA,CAACC,KAAsB,EAAE;EAC/D,MAAMC,UAAsB,GAAG,EAAE;EAEjC,MAAMC,aAAa,GAAGA,CACpBC,QAAgB,EAChBH,KAAsD,KACnD;IACHA,KAAK,CAACI,MAAM,CAACC,OAAO,CAAEC,KAA+B,IAAK;MACxD,MAAMC,eAAe,GAAGJ,QAAQ,GAC5B,GAAGA,QAAQ,MAAMG,KAAK,CAACE,IAAI,EAAE,GAC7BF,KAAK,CAACE,IAAI;MAEdF,KAAK,CAACN,KAAK,EAAES,UAAU,EAAEJ,OAAO,CAAEK,SAAS,IAAK;QAC9C,IAAIA,SAAS,KAAKJ,KAAK,CAACE,IAAI,EAAE;UAC5BP,UAAU,CAACU,IAAI,CAAC,CACdJ,eAAe,EACf,GAAGA,eAAe,MAAMD,KAAK,CAACE,IAAI,EAAE,CACrC,CAAC;QACJ;MACF,CAAC,CAAC;MAEF,IAAIF,KAAK,CAACN,KAAK,EAAE;QACfE,aAAa,CAACK,eAAe,EAAED,KAAK,CAACN,KAAK,CAAC;MAC7C;IACF,CAAC,CAAC;EACJ,CAAC;EAEDE,aAAa,CAAC,EAAE,EAAEF,KAAK,CAAC;EAExB,OAAOC,UAAU;AACnB","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["checkSerializableWithoutCircularReference","o","seen","location","undefined","serializable","Object","prototype","toString","call","Array","isArray","reason","String","has","add","i","length","childResult","Set","key","checkSerializable"],"sourceRoot":"../../src","sources":["checkSerializable.tsx"],"mappings":"AAAA,MAAMA,yCAAyC,GAAGA,CAChDC,CAAyB,EACzBC,IAAc,EACdC,QAA6B,KAOtB;EACP,IACEF,CAAC,KAAKG,SAAS,IACfH,CAAC,KAAK,IAAI,IACV,OAAOA,CAAC,KAAK,SAAS,IACtB,OAAOA,CAAC,KAAK,QAAQ,IACrB,OAAOA,CAAC,KAAK,QAAQ,EACrB;IACA,OAAO;MAAEI,YAAY,EAAE;IAAK,CAAC;EAC/B;EAEA,IACEC,MAAM,CAACC,SAAS,CAACC,QAAQ,CAACC,IAAI,CAACR,CAAC,CAAC,KAAK,iBAAiB,IACvD,CAACS,KAAK,CAACC,OAAO,CAACV,CAAC,CAAC,EACjB;IACA,OAAO;MACLI,YAAY,EAAE,KAAK;MACnBF,QAAQ;MACRS,MAAM,EAAE,OAAOX,CAAC,KAAK,UAAU,GAAG,UAAU,GAAGY,MAAM,CAACZ,CAAC;IACzD,CAAC;EACH;EAEA,IAAIC,IAAI,CAACY,GAAG,CAACb,CAAC,CAAC,EAAE;IACf,OAAO;MACLI,YAAY,EAAE,KAAK;MACnBO,MAAM,EAAE,oBAAoB;MAC5BT;IACF,CAAC;EACH;EAEAD,IAAI,CAACa,GAAG,CAACd,CAAC,CAAC;EAEX,IAAIS,KAAK,CAACC,OAAO,CAACV,CAAC,CAAC,EAAE;IACpB,KAAK,IAAIe,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGf,CAAC,CAACgB,MAAM,EAAED,CAAC,EAAE,EAAE;MACjC,MAAME,WAAW,GAAGlB,yCAAyC,CAC3DC,CAAC,CAACe,CAAC,CAAC,EACJ,IAAIG,GAAG,CAAMjB,IAAI,CAAC,EAClB,CAAC,GAAGC,QAAQ,EAAEa,CAAC,CACjB,CAAC;MAED,IAAI,CAACE,WAAW,CAACb,YAAY,EAAE;QAC7B,OAAOa,WAAW;MACpB;IACF;EACF,CAAC,MAAM;IACL,KAAK,MAAME,GAAG,IAAInB,CAAC,EAAE;MACnB,MAAMiB,WAAW,GAAGlB,yCAAyC,CAC3DC,CAAC,CAACmB,GAAG,CAAC,EACN,IAAID,GAAG,CAAMjB,IAAI,CAAC,EAClB,CAAC,GAAGC,QAAQ,EAAEiB,GAAG,CACnB,CAAC;MAED,IAAI,CAACF,WAAW,CAACb,YAAY,EAAE;QAC7B,OAAOa,WAAW;MACpB;IACF;EACF;EAEA,OAAO;IAAEb,YAAY,EAAE;EAAK,CAAC;AAC/B,CAAC;AAED,OAAO,SAASgB,iBAAiBA,CAACpB,CAAyB,EAAE;EAC3D,OAAOD,yCAAyC,CAACC,CAAC,EAAE,IAAIkB,GAAG,CAAM,CAAC,EAAE,EAAE,CAAC;AACzE"}
|
|
1
|
+
{"version":3,"names":["checkSerializableWithoutCircularReference","o","seen","location","undefined","serializable","Object","prototype","toString","call","Array","isArray","reason","String","has","add","i","length","childResult","Set","key","checkSerializable"],"sourceRoot":"../../src","sources":["checkSerializable.tsx"],"mappings":"AAAA,MAAMA,yCAAyC,GAAGA,CAChDC,CAAyB,EACzBC,IAAc,EACdC,QAA6B,KAOtB;EACP,IACEF,CAAC,KAAKG,SAAS,IACfH,CAAC,KAAK,IAAI,IACV,OAAOA,CAAC,KAAK,SAAS,IACtB,OAAOA,CAAC,KAAK,QAAQ,IACrB,OAAOA,CAAC,KAAK,QAAQ,EACrB;IACA,OAAO;MAAEI,YAAY,EAAE;IAAK,CAAC;EAC/B;EAEA,IACEC,MAAM,CAACC,SAAS,CAACC,QAAQ,CAACC,IAAI,CAACR,CAAC,CAAC,KAAK,iBAAiB,IACvD,CAACS,KAAK,CAACC,OAAO,CAACV,CAAC,CAAC,EACjB;IACA,OAAO;MACLI,YAAY,EAAE,KAAK;MACnBF,QAAQ;MACRS,MAAM,EAAE,OAAOX,CAAC,KAAK,UAAU,GAAG,UAAU,GAAGY,MAAM,CAACZ,CAAC;IACzD,CAAC;EACH;EAEA,IAAIC,IAAI,CAACY,GAAG,CAACb,CAAC,CAAC,EAAE;IACf,OAAO;MACLI,YAAY,EAAE,KAAK;MACnBO,MAAM,EAAE,oBAAoB;MAC5BT;IACF,CAAC;EACH;EAEAD,IAAI,CAACa,GAAG,CAACd,CAAC,CAAC;EAEX,IAAIS,KAAK,CAACC,OAAO,CAACV,CAAC,CAAC,EAAE;IACpB,KAAK,IAAIe,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGf,CAAC,CAACgB,MAAM,EAAED,CAAC,EAAE,EAAE;MACjC,MAAME,WAAW,GAAGlB,yCAAyC,CAC3DC,CAAC,CAACe,CAAC,CAAC,EACJ,IAAIG,GAAG,CAAMjB,IAAI,CAAC,EAClB,CAAC,GAAGC,QAAQ,EAAEa,CAAC,CACjB,CAAC;MAED,IAAI,CAACE,WAAW,CAACb,YAAY,EAAE;QAC7B,OAAOa,WAAW;MACpB;IACF;EACF,CAAC,MAAM;IACL,KAAK,MAAME,GAAG,IAAInB,CAAC,EAAE;MACnB,MAAMiB,WAAW,GAAGlB,yCAAyC,CAC3DC,CAAC,CAACmB,GAAG,CAAC,EACN,IAAID,GAAG,CAAMjB,IAAI,CAAC,EAClB,CAAC,GAAGC,QAAQ,EAAEiB,GAAG,CACnB,CAAC;MAED,IAAI,CAACF,WAAW,CAACb,YAAY,EAAE;QAC7B,OAAOa,WAAW;MACpB;IACF;EACF;EAEA,OAAO;IAAEb,YAAY,EAAE;EAAK,CAAC;AAC/B,CAAC;AAED,OAAO,SAASgB,iBAAiBA,CAACpB,CAAyB,EAAE;EAC3D,OAAOD,yCAAyC,CAACC,CAAC,EAAE,IAAIkB,GAAG,CAAM,CAAC,EAAE,EAAE,CAAC;AACzE","ignoreList":[]}
|
|
@@ -16,8 +16,7 @@ export function createNavigationContainerRef() {
|
|
|
16
16
|
set current(value) {
|
|
17
17
|
current = value;
|
|
18
18
|
if (value != null) {
|
|
19
|
-
Object.entries(listeners).forEach(
|
|
20
|
-
let [event, callbacks] = _ref;
|
|
19
|
+
Object.entries(listeners).forEach(([event, callbacks]) => {
|
|
21
20
|
callbacks.forEach(callback => {
|
|
22
21
|
value.addListener(event, callback);
|
|
23
22
|
});
|
|
@@ -31,10 +30,7 @@ export function createNavigationContainerRef() {
|
|
|
31
30
|
return current.isReady();
|
|
32
31
|
},
|
|
33
32
|
...methods.reduce((acc, name) => {
|
|
34
|
-
acc[name] =
|
|
35
|
-
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
36
|
-
args[_key] = arguments[_key];
|
|
37
|
-
}
|
|
33
|
+
acc[name] = (...args) => {
|
|
38
34
|
if (current == null) {
|
|
39
35
|
switch (name) {
|
|
40
36
|
case 'addListener':
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["CommonActions","NOT_INITIALIZED_ERROR","createNavigationContainerRef","methods","Object","keys","listeners","removeListener","event","callback","filter","cb","current","ref","value","entries","forEach","
|
|
1
|
+
{"version":3,"names":["CommonActions","NOT_INITIALIZED_ERROR","createNavigationContainerRef","methods","Object","keys","listeners","removeListener","event","callback","filter","cb","current","ref","value","entries","forEach","callbacks","addListener","isReady","reduce","acc","name","args","push","console","error"],"sourceRoot":"../../src","sources":["createNavigationContainerRef.tsx"],"mappings":"AAAA,SAASA,aAAa,QAAQ,2BAA2B;AAQzD,OAAO,MAAMC,qBAAqB,GAChC,+QAA+Q;AAEjR,OAAO,SAASC,4BAA4BA,CAAA,EAEM;EAChD,MAAMC,OAAO,GAAG,CACd,GAAGC,MAAM,CAACC,IAAI,CAACL,aAAa,CAAC,EAC7B,aAAa,EACb,gBAAgB,EAChB,WAAW,EACX,UAAU,EACV,WAAW,EACX,WAAW,EACX,cAAc,EACd,UAAU,EACV,WAAW,EACX,iBAAiB,EACjB,mBAAmB,CACX;EAEV,MAAMM,SAAuD,GAAG,CAAC,CAAC;EAElE,MAAMC,cAAc,GAAGA,CACrBC,KAAa,EACbC,QAAkC,KAC/B;IACH,IAAIH,SAAS,CAACE,KAAK,CAAC,EAAE;MACpBF,SAAS,CAACE,KAAK,CAAC,GAAGF,SAAS,CAACE,KAAK,CAAC,CAACE,MAAM,CAAEC,EAAE,IAAKA,EAAE,KAAKF,QAAQ,CAAC;IACrE;EACF,CAAC;EAED,IAAIG,OAAiD,GAAG,IAAI;EAE5D,MAAMC,GAAiD,GAAG;IACxD,IAAID,OAAOA,CAAA,EAAG;MACZ,OAAOA,OAAO;IAChB,CAAC;IACD,IAAIA,OAAOA,CAACE,KAA+C,EAAE;MAC3DF,OAAO,GAAGE,KAAK;MAEf,IAAIA,KAAK,IAAI,IAAI,EAAE;QACjBV,MAAM,CAACW,OAAO,CAACT,SAAS,CAAC,CAACU,OAAO,CAAC,CAAC,CAACR,KAAK,EAAES,SAAS,CAAC,KAAK;UACxDA,SAAS,CAACD,OAAO,CAAEP,QAAQ,IAAK;YAC9BK,KAAK,CAACI,WAAW,CACfV,KAAK,EACLC,QACF,CAAC;UACH,CAAC,CAAC;QACJ,CAAC,CAAC;MACJ;IACF,CAAC;IACDU,OAAO,EAAEA,CAAA,KAAM;MACb,IAAIP,OAAO,IAAI,IAAI,EAAE;QACnB,OAAO,KAAK;MACd;MAEA,OAAOA,OAAO,CAACO,OAAO,CAAC,CAAC;IAC1B,CAAC;IACD,GAAGhB,OAAO,CAACiB,MAAM,CAAM,CAACC,GAAG,EAAEC,IAAI,KAAK;MACpCD,GAAG,CAACC,IAAI,CAAC,GAAG,CAAC,GAAGC,IAAW,KAAK;QAC9B,IAAIX,OAAO,IAAI,IAAI,EAAE;UACnB,QAAQU,IAAI;YACV,KAAK,aAAa;cAAE;gBAClB,MAAM,CAACd,KAAK,EAAEC,QAAQ,CAAC,GAAGc,IAAI;gBAE9BjB,SAAS,CAACE,KAAK,CAAC,GAAGF,SAAS,CAACE,KAAK,CAAC,IAAI,EAAE;gBACzCF,SAAS,CAACE,KAAK,CAAC,CAACgB,IAAI,CAACf,QAAQ,CAAC;gBAE/B,OAAO,MAAMF,cAAc,CAACC,KAAK,EAAEC,QAAQ,CAAC;cAC9C;YACA,KAAK,gBAAgB;cAAE;gBACrB,MAAM,CAACD,KAAK,EAAEC,QAAQ,CAAC,GAAGc,IAAI;gBAE9BhB,cAAc,CAACC,KAAK,EAAEC,QAAQ,CAAC;gBAC/B;cACF;YACA;cACEgB,OAAO,CAACC,KAAK,CAACzB,qBAAqB,CAAC;UACxC;QACF,CAAC,MAAM;UACL;UACA,OAAOW,OAAO,CAACU,IAAI,CAAC,CAAC,GAAGC,IAAI,CAAC;QAC/B;MACF,CAAC;MACD,OAAOF,GAAG;IACZ,CAAC,EAAE,CAAC,CAAC;EACP,CAAC;EAED,OAAOR,GAAG;AACZ","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Group","Screen","createNavigatorFactory","Navigator","createNavigator","config"],"sourceRoot":"../../src","sources":["createNavigatorFactory.tsx"],"mappings":"
|
|
1
|
+
{"version":3,"names":["Group","Screen","createNavigatorFactory","Navigator","createNavigator","config"],"sourceRoot":"../../src","sources":["createNavigatorFactory.tsx"],"mappings":"AAEA,SAASA,KAAK,QAAQ,SAAS;AAC/B,SAASC,MAAM,QAAQ,UAAU;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,sBAAsBA,CAACC,SAAmC,EAAE;EAC1E,SAASC,eAAeA,CAACC,MAAY,EAAO;IAC1C,IAAIA,MAAM,IAAI,IAAI,EAAE;MAClB,OAAO;QACLF,SAAS;QACTF,MAAM;QACND,KAAK;QACLK;MACF,CAAC;IACH;IAEA,OAAO;MACLF,SAAS;MACTF,MAAM;MACND;IACF,CAAC;EACH;EAEA,OAAOI,eAAe;AACxB","ignoreList":[]}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export const isPlainObject = value => {
|
|
2
|
+
if (typeof value === 'object' && value !== null) {
|
|
3
|
+
return Object.getPrototypeOf(value) === Object.prototype;
|
|
4
|
+
}
|
|
5
|
+
return false;
|
|
6
|
+
};
|
|
7
|
+
export const deepFreeze = object => {
|
|
8
|
+
// We only freeze in development to catch issues early
|
|
9
|
+
// Don't freeze in production to avoid unnecessary performance overhead
|
|
10
|
+
if (process.env.NODE_ENV === 'production') {
|
|
11
|
+
return object;
|
|
12
|
+
}
|
|
13
|
+
if (Object.isFrozen(object)) {
|
|
14
|
+
return object;
|
|
15
|
+
}
|
|
16
|
+
if (!isPlainObject(object) && !Array.isArray(object)) {
|
|
17
|
+
return object;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
// Freeze properties before freezing self
|
|
21
|
+
for (const key in object) {
|
|
22
|
+
if (Object.getOwnPropertyDescriptor(object, key)?.configurable) {
|
|
23
|
+
const value = object[key];
|
|
24
|
+
deepFreeze(value);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
return Object.freeze(object);
|
|
28
|
+
};
|
|
29
|
+
//# sourceMappingURL=deepFreeze.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["isPlainObject","value","Object","getPrototypeOf","prototype","deepFreeze","object","process","env","NODE_ENV","isFrozen","Array","isArray","key","getOwnPropertyDescriptor","configurable","freeze"],"sourceRoot":"../../src","sources":["deepFreeze.tsx"],"mappings":"AAAA,OAAO,MAAMA,aAAa,GAAIC,KAAc,IAAsB;EAChE,IAAI,OAAOA,KAAK,KAAK,QAAQ,IAAIA,KAAK,KAAK,IAAI,EAAE;IAC/C,OAAOC,MAAM,CAACC,cAAc,CAACF,KAAK,CAAC,KAAKC,MAAM,CAACE,SAAS;EAC1D;EAEA,OAAO,KAAK;AACd,CAAC;AAED,OAAO,MAAMC,UAAU,GAAQC,MAAS,IAAkB;EACxD;EACA;EACA,IAAIC,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,YAAY,EAAE;IACzC,OAAOH,MAAM;EACf;EAEA,IAAIJ,MAAM,CAACQ,QAAQ,CAACJ,MAAM,CAAC,EAAE;IAC3B,OAAOA,MAAM;EACf;EAEA,IAAI,CAACN,aAAa,CAACM,MAAM,CAAC,IAAI,CAACK,KAAK,CAACC,OAAO,CAACN,MAAM,CAAC,EAAE;IACpD,OAAOA,MAAM;EACf;;EAEA;EACA,KAAK,MAAMO,GAAG,IAAIP,MAAM,EAAE;IACxB,IAAIJ,MAAM,CAACY,wBAAwB,CAACR,MAAM,EAAEO,GAAG,CAAC,EAAEE,YAAY,EAAE;MAC9D,MAAMd,KAAK,GAAGK,MAAM,CAACO,GAAG,CAAC;MAEzBR,UAAU,CAACJ,KAAK,CAAC;IACnB;EACF;EAEA,OAAOC,MAAM,CAACc,MAAM,CAACV,MAAM,CAAC;AAC9B,CAAC","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["findFocusedRoute","state","current","routes","index","route"],"sourceRoot":"../../src","sources":["findFocusedRoute.tsx"],"mappings":"AAEA,OAAO,SAASA,gBAAgBA,CAACC,KAAmB,EAAE;EACpD,IAAIC,OAAiC,GAAGD,KAAK;EAE7C,OAAOC,OAAO,EAAEC,MAAM,CAACD,OAAO,CAACE,KAAK,IAAI,CAAC,CAAC,CAACH,KAAK,IAAI,IAAI,EAAE;IACxDC,OAAO,GAAGA,OAAO,CAACC,MAAM,CAACD,OAAO,CAACE,KAAK,IAAI,CAAC,CAAC,CAACH,KAAK;EACpD;EAEA,MAAMI,KAAK,GAAGH,OAAO,EAAEC,MAAM,CAACD,OAAO,EAAEE,KAAK,IAAI,CAAC,CAAC;EAElD,OAAOC,KAAK;AACd"}
|
|
1
|
+
{"version":3,"names":["findFocusedRoute","state","current","routes","index","route"],"sourceRoot":"../../src","sources":["findFocusedRoute.tsx"],"mappings":"AAEA,OAAO,SAASA,gBAAgBA,CAACC,KAAmB,EAAE;EACpD,IAAIC,OAAiC,GAAGD,KAAK;EAE7C,OAAOC,OAAO,EAAEC,MAAM,CAACD,OAAO,CAACE,KAAK,IAAI,CAAC,CAAC,CAACH,KAAK,IAAI,IAAI,EAAE;IACxDC,OAAO,GAAGA,OAAO,CAACC,MAAM,CAACD,OAAO,CAACE,KAAK,IAAI,CAAC,CAAC,CAACH,KAAK;EACpD;EAEA,MAAMI,KAAK,GAAGH,OAAO,EAAEC,MAAM,CAACD,OAAO,EAAEE,KAAK,IAAI,CAAC,CAAC;EAElD,OAAOC,KAAK;AACd","ignoreList":[]}
|
|
@@ -73,8 +73,7 @@ const createNormalizedConfigItem = config => typeof config === 'object' && confi
|
|
|
73
73
|
initialRouteName: config.initialRouteName,
|
|
74
74
|
screens: config.screens != null ? createNormalizedConfigs(config.screens) : undefined
|
|
75
75
|
} : {};
|
|
76
|
-
const createNormalizedConfigs = options => Object.entries(options).reduce((acc,
|
|
77
|
-
let [k, v] = _ref;
|
|
76
|
+
const createNormalizedConfigs = options => Object.entries(options).reduce((acc, [k, v]) => {
|
|
78
77
|
acc[k] = createNormalizedConfigItem(v);
|
|
79
78
|
return acc;
|
|
80
79
|
}, {});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["getActionFromState","state","options","normalizedConfig","createNormalizedConfigItem","routes","index","slice","length","undefined","key","name","initialRouteName","type","payload","route","current","config","screens","params","path","Object","assign","initial","screen","createNormalizedConfigs","entries","reduce","acc","
|
|
1
|
+
{"version":3,"names":["getActionFromState","state","options","normalizedConfig","createNormalizedConfigItem","routes","index","slice","length","undefined","key","name","initialRouteName","type","payload","route","current","config","screens","params","path","Object","assign","initial","screen","createNormalizedConfigs","entries","reduce","acc","k","v"],"sourceRoot":"../../src","sources":["getActionFromState.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["CHILD_STATE","getFocusedRouteNameFromRoute","route","state","params","routeName","routes","index","type","length","name","screen","undefined"],"sourceRoot":"../../src","sources":["getFocusedRouteNameFromRoute.tsx"],"mappings":"AAEA,SAASA,WAAW,QAAQ,iBAAiB;AAE7C,OAAO,SAASC,4BAA4BA,CAC1CC,KAA6B,EACT;EACpB;EACA,MAAMC,KAAK,GAAGD,KAAK,CAACF,WAAW,CAAC,IAAIE,KAAK,CAACC,KAAK;EAC/C,MAAMC,MAAM,GAAGF,KAAK,CAACE,MAA0C;EAE/D,MAAMC,SAAS,GAAGF,KAAK;EACnB;EACAA,KAAK,CAACG,MAAM;EACV;EACA;EACAH,KAAK,CAACI,KAAK,KACR,OAAOJ,KAAK,CAACK,IAAI,KAAK,QAAQ,IAAIL,KAAK,CAACK,IAAI,KAAK,OAAO,GACrD,CAAC,GACDL,KAAK,CAACG,MAAM,CAACG,MAAM,GAAG,CAAC,CAAC,CAC/B,CAACC,IAAI;EACN;EACA,OAAON,MAAM,EAAEO,MAAM,KAAK,QAAQ,GAChCP,MAAM,CAACO,MAAM,GACbC,SAAS;EAEf,OAAOP,SAAS;AAClB"}
|
|
1
|
+
{"version":3,"names":["CHILD_STATE","getFocusedRouteNameFromRoute","route","state","params","routeName","routes","index","type","length","name","screen","undefined"],"sourceRoot":"../../src","sources":["getFocusedRouteNameFromRoute.tsx"],"mappings":"AAEA,SAASA,WAAW,QAAQ,iBAAiB;AAE7C,OAAO,SAASC,4BAA4BA,CAC1CC,KAA6B,EACT;EACpB;EACA,MAAMC,KAAK,GAAGD,KAAK,CAACF,WAAW,CAAC,IAAIE,KAAK,CAACC,KAAK;EAC/C,MAAMC,MAAM,GAAGF,KAAK,CAACE,MAA0C;EAE/D,MAAMC,SAAS,GAAGF,KAAK;EACnB;EACAA,KAAK,CAACG,MAAM;EACV;EACA;EACAH,KAAK,CAACI,KAAK,KACR,OAAOJ,KAAK,CAACK,IAAI,KAAK,QAAQ,IAAIL,KAAK,CAACK,IAAI,KAAK,OAAO,GACrD,CAAC,GACDL,KAAK,CAACG,MAAM,CAACG,MAAM,GAAG,CAAC,CAAC,CAC/B,CAACC,IAAI;EACN;EACA,OAAON,MAAM,EAAEO,MAAM,KAAK,QAAQ,GAChCP,MAAM,CAACO,MAAM,GACbC,SAAS;EAEf,OAAOP,SAAS;AAClB","ignoreList":[]}
|
|
@@ -66,10 +66,7 @@ export function getPathFromState(state, options) {
|
|
|
66
66
|
nestedRouteNames.push(route.name);
|
|
67
67
|
if (route.params) {
|
|
68
68
|
const stringify = currentOptions[route.name]?.stringify;
|
|
69
|
-
const currentParams = Object.fromEntries(Object.entries(route.params).map(
|
|
70
|
-
let [key, value] = _ref;
|
|
71
|
-
return [key, stringify?.[key] ? stringify[key](value) : String(value)];
|
|
72
|
-
}));
|
|
69
|
+
const currentParams = Object.fromEntries(Object.entries(route.params).map(([key, value]) => [key, stringify?.[key] ? stringify[key](value) : String(value)]));
|
|
73
70
|
if (pattern) {
|
|
74
71
|
Object.assign(allParams, currentParams);
|
|
75
72
|
}
|
|
@@ -132,7 +129,10 @@ export function getPathFromState(state, options) {
|
|
|
132
129
|
// Optional params without value assigned in route.params should be ignored
|
|
133
130
|
return '';
|
|
134
131
|
}
|
|
135
|
-
|
|
132
|
+
|
|
133
|
+
// Valid characters according to
|
|
134
|
+
// https://datatracker.ietf.org/doc/html/rfc3986#section-3.3 (see pchar definition)
|
|
135
|
+
return String(value).replace(/[^A-Za-z0-9\-._~!$&'()*+,;=:@]/g, char => encodeURIComponent(char));
|
|
136
136
|
}
|
|
137
137
|
return encodeURIComponent(p);
|
|
138
138
|
}).join('/');
|
|
@@ -172,12 +172,7 @@ export function getPathFromState(state, options) {
|
|
|
172
172
|
return path;
|
|
173
173
|
}
|
|
174
174
|
const getParamName = pattern => pattern.replace(/^:/, '').replace(/\?$/, '');
|
|
175
|
-
const joinPaths =
|
|
176
|
-
for (var _len = arguments.length, paths = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
177
|
-
paths[_key] = arguments[_key];
|
|
178
|
-
}
|
|
179
|
-
return [].concat(...paths.map(p => p.split('/'))).filter(Boolean).join('/');
|
|
180
|
-
};
|
|
175
|
+
const joinPaths = (...paths) => [].concat(...paths.map(p => p.split('/'))).filter(Boolean).join('/');
|
|
181
176
|
const createConfigItem = (config, parentPattern) => {
|
|
182
177
|
if (typeof config === 'string') {
|
|
183
178
|
// If a string is specified as the value of the key(e.g. Foo: '/path'), use it as the pattern
|
|
@@ -201,8 +196,7 @@ const createConfigItem = (config, parentPattern) => {
|
|
|
201
196
|
screens
|
|
202
197
|
};
|
|
203
198
|
};
|
|
204
|
-
const createNormalizedConfigs = (options, pattern) => Object.fromEntries(Object.entries(options).map(
|
|
205
|
-
let [name, c] = _ref2;
|
|
199
|
+
const createNormalizedConfigs = (options, pattern) => Object.fromEntries(Object.entries(options).map(([name, c]) => {
|
|
206
200
|
const result = createConfigItem(c, pattern);
|
|
207
201
|
return [name, result];
|
|
208
202
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["queryString","validatePathConfig","getActiveRoute","state","route","index","routes","length","getPathFromState","options","Error","configs","screens","createNormalizedConfigs","path","current","allParams","pattern","focusedParams","focusedRoute","currentOptions","nestedRouteNames","hasNext","name","push","params","stringify","currentParams","Object","fromEntries","entries","map","
|
|
1
|
+
{"version":3,"names":["queryString","validatePathConfig","getActiveRoute","state","route","index","routes","length","getPathFromState","options","Error","configs","screens","createNormalizedConfigs","path","current","allParams","pattern","focusedParams","focusedRoute","currentOptions","nestedRouteNames","hasNext","name","push","params","stringify","currentParams","Object","fromEntries","entries","map","key","value","String","assign","split","filter","p","startsWith","forEach","getParamName","undefined","nextRoute","nestedConfig","join","endsWith","replace","char","encodeURIComponent","param","query","sort","joinPaths","paths","concat","Boolean","createConfigItem","config","parentPattern","exact","c","result"],"sourceRoot":"../../src","sources":["getPathFromState.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -172,12 +172,7 @@ export function getStateFromPath(path, options) {
|
|
|
172
172
|
}
|
|
173
173
|
return result;
|
|
174
174
|
}
|
|
175
|
-
const joinPaths =
|
|
176
|
-
for (var _len = arguments.length, paths = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
177
|
-
paths[_key] = arguments[_key];
|
|
178
|
-
}
|
|
179
|
-
return [].concat(...paths.map(p => p.split('/'))).filter(Boolean).join('/');
|
|
180
|
-
};
|
|
175
|
+
const joinPaths = (...paths) => [].concat(...paths.map(p => p.split('/'))).filter(Boolean).join('/');
|
|
181
176
|
const matchAgainstConfigs = (remaining, configs) => {
|
|
182
177
|
let routes;
|
|
183
178
|
let remainingPath = remaining;
|
|
@@ -191,17 +186,54 @@ const matchAgainstConfigs = (remaining, configs) => {
|
|
|
191
186
|
|
|
192
187
|
// If our regex matches, we need to extract params from the path
|
|
193
188
|
if (match) {
|
|
194
|
-
const
|
|
189
|
+
const matchResult = config.pattern?.split('/').reduce((acc, p, index) => {
|
|
190
|
+
if (!p.startsWith(':')) {
|
|
191
|
+
return acc;
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
// Path parameter so increment position for the segment
|
|
195
|
+
acc.pos += 1;
|
|
196
|
+
const decodedParamSegment = decodeURIComponent(
|
|
195
197
|
// The param segments appear every second item starting from 2 in the regex match result
|
|
196
|
-
|
|
197
|
-
|
|
198
|
+
match[(acc.pos + 1) * 2]
|
|
199
|
+
// Remove trailing slash
|
|
200
|
+
.replace(/\/$/, ''));
|
|
201
|
+
Object.assign(acc.matchedParams, {
|
|
202
|
+
[p]: Object.assign(acc.matchedParams[p] || {}, {
|
|
203
|
+
[index]: decodedParamSegment
|
|
204
|
+
})
|
|
205
|
+
});
|
|
206
|
+
return acc;
|
|
207
|
+
}, {
|
|
208
|
+
pos: -1,
|
|
209
|
+
matchedParams: {}
|
|
210
|
+
});
|
|
211
|
+
const matchedParams = matchResult.matchedParams || {};
|
|
198
212
|
routes = config.routeNames.map(name => {
|
|
199
|
-
const
|
|
200
|
-
|
|
201
|
-
|
|
213
|
+
const routeConfig = configs.find(c => {
|
|
214
|
+
// Check matching name AND pattern in case same screen is used at different levels in config
|
|
215
|
+
return c.screen === name && config.pattern.startsWith(c.pattern);
|
|
216
|
+
});
|
|
217
|
+
|
|
218
|
+
// Normalize pattern to remove any leading, trailing slashes, duplicate slashes etc.
|
|
219
|
+
const normalizedPath = routeConfig?.path.split('/').filter(Boolean).join('/');
|
|
220
|
+
|
|
221
|
+
// Get the number of segments in the initial pattern
|
|
222
|
+
const numInitialSegments = routeConfig?.pattern
|
|
223
|
+
// Extract the prefix from the pattern by removing the ending path pattern (e.g pattern=`a/b/c/d` and normalizedPath=`c/d` becomes `a/b`)
|
|
224
|
+
.replace(new RegExp(`${escape(normalizedPath)}$`), '')?.split('/').length;
|
|
225
|
+
const params = normalizedPath?.split('/').reduce((acc, p, index) => {
|
|
226
|
+
if (!p.startsWith(':')) {
|
|
227
|
+
return acc;
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
// Get the real index of the path parameter in the matched path
|
|
231
|
+
// by offsetting by the number of segments in the initial pattern
|
|
232
|
+
const offset = numInitialSegments ? numInitialSegments - 1 : 0;
|
|
233
|
+
const value = matchedParams[p]?.[index + offset];
|
|
202
234
|
if (value) {
|
|
203
235
|
const key = p.replace(/^:/, '').replace(/\?$/, '');
|
|
204
|
-
acc[key] =
|
|
236
|
+
acc[key] = routeConfig?.parse?.[key] ? routeConfig.parse[key](value) : value;
|
|
205
237
|
}
|
|
206
238
|
return acc;
|
|
207
239
|
}, {});
|
|
@@ -224,11 +256,7 @@ const matchAgainstConfigs = (remaining, configs) => {
|
|
|
224
256
|
remainingPath
|
|
225
257
|
};
|
|
226
258
|
};
|
|
227
|
-
const createNormalizedConfigs =
|
|
228
|
-
let routeNames = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
|
|
229
|
-
let initials = arguments.length > 3 ? arguments[3] : undefined;
|
|
230
|
-
let parentScreens = arguments.length > 4 ? arguments[4] : undefined;
|
|
231
|
-
let parentPattern = arguments.length > 5 ? arguments[5] : undefined;
|
|
259
|
+
const createNormalizedConfigs = (screen, routeConfig, routeNames = [], initials, parentScreens, parentPattern) => {
|
|
232
260
|
const configs = [];
|
|
233
261
|
routeNames.push(screen);
|
|
234
262
|
parentScreens.push(screen);
|