@react-navigation/core 7.0.0-alpha.1 → 7.0.0-alpha.11
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 +25 -30
- package/lib/commonjs/BaseNavigationContainer.js.map +1 -1
- package/lib/commonjs/CurrentRenderContext.js +3 -4
- package/lib/commonjs/CurrentRenderContext.js.map +1 -1
- package/lib/commonjs/DeprecatedNavigationInChildContext.js +3 -4
- package/lib/commonjs/DeprecatedNavigationInChildContext.js.map +1 -1
- package/lib/commonjs/EnsureSingleNavigator.js +3 -4
- package/lib/commonjs/EnsureSingleNavigator.js.map +1 -1
- package/lib/commonjs/Group.js.map +1 -1
- package/lib/commonjs/NavigationBuilderContext.js +3 -4
- package/lib/commonjs/NavigationBuilderContext.js.map +1 -1
- package/lib/commonjs/NavigationContainerRefContext.js +3 -4
- package/lib/commonjs/NavigationContainerRefContext.js.map +1 -1
- package/lib/commonjs/NavigationContext.js +3 -4
- package/lib/commonjs/NavigationContext.js.map +1 -1
- package/lib/commonjs/NavigationHelpersContext.js +3 -4
- package/lib/commonjs/NavigationHelpersContext.js.map +1 -1
- package/lib/commonjs/NavigationIndependentTree.js +2 -2
- package/lib/commonjs/NavigationIndependentTree.js.map +1 -1
- package/lib/commonjs/NavigationIndependentTreeContext.js +3 -4
- package/lib/commonjs/NavigationIndependentTreeContext.js.map +1 -1
- package/lib/commonjs/NavigationRouteContext.js +3 -4
- package/lib/commonjs/NavigationRouteContext.js.map +1 -1
- package/lib/commonjs/NavigationStateContext.js +3 -4
- package/lib/commonjs/NavigationStateContext.js.map +1 -1
- package/lib/commonjs/PreventRemoveContext.js +8 -4
- package/lib/commonjs/PreventRemoveContext.js.map +1 -1
- package/lib/commonjs/PreventRemoveProvider.js +8 -10
- package/lib/commonjs/PreventRemoveProvider.js.map +1 -1
- package/lib/commonjs/SceneView.js +2 -2
- package/lib/commonjs/SceneView.js.map +1 -1
- package/lib/commonjs/Screen.js.map +1 -1
- package/lib/commonjs/StaticContainer.js +3 -4
- package/lib/commonjs/StaticContainer.js.map +1 -1
- package/lib/commonjs/StaticNavigation.js +34 -7
- package/lib/commonjs/StaticNavigation.js.map +1 -1
- package/lib/commonjs/UnhandledActionContext.js +3 -4
- package/lib/commonjs/UnhandledActionContext.js.map +1 -1
- package/lib/commonjs/checkDuplicateRouteNames.js +1 -2
- package/lib/commonjs/checkDuplicateRouteNames.js.map +1 -1
- package/lib/commonjs/checkSerializable.js.map +1 -1
- package/lib/commonjs/createNavigationContainerRef.js +1 -2
- package/lib/commonjs/createNavigationContainerRef.js.map +1 -1
- package/lib/commonjs/createNavigatorFactory.js +0 -3
- package/lib/commonjs/createNavigatorFactory.js.map +1 -1
- package/lib/commonjs/findFocusedRoute.js +2 -4
- package/lib/commonjs/findFocusedRoute.js.map +1 -1
- package/lib/commonjs/getActionFromState.js +6 -8
- package/lib/commonjs/getActionFromState.js.map +1 -1
- package/lib/commonjs/getFocusedRouteNameFromRoute.js +1 -1
- package/lib/commonjs/getFocusedRouteNameFromRoute.js.map +1 -1
- package/lib/commonjs/getPathFromState.js +25 -22
- package/lib/commonjs/getPathFromState.js.map +1 -1
- package/lib/commonjs/getStateFromPath.js +63 -21
- package/lib/commonjs/getStateFromPath.js.map +1 -1
- package/lib/commonjs/index.js +27 -3
- 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 +12 -0
- package/lib/commonjs/theming/ThemeContext.js.map +1 -0
- package/lib/commonjs/theming/ThemeProvider.js +20 -0
- package/lib/commonjs/theming/ThemeProvider.js.map +1 -0
- package/lib/commonjs/theming/useTheme.js +18 -0
- package/lib/commonjs/theming/useTheme.js.map +1 -0
- package/lib/commonjs/types.js.map +1 -1
- package/lib/commonjs/useChildListeners.js +2 -2
- package/lib/commonjs/useChildListeners.js.map +1 -1
- package/lib/commonjs/useComponent.js +2 -2
- package/lib/commonjs/useComponent.js.map +1 -1
- package/lib/commonjs/useCurrentRender.js +2 -2
- package/lib/commonjs/useCurrentRender.js.map +1 -1
- package/lib/commonjs/useDescriptors.js +83 -31
- package/lib/commonjs/useDescriptors.js.map +1 -1
- package/lib/commonjs/useEventEmitter.js +5 -6
- package/lib/commonjs/useEventEmitter.js.map +1 -1
- package/lib/commonjs/useFocusEffect.js +4 -2
- package/lib/commonjs/useFocusEffect.js.map +1 -1
- package/lib/commonjs/useFocusEvents.js +4 -4
- package/lib/commonjs/useFocusEvents.js.map +1 -1
- package/lib/commonjs/useFocusedListenersChildrenAdapter.js +3 -3
- package/lib/commonjs/useFocusedListenersChildrenAdapter.js.map +1 -1
- package/lib/commonjs/useIsFocused.js +5 -4
- package/lib/commonjs/useIsFocused.js.map +1 -1
- package/lib/commonjs/useIsomorphicLayoutEffect.js +12 -0
- package/lib/commonjs/useIsomorphicLayoutEffect.js.map +1 -0
- package/lib/commonjs/useIsomorphicLayoutEffect.native.js +9 -0
- package/lib/commonjs/useIsomorphicLayoutEffect.native.js.map +1 -0
- package/lib/commonjs/useKeyedChildListeners.js +2 -2
- package/lib/commonjs/useKeyedChildListeners.js.map +1 -1
- package/lib/commonjs/useNavigation.js +2 -2
- package/lib/commonjs/useNavigation.js.map +1 -1
- package/lib/commonjs/useNavigationBuilder.js +81 -68
- package/lib/commonjs/useNavigationBuilder.js.map +1 -1
- package/lib/commonjs/useNavigationCache.js +57 -16
- package/lib/commonjs/useNavigationCache.js.map +1 -1
- package/lib/commonjs/useNavigationContainerRef.js +2 -2
- package/lib/commonjs/useNavigationContainerRef.js.map +1 -1
- package/lib/commonjs/useNavigationHelpers.js +4 -5
- package/lib/commonjs/useNavigationHelpers.js.map +1 -1
- package/lib/commonjs/useNavigationIndependentTree.js +2 -2
- package/lib/commonjs/useNavigationIndependentTree.js.map +1 -1
- package/lib/commonjs/useNavigationState.js +2 -2
- package/lib/commonjs/useNavigationState.js.map +1 -1
- package/lib/commonjs/useOnAction.js +6 -4
- package/lib/commonjs/useOnAction.js.map +1 -1
- package/lib/commonjs/useOnGetState.js +4 -5
- package/lib/commonjs/useOnGetState.js.map +1 -1
- package/lib/commonjs/useOnPreventRemove.js +5 -6
- package/lib/commonjs/useOnPreventRemove.js.map +1 -1
- package/lib/commonjs/useOnRouteFocus.js +2 -2
- package/lib/commonjs/useOnRouteFocus.js.map +1 -1
- package/lib/commonjs/useOptionsGetters.js +9 -10
- package/lib/commonjs/useOptionsGetters.js.map +1 -1
- package/lib/commonjs/usePreventRemove.js +5 -5
- package/lib/commonjs/usePreventRemove.js.map +1 -1
- package/lib/commonjs/usePreventRemoveContext.js +2 -2
- package/lib/commonjs/usePreventRemoveContext.js.map +1 -1
- package/lib/commonjs/useRegisterNavigator.js +2 -2
- package/lib/commonjs/useRegisterNavigator.js.map +1 -1
- package/lib/commonjs/useRoute.js +2 -2
- package/lib/commonjs/useRoute.js.map +1 -1
- package/lib/commonjs/useRouteCache.js +19 -16
- package/lib/commonjs/useRouteCache.js.map +1 -1
- package/lib/commonjs/useSyncState.js +27 -56
- package/lib/commonjs/useSyncState.js.map +1 -1
- package/lib/commonjs/validatePathConfig.js +37 -10
- package/lib/commonjs/validatePathConfig.js.map +1 -1
- package/lib/module/BaseNavigationContainer.js +22 -26
- 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.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.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 +6 -8
- package/lib/module/PreventRemoveProvider.js.map +1 -1
- 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 +27 -5
- package/lib/module/StaticNavigation.js.map +1 -1
- package/lib/module/UnhandledActionContext.js.map +1 -1
- package/lib/module/checkDuplicateRouteNames.js +1 -2
- package/lib/module/checkDuplicateRouteNames.js.map +1 -1
- package/lib/module/checkSerializable.js.map +1 -1
- package/lib/module/createNavigationContainerRef.js.map +1 -1
- package/lib/module/createNavigatorFactory.js +0 -3
- package/lib/module/createNavigatorFactory.js.map +1 -1
- package/lib/module/findFocusedRoute.js +2 -4
- package/lib/module/findFocusedRoute.js.map +1 -1
- package/lib/module/getActionFromState.js +6 -8
- package/lib/module/getActionFromState.js.map +1 -1
- package/lib/module/getFocusedRouteNameFromRoute.js +1 -1
- package/lib/module/getFocusedRouteNameFromRoute.js.map +1 -1
- package/lib/module/getPathFromState.js +23 -20
- package/lib/module/getPathFromState.js.map +1 -1
- package/lib/module/getStateFromPath.js +61 -19
- package/lib/module/getStateFromPath.js.map +1 -1
- package/lib/module/index.js +4 -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 +4 -0
- package/lib/module/theming/ThemeContext.js.map +1 -0
- package/lib/module/theming/ThemeProvider.js +12 -0
- package/lib/module/theming/ThemeProvider.js.map +1 -0
- package/lib/module/theming/useTheme.js +10 -0
- package/lib/module/theming/useTheme.js.map +1 -0
- package/lib/module/types.js.map +1 -1
- package/lib/module/useChildListeners.js.map +1 -1
- package/lib/module/useComponent.js.map +1 -1
- package/lib/module/useCurrentRender.js.map +1 -1
- package/lib/module/useDescriptors.js +81 -29
- package/lib/module/useDescriptors.js.map +1 -1
- package/lib/module/useEventEmitter.js +3 -4
- package/lib/module/useEventEmitter.js.map +1 -1
- package/lib/module/useFocusEffect.js +2 -0
- package/lib/module/useFocusEffect.js.map +1 -1
- package/lib/module/useFocusEvents.js +2 -2
- package/lib/module/useFocusEvents.js.map +1 -1
- package/lib/module/useFocusedListenersChildrenAdapter.js +1 -1
- package/lib/module/useFocusedListenersChildrenAdapter.js.map +1 -1
- package/lib/module/useIsFocused.js.map +1 -1
- package/lib/module/useIsomorphicLayoutEffect.js +7 -0
- package/lib/module/useIsomorphicLayoutEffect.js.map +1 -0
- package/lib/module/useIsomorphicLayoutEffect.native.js +3 -0
- package/lib/module/useIsomorphicLayoutEffect.native.js.map +1 -0
- package/lib/module/useKeyedChildListeners.js.map +1 -1
- package/lib/module/useNavigation.js.map +1 -1
- package/lib/module/useNavigationBuilder.js +78 -66
- package/lib/module/useNavigationBuilder.js.map +1 -1
- package/lib/module/useNavigationCache.js +55 -14
- package/lib/module/useNavigationCache.js.map +1 -1
- package/lib/module/useNavigationContainerRef.js.map +1 -1
- package/lib/module/useNavigationHelpers.js +2 -3
- 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 +4 -2
- package/lib/module/useOnAction.js.map +1 -1
- package/lib/module/useOnGetState.js +2 -3
- package/lib/module/useOnGetState.js.map +1 -1
- package/lib/module/useOnPreventRemove.js +3 -4
- package/lib/module/useOnPreventRemove.js.map +1 -1
- package/lib/module/useOnRouteFocus.js.map +1 -1
- package/lib/module/useOptionsGetters.js +7 -8
- package/lib/module/useOptionsGetters.js.map +1 -1
- package/lib/module/usePreventRemove.js +2 -2
- 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 +16 -12
- package/lib/module/useRouteCache.js.map +1 -1
- package/lib/module/useSyncState.js +25 -54
- package/lib/module/useSyncState.js.map +1 -1
- package/lib/module/validatePathConfig.js +37 -10
- package/lib/module/validatePathConfig.js.map +1 -1
- package/lib/typescript/src/BaseNavigationContainer.d.ts +2 -1
- package/lib/typescript/src/BaseNavigationContainer.d.ts.map +1 -1
- package/lib/typescript/src/EnsureSingleNavigator.d.ts +1 -1
- package/lib/typescript/src/EnsureSingleNavigator.d.ts.map +1 -1
- package/lib/typescript/src/NavigationContext.d.ts +1 -17
- package/lib/typescript/src/NavigationContext.d.ts.map +1 -1
- package/lib/typescript/src/NavigationHelpersContext.d.ts +1 -1
- package/lib/typescript/src/NavigationHelpersContext.d.ts.map +1 -1
- package/lib/typescript/src/NavigationIndependentTree.d.ts +1 -1
- package/lib/typescript/src/NavigationIndependentTree.d.ts.map +1 -1
- package/lib/typescript/src/NavigationRouteContext.d.ts +1 -1
- package/lib/typescript/src/NavigationRouteContext.d.ts.map +1 -1
- package/lib/typescript/src/NavigationStateContext.d.ts +2 -18
- package/lib/typescript/src/NavigationStateContext.d.ts.map +1 -1
- package/lib/typescript/src/PreventRemoveProvider.d.ts +1 -1
- package/lib/typescript/src/PreventRemoveProvider.d.ts.map +1 -1
- package/lib/typescript/src/SceneView.d.ts +2 -2
- package/lib/typescript/src/SceneView.d.ts.map +1 -1
- package/lib/typescript/src/StaticNavigation.d.ts +12 -5
- package/lib/typescript/src/StaticNavigation.d.ts.map +1 -1
- package/lib/typescript/src/createNavigatorFactory.d.ts.map +1 -1
- package/lib/typescript/src/findFocusedRoute.d.ts +1 -9
- package/lib/typescript/src/findFocusedRoute.d.ts.map +1 -1
- package/lib/typescript/src/getPathFromState.d.ts +1 -0
- package/lib/typescript/src/getPathFromState.d.ts.map +1 -1
- package/lib/typescript/src/getStateFromPath.d.ts +1 -0
- package/lib/typescript/src/getStateFromPath.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +5 -2
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/theming/ThemeContext.d.ts +3 -0
- package/lib/typescript/src/theming/ThemeContext.d.ts.map +1 -0
- package/lib/typescript/src/theming/ThemeProvider.d.ts +8 -0
- package/lib/typescript/src/theming/ThemeProvider.d.ts.map +1 -0
- package/lib/typescript/src/theming/useTheme.d.ts +2 -0
- package/lib/typescript/src/theming/useTheme.d.ts.map +1 -0
- package/lib/typescript/src/types.d.ts +80 -1
- package/lib/typescript/src/types.d.ts.map +1 -1
- package/lib/typescript/src/useComponent.d.ts +1 -1
- package/lib/typescript/src/useComponent.d.ts.map +1 -1
- package/lib/typescript/src/useDescriptors.d.ts +107 -59
- package/lib/typescript/src/useDescriptors.d.ts.map +1 -1
- package/lib/typescript/src/useFocusEffect.d.ts.map +1 -1
- package/lib/typescript/src/useFocusedListenersChildrenAdapter.d.ts +1 -1
- package/lib/typescript/src/useFocusedListenersChildrenAdapter.d.ts.map +1 -1
- package/lib/typescript/src/useIsomorphicLayoutEffect.d.ts +6 -0
- package/lib/typescript/src/useIsomorphicLayoutEffect.d.ts.map +1 -0
- package/lib/typescript/src/useIsomorphicLayoutEffect.native.d.ts +3 -0
- package/lib/typescript/src/useIsomorphicLayoutEffect.native.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 +99 -63
- package/lib/typescript/src/useNavigationBuilder.d.ts.map +1 -1
- package/lib/typescript/src/useNavigationCache.d.ts +53 -3
- package/lib/typescript/src/useNavigationCache.d.ts.map +1 -1
- package/lib/typescript/src/useNavigationHelpers.d.ts +25 -55
- package/lib/typescript/src/useNavigationHelpers.d.ts.map +1 -1
- package/lib/typescript/src/useOnAction.d.ts +1 -1
- package/lib/typescript/src/useOnAction.d.ts.map +1 -1
- package/lib/typescript/src/useOnGetState.d.ts +1 -1
- package/lib/typescript/src/useOnGetState.d.ts.map +1 -1
- package/lib/typescript/src/useOnPreventRemove.d.ts +1 -1
- package/lib/typescript/src/useOnPreventRemove.d.ts.map +1 -1
- package/lib/typescript/src/usePreventRemove.d.ts +1 -1
- package/lib/typescript/src/usePreventRemove.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 +1 -4
- package/lib/typescript/src/useSyncState.d.ts.map +1 -1
- package/lib/typescript/src/validatePathConfig.d.ts +1 -1
- package/lib/typescript/src/validatePathConfig.d.ts.map +1 -1
- package/lib/typescript/utils/usePrevious.d.ts +6 -0
- package/lib/typescript/utils/usePrevious.d.ts.map +1 -0
- package/package.json +14 -14
- package/src/BaseNavigationContainer.tsx +35 -36
- package/src/Group.tsx +1 -1
- package/src/PreventRemoveProvider.tsx +4 -1
- package/src/SceneView.tsx +1 -1
- package/src/Screen.tsx +1 -1
- package/src/StaticNavigation.tsx +34 -32
- package/src/checkDuplicateRouteNames.tsx +1 -1
- package/src/createNavigationContainerRef.tsx +1 -1
- package/src/createNavigatorFactory.tsx +2 -4
- package/src/getActionFromState.tsx +1 -1
- package/src/getFocusedRouteNameFromRoute.tsx +3 -3
- package/src/getPathFromState.tsx +20 -12
- package/src/getStateFromPath.tsx +80 -19
- package/src/index.tsx +6 -3
- package/src/theming/ThemeContext.tsx +7 -0
- package/src/theming/ThemeProvider.tsx +14 -0
- package/src/theming/useTheme.tsx +15 -0
- package/src/types.tsx +133 -17
- package/src/useDescriptors.tsx +153 -59
- package/src/useFocusEffect.tsx +1 -0
- package/src/useFocusedListenersChildrenAdapter.tsx +2 -2
- package/src/useIsomorphicLayoutEffect.native.tsx +3 -0
- package/src/useIsomorphicLayoutEffect.tsx +7 -0
- package/src/useNavigation.tsx +4 -1
- package/src/useNavigationBuilder.tsx +123 -100
- package/src/useNavigationCache.tsx +91 -30
- package/src/useNavigationContainerRef.tsx +1 -1
- package/src/useNavigationHelpers.tsx +6 -7
- package/src/useOnAction.tsx +8 -3
- package/src/useOnGetState.tsx +1 -1
- package/src/useOnPreventRemove.tsx +1 -1
- package/src/useOptionsGetters.tsx +2 -2
- package/src/usePreventRemove.tsx +1 -1
- package/src/useRouteCache.tsx +17 -16
- package/src/useSyncState.tsx +31 -59
- package/src/validatePathConfig.tsx +58 -14
- package/lib/commonjs/fromEntries.js +0 -18
- package/lib/commonjs/fromEntries.js.map +0 -1
- package/lib/commonjs/useScheduleUpdate.js +0 -37
- package/lib/commonjs/useScheduleUpdate.js.map +0 -1
- package/lib/module/fromEntries.js +0 -12
- package/lib/module/fromEntries.js.map +0 -1
- package/lib/module/useScheduleUpdate.js +0 -27
- package/lib/module/useScheduleUpdate.js.map +0 -1
- package/lib/typescript/src/fromEntries.d.ts +0 -2
- package/lib/typescript/src/fromEntries.d.ts.map +0 -1
- package/lib/typescript/src/useScheduleUpdate.d.ts +0 -14
- package/lib/typescript/src/useScheduleUpdate.d.ts.map +0 -1
- package/src/fromEntries.tsx +0 -11
- package/src/useScheduleUpdate.tsx +0 -32
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","NavigationContext","NavigationIndependentTreeContext","NavigationRouteContext","NavigationIndependentTree","children","undefined"],"sourceRoot":"../../src","sources":["NavigationIndependentTree.tsx"],"mappings":"AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAE9B,SAASC,iBAAiB,QAAQ,qBAAqB;AACvD,SAASC,gCAAgC,QAAQ,oCAAoC;AACrF,SAASC,sBAAsB,QAAQ,0BAA0B;;AAEjE;AACA;AACA;AACA,OAAO,SAASC,
|
|
1
|
+
{"version":3,"names":["React","NavigationContext","NavigationIndependentTreeContext","NavigationRouteContext","NavigationIndependentTree","_ref","children","createElement","Provider","value","undefined"],"sourceRoot":"../../src","sources":["NavigationIndependentTree.tsx"],"mappings":"AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAE9B,SAASC,iBAAiB,QAAQ,qBAAqB;AACvD,SAASC,gCAAgC,QAAQ,oCAAoC;AACrF,SAASC,sBAAsB,QAAQ,0BAA0B;;AAEjE;AACA;AACA;AACA,OAAO,SAASC,yBAAyBA,CAAAC,IAAA,EAItC;EAAA,IAJuC;IACxCC;EAGF,CAAC,GAAAD,IAAA;EACC;IAAA;IACE;IACAL,KAAA,CAAAO,aAAA,CAACJ,sBAAsB,CAACK,QAAQ;MAACC,KAAK,EAAEC;IAAU,gBAChDV,KAAA,CAAAO,aAAA,CAACN,iBAAiB,CAACO,QAAQ;MAACC,KAAK,EAAEC;IAAU,gBAC3CV,KAAA,CAAAO,aAAA,CAACL,gCAAgC,CAACM,QAAQ;MAACC,KAAK;IAAA,GAC7CH,QACwC,CACjB,CACG;EAAC;AAEtC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","NavigationIndependentTreeContext","createContext"],"sourceRoot":"../../src","sources":["NavigationIndependentTreeContext.tsx"],"mappings":"AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;;AAE9B;AACA;AACA;AACA,OAAO,MAAMC,gCAAgC,gBAAGD,KAAK,CAACE,aAAa,CAAC,KAAK,CAAC"}
|
|
1
|
+
{"version":3,"names":["React","NavigationIndependentTreeContext","createContext"],"sourceRoot":"../../src","sources":["NavigationIndependentTreeContext.tsx"],"mappings":"AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;;AAE9B;AACA;AACA;AACA,OAAO,MAAMC,gCAAgC,gBAAGD,KAAK,CAACE,aAAa,CAAC,KAAK,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","NavigationRouteContext","createContext","undefined"],"sourceRoot":"../../src","sources":["NavigationRouteContext.tsx"],"mappings":"AACA,OAAO,KAAKA,KAAK,MAAM,OAAO;;AAE9B;AACA;AACA;AACA,OAAO,MAAMC,sBAAsB,gBAAGD,KAAK,CAACE,aAAa,CAEvDC,SAAS,CAAC"}
|
|
1
|
+
{"version":3,"names":["React","NavigationRouteContext","createContext","undefined"],"sourceRoot":"../../src","sources":["NavigationRouteContext.tsx"],"mappings":"AACA,OAAO,KAAKA,KAAK,MAAM,OAAO;;AAE9B;AACA;AACA;AACA,OAAO,MAAMC,sBAAsB,gBAAGD,KAAK,CAACE,aAAa,CAEvDC,SAAS,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","MISSING_CONTEXT_ERROR","NavigationStateContext","createContext","isDefault","getKey","Error","setKey","getState","setState","getIsInitial"],"sourceRoot":"../../src","sources":["NavigationStateContext.tsx"],"mappings":"AACA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAE9B,MAAMC,qBAAqB,GACzB,wKAAwK;AAE1K,OAAO,MAAMC,sBAAsB,gBAAGF,KAAK,CAACG,aAAa,CActD;EACDC,SAAS,EAAE,IAAI;EAEf,IAAIC,
|
|
1
|
+
{"version":3,"names":["React","MISSING_CONTEXT_ERROR","NavigationStateContext","createContext","isDefault","getKey","Error","setKey","getState","setState","getIsInitial"],"sourceRoot":"../../src","sources":["NavigationStateContext.tsx"],"mappings":"AACA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAE9B,MAAMC,qBAAqB,GACzB,wKAAwK;AAE1K,OAAO,MAAMC,sBAAsB,gBAAGF,KAAK,CAACG,aAAa,CActD;EACDC,SAAS,EAAE,IAAI;EAEf,IAAIC,MAAMA,CAAA,EAAQ;IAChB,MAAM,IAAIC,KAAK,CAACL,qBAAqB,CAAC;EACxC,CAAC;EACD,IAAIM,MAAMA,CAAA,EAAQ;IAChB,MAAM,IAAID,KAAK,CAACL,qBAAqB,CAAC;EACxC,CAAC;EACD,IAAIO,QAAQA,CAAA,EAAQ;IAClB,MAAM,IAAIF,KAAK,CAACL,qBAAqB,CAAC;EACxC,CAAC;EACD,IAAIQ,QAAQA,CAAA,EAAQ;IAClB,MAAM,IAAIH,KAAK,CAACL,qBAAqB,CAAC;EACxC,CAAC;EACD,IAAIS,YAAYA,CAAA,EAAQ;IACtB,MAAM,IAAIJ,KAAK,CAACL,qBAAqB,CAAC;EACxC;AACF,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","PreventRemoveContext","createContext","undefined"],"sourceRoot":"../../src","sources":["PreventRemoveContext.tsx"],"mappings":"AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;;AAE9B;AACA;AACA;AACA;;AAGA,OAAO,MAAMC,oBAAoB,gBAAGD,KAAK,CAACE,aAAa,CAUrDC,SAAS,CAAC"}
|
|
1
|
+
{"version":3,"names":["React","PreventRemoveContext","createContext","undefined"],"sourceRoot":"../../src","sources":["PreventRemoveContext.tsx"],"mappings":"AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;;AAE9B;AACA;AACA;AACA;;AAGA,OAAO,MAAMC,oBAAoB,gBAAGD,KAAK,CAACE,aAAa,CAUrDC,SAAS,CAAC"}
|
|
@@ -10,13 +10,12 @@ import { PreventRemoveContext } from './PreventRemoveContext';
|
|
|
10
10
|
const transformPreventedRoutes = preventedRoutesMap => {
|
|
11
11
|
const preventedRoutesToTransform = [...preventedRoutesMap.values()];
|
|
12
12
|
const preventedRoutes = preventedRoutesToTransform.reduce((acc, _ref) => {
|
|
13
|
-
var _acc$routeKey;
|
|
14
13
|
let {
|
|
15
14
|
routeKey,
|
|
16
15
|
preventRemove
|
|
17
16
|
} = _ref;
|
|
18
17
|
acc[routeKey] = {
|
|
19
|
-
preventRemove:
|
|
18
|
+
preventRemove: acc[routeKey]?.preventRemove || preventRemove
|
|
20
19
|
};
|
|
21
20
|
return acc;
|
|
22
21
|
}, {});
|
|
@@ -36,15 +35,14 @@ export function PreventRemoveProvider(_ref2) {
|
|
|
36
35
|
const route = React.useContext(NavigationRouteContext);
|
|
37
36
|
const preventRemoveContextValue = React.useContext(PreventRemoveContext);
|
|
38
37
|
// take `setPreventRemove` from parent context - if exist it means we're in a nested context
|
|
39
|
-
const setParentPrevented = preventRemoveContextValue
|
|
38
|
+
const setParentPrevented = preventRemoveContextValue?.setPreventRemove;
|
|
40
39
|
const setPreventRemove = useLatestCallback((id, routeKey, preventRemove) => {
|
|
41
|
-
if (preventRemove && (navigation == null || navigation
|
|
40
|
+
if (preventRemove && (navigation == null || navigation?.getState().routes.every(route => route.key !== routeKey))) {
|
|
42
41
|
throw new Error(`Couldn't find a route with the key ${routeKey}. Is your component inside NavigationContent?`);
|
|
43
42
|
}
|
|
44
43
|
setPreventedRoutesMap(prevPrevented => {
|
|
45
|
-
var _prevPrevented$get, _prevPrevented$get2;
|
|
46
44
|
// values haven't changed - do nothing
|
|
47
|
-
if (routeKey ===
|
|
45
|
+
if (routeKey === prevPrevented.get(id)?.routeKey && preventRemove === prevPrevented.get(id)?.preventRemove) {
|
|
48
46
|
return prevPrevented;
|
|
49
47
|
}
|
|
50
48
|
const nextPrevented = new Map(prevPrevented);
|
|
@@ -66,7 +64,7 @@ export function PreventRemoveProvider(_ref2) {
|
|
|
66
64
|
return preventRemove;
|
|
67
65
|
});
|
|
68
66
|
React.useEffect(() => {
|
|
69
|
-
if (
|
|
67
|
+
if (route?.key !== undefined && setParentPrevented !== undefined) {
|
|
70
68
|
// when route is defined (and setParentPrevented) it means we're in a nested stack
|
|
71
69
|
// route.key then will be the route key of parent
|
|
72
70
|
setParentPrevented(parentId, route.key, isPrevented);
|
|
@@ -75,7 +73,7 @@ export function PreventRemoveProvider(_ref2) {
|
|
|
75
73
|
};
|
|
76
74
|
}
|
|
77
75
|
return;
|
|
78
|
-
}, [parentId, isPrevented, route
|
|
76
|
+
}, [parentId, isPrevented, route?.key, setParentPrevented]);
|
|
79
77
|
const value = React.useMemo(() => ({
|
|
80
78
|
setPreventRemove,
|
|
81
79
|
preventedRoutes: transformPreventedRoutes(preventedRoutesMap)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["nanoid","React","useLatestCallback","NavigationHelpersContext","NavigationRouteContext","PreventRemoveContext","transformPreventedRoutes","preventedRoutesMap","preventedRoutesToTransform","values","preventedRoutes","reduce","acc","routeKey","preventRemove","PreventRemoveProvider","children","parentId","useState","setPreventedRoutesMap","Map","navigation","useContext","route","preventRemoveContextValue","setParentPrevented","setPreventRemove","id","getState","routes","every","key","Error","prevPrevented","get","nextPrevented","set","delete","isPrevented","some","useEffect","undefined","value","useMemo"],"sourceRoot":"../../src","sources":["PreventRemoveProvider.tsx"],"mappings":"AAAA,SAASA,MAAM,QAAQ,mBAAmB;AAC1C,OAAO,KAAKC,KAAK,MAAM,OAAO;AAC9B,OAAOC,iBAAiB,MAAM,qBAAqB;AAEnD,SAASC,wBAAwB,QAAQ,4BAA4B;AACrE,SAASC,sBAAsB,QAAQ,0BAA0B;AACjE,
|
|
1
|
+
{"version":3,"names":["nanoid","React","useLatestCallback","NavigationHelpersContext","NavigationRouteContext","PreventRemoveContext","transformPreventedRoutes","preventedRoutesMap","preventedRoutesToTransform","values","preventedRoutes","reduce","acc","_ref","routeKey","preventRemove","PreventRemoveProvider","_ref2","children","parentId","useState","setPreventedRoutesMap","Map","navigation","useContext","route","preventRemoveContextValue","setParentPrevented","setPreventRemove","id","getState","routes","every","key","Error","prevPrevented","get","nextPrevented","set","delete","isPrevented","some","_ref3","useEffect","undefined","value","useMemo","createElement","Provider"],"sourceRoot":"../../src","sources":["PreventRemoveProvider.tsx"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","EnsureSingleNavigator","NavigationStateContext","StaticContainer","useOptionsGetters","SceneView","screen","route","navigation","routeState","getState","setState","options","clearOptions","navigatorKeyRef","useRef","getKey","useCallback","current","addOptionsGetter","key","setKey","getCurrentState","state","currentRoute","routes","find","r","undefined","setCurrentState","child","map","isInitialRef","useEffect","getIsInitial","context","useMemo","ScreenComponent","getComponent","component","name","children"],"sourceRoot":"../../src","sources":["SceneView.tsx"],"mappings":"AAMA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAE9B,SAASC,qBAAqB,QAAQ,yBAAyB;AAC/D,SAASC,sBAAsB,QAAQ,0BAA0B;AACjE,SAASC,eAAe,QAAQ,mBAAmB;AAEnD,SAASC,iBAAiB,QAAQ,qBAAqB;AAmBvD;AACA;AACA;AACA;AACA,OAAO,SAASC,
|
|
1
|
+
{"version":3,"names":["React","EnsureSingleNavigator","NavigationStateContext","StaticContainer","useOptionsGetters","SceneView","_ref","screen","route","navigation","routeState","getState","setState","options","clearOptions","navigatorKeyRef","useRef","getKey","useCallback","current","addOptionsGetter","key","setKey","getCurrentState","state","currentRoute","routes","find","r","undefined","setCurrentState","child","map","isInitialRef","useEffect","getIsInitial","context","useMemo","ScreenComponent","getComponent","component","createElement","Provider","value","name","render","children"],"sourceRoot":"../../src","sources":["SceneView.tsx"],"mappings":"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"}
|
package/lib/module/Screen.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Screen","_"],"sourceRoot":"../../src","sources":["Screen.tsx"],"mappings":"AAIA;AACA;AACA;AACA,OAAO,SAASA,
|
|
1
|
+
{"version":3,"names":["Screen","_"],"sourceRoot":"../../src","sources":["Screen.tsx"],"mappings":"AAIA;AACA;AACA;AACA,OAAO,SAASA,MAAMA,CAMpBC,CAAoE,EAAE;EACtE;EACA,OAAO,IAAI;AACb"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","StaticContainer","memo","props","children","prevProps","nextProps","prevPropKeys","Object","keys","nextPropKeys","length","key"],"sourceRoot":"../../src","sources":["StaticContainer.tsx"],"mappings":"AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;;AAE9B;AACA;AACA;AACA,OAAO,MAAMC,eAAe,gBAAGD,KAAK,CAACE,IAAI,CACvC,SAASD,
|
|
1
|
+
{"version":3,"names":["React","StaticContainer","memo","props","children","prevProps","nextProps","prevPropKeys","Object","keys","nextPropKeys","length","key"],"sourceRoot":"../../src","sources":["StaticContainer.tsx"],"mappings":"AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;;AAE9B;AACA;AACA;AACA,OAAO,MAAMC,eAAe,gBAAGD,KAAK,CAACE,IAAI,CACvC,SAASD,eAAeA,CAACE,KAAU,EAAE;EACnC,OAAOA,KAAK,CAACC,QAAQ;AACvB,CAAC,EACD,CAACC,SAAc,EAAEC,SAAc,KAAK;EAClC,MAAMC,YAAY,GAAGC,MAAM,CAACC,IAAI,CAACJ,SAAS,CAAC;EAC3C,MAAMK,YAAY,GAAGF,MAAM,CAACC,IAAI,CAACH,SAAS,CAAC;EAE3C,IAAIC,YAAY,CAACI,MAAM,KAAKD,YAAY,CAACC,MAAM,EAAE;IAC/C,OAAO,KAAK;EACd;EAEA,KAAK,MAAMC,GAAG,IAAIL,YAAY,EAAE;IAC9B,IAAIK,GAAG,KAAK,UAAU,EAAE;MACtB;IACF;IAEA,IAAIP,SAAS,CAACO,GAAG,CAAC,KAAKN,SAAS,CAACM,GAAG,CAAC,EAAE;MACrC,OAAO,KAAK;IACd;EACF;EAEA,OAAO,IAAI;AACb,CACF,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
2
2
|
import * as React from 'react';
|
|
3
|
-
import {
|
|
3
|
+
import { isValidElementType } from 'react-is';
|
|
4
4
|
import { useRoute } from './useRoute';
|
|
5
5
|
|
|
6
6
|
/**
|
|
@@ -8,6 +8,25 @@ import { useRoute } from './useRoute';
|
|
|
8
8
|
* This will show a plain object when hovering over the type.
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
|
+
/**
|
|
12
|
+
* keyof T doesn't work for union types. We can use distributive conditional types instead.
|
|
13
|
+
* https://www.typescriptlang.org/docs/handbook/2/conditional-types.html#distributive-conditional-types
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* We get a union type when using keyof, but we want an intersection instead.
|
|
18
|
+
* https://stackoverflow.com/a/50375286/1665026
|
|
19
|
+
*/
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Props for a screen component which is rendered by a static navigator.
|
|
23
|
+
* Takes the route params as a generic argument.
|
|
24
|
+
*/
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Infer the param list from the static navigation config.
|
|
28
|
+
*/
|
|
29
|
+
|
|
11
30
|
const MemoizedScreen = /*#__PURE__*/React.memo(_ref => {
|
|
12
31
|
let {
|
|
13
32
|
component
|
|
@@ -33,13 +52,13 @@ const getItemsFromScreens = (Screen, screens) => {
|
|
|
33
52
|
} = item;
|
|
34
53
|
useIf = _if;
|
|
35
54
|
props = rest;
|
|
36
|
-
if (
|
|
55
|
+
if (isValidElementType(screen)) {
|
|
37
56
|
component = screen;
|
|
38
57
|
} else if ('config' in screen) {
|
|
39
58
|
isNavigator = true;
|
|
40
59
|
component = createComponentForStaticNavigation(screen, `${name}Navigator`);
|
|
41
60
|
}
|
|
42
|
-
} else if (
|
|
61
|
+
} else if (isValidElementType(item)) {
|
|
43
62
|
component = item;
|
|
44
63
|
} else if ('config' in item) {
|
|
45
64
|
isNavigator = true;
|
|
@@ -48,7 +67,7 @@ const getItemsFromScreens = (Screen, screens) => {
|
|
|
48
67
|
if (component == null) {
|
|
49
68
|
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.`);
|
|
50
69
|
}
|
|
51
|
-
|
|
70
|
+
const element = isNavigator ? /*#__PURE__*/React.createElement(component, {}) : /*#__PURE__*/React.createElement(MemoizedScreen, {
|
|
52
71
|
component: component
|
|
53
72
|
});
|
|
54
73
|
return () => {
|
|
@@ -83,6 +102,9 @@ export function createComponentForStaticNavigation(tree, displayName) {
|
|
|
83
102
|
groups,
|
|
84
103
|
...rest
|
|
85
104
|
} = 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.");
|
|
107
|
+
}
|
|
86
108
|
const items = getItemsFromScreens(Screen, screens);
|
|
87
109
|
if (groups) {
|
|
88
110
|
items.push(...Object.entries(groups).map(_ref3 => {
|
|
@@ -132,7 +154,7 @@ export function createComponentForStaticNavigation(tree, displayName) {
|
|
|
132
154
|
* ```
|
|
133
155
|
*/
|
|
134
156
|
export function createPathConfigForStaticNavigation(tree) {
|
|
135
|
-
return fromEntries(Object.entries(tree.config.screens).map(_ref4 => {
|
|
157
|
+
return Object.fromEntries(Object.entries(tree.config.screens).map(_ref4 => {
|
|
136
158
|
let [key, item] = _ref4;
|
|
137
159
|
const screenConfig = {};
|
|
138
160
|
if ('linking' in item) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","
|
|
1
|
+
{"version":3,"names":["React","isValidElementType","useRoute","MemoizedScreen","memo","_ref","component","route","children","createElement","getItemsFromScreens","Screen","screens","Object","entries","map","_ref2","name","item","props","useIf","isNavigator","screen","if","_if","rest","createComponentForStaticNavigation","Error","element","shouldRender","_extends","key","tree","displayName","Navigator","Group","config","groups","items","push","_ref3","group","groupItems","navigationKey","NavigatorComponent","createPathConfigForStaticNavigation","fromEntries","_ref4","screenConfig","linking","path","assign","filter","_ref5","keys","length"],"sourceRoot":"../../src","sources":["StaticNavigation.tsx"],"mappings":";AACA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,SAASC,kBAAkB,QAAQ,UAAU;AAU7C,SAASC,QAAQ,QAAQ,YAAY;;AAErC;AACA;AACA;AACA;;AAGA;AACA;AACA;AACA;;AAGA;AACA;AACA;AACA;;AAmJA;AACA;AACA;AACA;;AAOA;AACA;AACA;;AA8BA,MAAMC,cAAc,gBAAGH,KAAK,CAACI,IAAI,CAC/BC,IAAA,IAAyE;EAAA,IAApC;IAAEC;EAA4B,CAAC,GAAAD,IAAA;EAClE,MAAME,KAAK,GAAGL,QAAQ,CAAC,CAAC;EACxB,MAAMM,QAAQ,gBAAGR,KAAK,CAACS,aAAa,CAACH,SAAS,EAAE;IAAEC;EAAM,CAAC,CAAC;EAE1D,OAAOC,QAAQ;AACjB,CACF,CAAC;AAED,MAAME,mBAAmB,GAAGA,CAC1BC,MAAgC,EAChCC,OAAgD,KAC7C;EACH,OAAOC,MAAM,CAACC,OAAO,CAACF,OAAO,CAAC,CAACG,GAAG,CAACC,KAAA,IAAkB;IAAA,IAAjB,CAACC,IAAI,EAAEC,IAAI,CAAC,GAAAF,KAAA;IAC9C,IAAIV,SAA+C;IACnD,IAAIa,KAAS,GAAG,CAAC,CAAC;IAClB,IAAIC,KAAkC;IAEtC,IAAIC,WAAW,GAAG,KAAK;IAEvB,IAAI,QAAQ,IAAIH,IAAI,EAAE;MACpB,MAAM;QAAEI,MAAM;QAAEC,EAAE,EAAEC,GAAG;QAAE,GAAGC;MAAK,CAAC,GAAGP,IAAI;MAEzCE,KAAK,GAAGI,GAAG;MACXL,KAAK,GAAGM,IAAI;MAEZ,IAAIxB,kBAAkB,CAACqB,MAAM,CAAC,EAAE;QAC9BhB,SAAS,GAAGgB,MAAM;MACpB,CAAC,MAAM,IAAI,QAAQ,IAAIA,MAAM,EAAE;QAC7BD,WAAW,GAAG,IAAI;QAClBf,SAAS,GAAGoB,kCAAkC,CAC5CJ,MAAM,EACL,GAAEL,IAAK,WACV,CAAC;MACH;IACF,CAAC,MAAM,IAAIhB,kBAAkB,CAACiB,IAAI,CAAC,EAAE;MACnCZ,SAAS,GAAGY,IAAI;IAClB,CAAC,MAAM,IAAI,QAAQ,IAAIA,IAAI,EAAE;MAC3BG,WAAW,GAAG,IAAI;MAClBf,SAAS,GAAGoB,kCAAkC,CAACR,IAAI,EAAG,GAAED,IAAK,WAAU,CAAC;IAC1E;IAEA,IAAIX,SAAS,IAAI,IAAI,EAAE;MACrB,MAAM,IAAIqB,KAAK,CACZ,qDAAoDV,IAAK,qLAC5D,CAAC;IACH;IAEA,MAAMW,OAAO,GAAGP,WAAW,gBACzBrB,KAAK,CAACS,aAAa,CAACH,SAAS,EAAE,CAAC,CAAC,CAAC,gBAElCN,KAAA,CAAAS,aAAA,CAACN,cAAc;MAACG,SAAS,EAAEA;IAAU,CAAE,CACxC;IAED,OAAO,MAAM;MACX,MAAMuB,YAAY,GAAGT,KAAK,IAAI,IAAI,IAAIA,KAAK,CAAC,CAAC;MAE7C,IAAI,CAACS,YAAY,EAAE;QACjB,OAAO,IAAI;MACb;MAEA,oBACE7B,KAAA,CAAAS,aAAA,CAACE,MAAM,EAAAmB,QAAA;QAACC,GAAG,EAAEd,IAAK;QAACA,IAAI,EAAEA;MAAK,GAAKE,KAAK,GACrC,MAAMS,OACD,CAAC;IAEb,CAAC;EACH,CAAC,CAAC;AACJ,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASF,kCAAkCA,CAChDM,IAAqC,EACrCC,WAAmB,EACM;EACzB,MAAM;IAAEC,SAAS;IAAEC,KAAK;IAAExB,MAAM;IAAEyB;EAAO,CAAC,GAAGJ,IAAI;EACjD,MAAM;IAAEpB,OAAO;IAAEyB,MAAM;IAAE,GAAGZ;EAAK,CAAC,GAAGW,MAAM;EAE3C,IAAIxB,OAAO,IAAI,IAAI,EAAE;IACnB,MAAM,IAAIe,KAAK,CACb,uHACF,CAAC;EACH;EAEA,MAAMW,KAAK,GAAG5B,mBAAmB,CAACC,MAAM,EAAEC,OAAO,CAAC;EAElD,IAAIyB,MAAM,EAAE;IACVC,KAAK,CAACC,IAAI,CACR,GAAG1B,MAAM,CAACC,OAAO,CAACuB,MAAM,CAAC,CAACtB,GAAG,CAACyB,KAAA,IAAoC;MAAA,IAAnC,CAACT,GAAG,EAAE;QAAER,EAAE,EAAEH,KAAK;QAAE,GAAGqB;MAAM,CAAC,CAAC,GAAAD,KAAA;MAC3D,MAAME,UAAU,GAAGhC,mBAAmB,CAACC,MAAM,EAAE8B,KAAK,CAAC7B,OAAO,CAAC;MAE7D,OAAO,MAAM;QACX;QACA,MAAMJ,QAAQ,GAAGkC,UAAU,CAAC3B,GAAG,CAAEG,IAAI,IAAKA,IAAI,CAAC,CAAC,CAAC;QAEjD,MAAMW,YAAY,GAAGT,KAAK,IAAI,IAAI,IAAIA,KAAK,CAAC,CAAC;QAE7C,IAAI,CAACS,YAAY,EAAE;UACjB,OAAO,IAAI;QACb;QAEA,oBACE7B,KAAA,CAAAS,aAAA,CAAC0B,KAAK,EAAAL,QAAA;UAACa,aAAa,EAAEZ;QAAI,GAAKU,KAAK;UAAEV,GAAG,EAAEA;QAAI,IAC5CvB,QACI,CAAC;MAEZ,CAAC;IACH,CAAC,CACH,CAAC;EACH;EAEA,MAAMoC,kBAAkB,GAAGA,CAAA,KAAM;IAC/B,MAAMpC,QAAQ,GAAG8B,KAAK,CAACvB,GAAG,CAAEG,IAAI,IAAKA,IAAI,CAAC,CAAC,CAAC;IAE5C,oBAAOlB,KAAA,CAAAS,aAAA,CAACyB,SAAS,EAAKT,IAAI,EAAGjB,QAAoB,CAAC;EACpD,CAAC;EAEDoC,kBAAkB,CAACX,WAAW,GAAGA,WAAW;EAE5C,OAAOW,kBAAkB;AAC3B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,mCAAmCA,CAACb,IASnD,EAAE;EACD,OAAOnB,MAAM,CAACiC,WAAW,CACvBjC,MAAM,CAACC,OAAO,CAACkB,IAAI,CAACI,MAAM,CAACxB,OAAO,CAAC,CAChCG,GAAG,CAACgC,KAAA,IAAiB;IAAA,IAAhB,CAAChB,GAAG,EAAEb,IAAI,CAAC,GAAA6B,KAAA;IACf,MAAMC,YAAuC,GAAG,CAAC,CAAC;IAElD,IAAI,SAAS,IAAI9B,IAAI,EAAE;MACrB,IAAI,OAAOA,IAAI,CAAC+B,OAAO,KAAK,QAAQ,EAAE;QACpCD,YAAY,CAACE,IAAI,GAAGhC,IAAI,CAAC+B,OAAO;MAClC,CAAC,MAAM;QACLpC,MAAM,CAACsC,MAAM,CAACH,YAAY,EAAE9B,IAAI,CAAC+B,OAAO,CAAC;MAC3C;IACF;IAEA,IAAI,QAAQ,IAAI/B,IAAI,EAAE;MACpB8B,YAAY,CAACpC,OAAO,GAAGiC,mCAAmC,CAAC3B,IAAI,CAAC;IAClE,CAAC,MAAM,IACL,QAAQ,IAAIA,IAAI,IAChB,QAAQ,IAAIA,IAAI,CAACI,MAAM,IACvBJ,IAAI,CAACI,MAAM,CAACc,MAAM,CAACxB,OAAO,EAC1B;MACAoC,YAAY,CAACpC,OAAO,GAAGiC,mCAAmC,CACxD3B,IAAI,CAACI,MACP,CAAC;IACH;IAEA,OAAO,CAACS,GAAG,EAAEiB,YAAY,CAAC;EAC5B,CAAC,CAAC,CACDI,MAAM,CAACC,KAAA;IAAA,IAAC,GAAG/B,MAAM,CAAC,GAAA+B,KAAA;IAAA,OAAKxC,MAAM,CAACyC,IAAI,CAAChC,MAAM,CAAC,CAACiC,MAAM,GAAG,CAAC;EAAA,EAC1D,CAAC;AACH"}
|
|
@@ -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"}
|
|
@@ -2,9 +2,8 @@ export function checkDuplicateRouteNames(state) {
|
|
|
2
2
|
const duplicates = [];
|
|
3
3
|
const getRouteNames = (location, state) => {
|
|
4
4
|
state.routes.forEach(route => {
|
|
5
|
-
var _route$state, _route$state$routeNam;
|
|
6
5
|
const currentLocation = location ? `${location} > ${route.name}` : route.name;
|
|
7
|
-
|
|
6
|
+
route.state?.routeNames?.forEach(routeName => {
|
|
8
7
|
if (routeName === route.name) {
|
|
9
8
|
duplicates.push([currentLocation, `${currentLocation} > ${route.name}`]);
|
|
10
9
|
}
|
|
@@ -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,
|
|
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,GAC3B,GAAEA,QAAS,MAAKG,KAAK,CAACE,IAAK,EAAC,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,EACd,GAAEA,eAAgB,MAAKD,KAAK,CAACE,IAAK,EAAC,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"}
|
|
@@ -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,
|
|
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 +1 @@
|
|
|
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,
|
|
1
|
+
{"version":3,"names":["CommonActions","NOT_INITIALIZED_ERROR","createNavigationContainerRef","methods","Object","keys","listeners","removeListener","event","callback","filter","cb","current","ref","value","entries","forEach","_ref","callbacks","addListener","isReady","reduce","acc","name","_len","arguments","length","args","Array","_key","push","console","error"],"sourceRoot":"../../src","sources":["createNavigationContainerRef.tsx"],"mappings":"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"}
|
|
@@ -8,9 +8,6 @@ import { Screen } from './Screen';
|
|
|
8
8
|
* @returns Factory method to create a `Navigator` and `Screen` pair.
|
|
9
9
|
*/
|
|
10
10
|
export function createNavigatorFactory(Navigator) {
|
|
11
|
-
// eslint-disable-next-line no-redeclare
|
|
12
|
-
|
|
13
|
-
// eslint-disable-next-line no-redeclare
|
|
14
11
|
function createNavigator(config) {
|
|
15
12
|
if (config != null) {
|
|
16
13
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Group","Screen","createNavigatorFactory","Navigator","createNavigator","config"],"sourceRoot":"../../src","sources":["createNavigatorFactory.tsx"],"mappings":"AAGA,SAASA,KAAK,QAAQ,SAAS;AAC/B,SAASC,MAAM,QAAQ,UAAU;AAIjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,
|
|
1
|
+
{"version":3,"names":["Group","Screen","createNavigatorFactory","Navigator","createNavigator","config"],"sourceRoot":"../../src","sources":["createNavigatorFactory.tsx"],"mappings":"AAGA,SAASA,KAAK,QAAQ,SAAS;AAC/B,SAASC,MAAM,QAAQ,UAAU;AAIjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,sBAAsBA,CAKpCC,SAA6B,EAAE;EA4B/B,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"}
|
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
export function findFocusedRoute(state) {
|
|
2
|
-
var _current2, _current3;
|
|
3
2
|
let current = state;
|
|
4
|
-
while (
|
|
5
|
-
var _current;
|
|
3
|
+
while (current?.routes[current.index ?? 0].state != null) {
|
|
6
4
|
current = current.routes[current.index ?? 0].state;
|
|
7
5
|
}
|
|
8
|
-
const route =
|
|
6
|
+
const route = current?.routes[current?.index ?? 0];
|
|
9
7
|
return route;
|
|
10
8
|
}
|
|
11
9
|
//# sourceMappingURL=findFocusedRoute.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["findFocusedRoute","state","current","routes","index","route"],"sourceRoot":"../../src","sources":["findFocusedRoute.tsx"],"mappings":"AAEA,OAAO,SAASA,
|
|
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,30 +1,28 @@
|
|
|
1
1
|
export function getActionFromState(state, options) {
|
|
2
|
-
var _normalizedConfig$scr;
|
|
3
2
|
// Create a normalized configs object which will be easier to use
|
|
4
3
|
const normalizedConfig = options ? createNormalizedConfigItem(options) : {};
|
|
5
4
|
const routes = state.index != null ? state.routes.slice(0, state.index + 1) : state.routes;
|
|
6
5
|
if (routes.length === 0) {
|
|
7
6
|
return undefined;
|
|
8
7
|
}
|
|
9
|
-
if (!(routes.length === 1 && routes[0].key === undefined || routes.length === 2 && routes[0].key === undefined && routes[0].name ===
|
|
8
|
+
if (!(routes.length === 1 && routes[0].key === undefined || routes.length === 2 && routes[0].key === undefined && routes[0].name === normalizedConfig?.initialRouteName && routes[1].key === undefined)) {
|
|
10
9
|
return {
|
|
11
10
|
type: 'RESET',
|
|
12
11
|
payload: state
|
|
13
12
|
};
|
|
14
13
|
}
|
|
15
14
|
const route = state.routes[state.index ?? state.routes.length - 1];
|
|
16
|
-
let current = route
|
|
17
|
-
let config = normalizedConfig
|
|
15
|
+
let current = route?.state;
|
|
16
|
+
let config = normalizedConfig?.screens?.[route?.name];
|
|
18
17
|
let params = {
|
|
19
18
|
...route.params
|
|
20
19
|
};
|
|
21
|
-
|
|
20
|
+
const payload = route ? {
|
|
22
21
|
name: route.name,
|
|
23
22
|
path: route.path,
|
|
24
23
|
params
|
|
25
24
|
} : undefined;
|
|
26
25
|
while (current) {
|
|
27
|
-
var _config, _config2, _config2$screens;
|
|
28
26
|
if (current.routes.length === 0) {
|
|
29
27
|
return undefined;
|
|
30
28
|
}
|
|
@@ -41,7 +39,7 @@ export function getActionFromState(state, options) {
|
|
|
41
39
|
if (routes.length === 1 && routes[0].key === undefined) {
|
|
42
40
|
params.initial = true;
|
|
43
41
|
params.screen = route.name;
|
|
44
|
-
} else if (routes.length === 2 && routes[0].key === undefined && routes[0].name ===
|
|
42
|
+
} else if (routes.length === 2 && routes[0].key === undefined && routes[0].name === config?.initialRouteName && routes[1].key === undefined) {
|
|
45
43
|
params.initial = false;
|
|
46
44
|
params.screen = route.name;
|
|
47
45
|
} else {
|
|
@@ -58,7 +56,7 @@ export function getActionFromState(state, options) {
|
|
|
58
56
|
params.params = route.params;
|
|
59
57
|
}
|
|
60
58
|
current = route.state;
|
|
61
|
-
config =
|
|
59
|
+
config = config?.screens?.[route.name];
|
|
62
60
|
}
|
|
63
61
|
if (!payload) {
|
|
64
62
|
return;
|
|
@@ -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","k","v"],"sourceRoot":"../../src","sources":["getActionFromState.tsx"],"mappings":"AA8BA,OAAO,SAASA,
|
|
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","_ref","k","v"],"sourceRoot":"../../src","sources":["getActionFromState.tsx"],"mappings":"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"}
|
|
@@ -10,7 +10,7 @@ export function getFocusedRouteNameFromRoute(route) {
|
|
|
10
10
|
// The type property will only exist for rehydrated state and not for state from deep link
|
|
11
11
|
state.index ?? (typeof state.type === 'string' && state.type !== 'stack' ? 0 : state.routes.length - 1)].name :
|
|
12
12
|
// If state doesn't exist, we need to default to `screen` param if available
|
|
13
|
-
typeof
|
|
13
|
+
typeof params?.screen === 'string' ? params.screen : undefined;
|
|
14
14
|
return routeName;
|
|
15
15
|
}
|
|
16
16
|
//# sourceMappingURL=getFocusedRouteNameFromRoute.js.map
|
|
@@ -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,
|
|
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,5 +1,4 @@
|
|
|
1
1
|
import * as queryString from 'query-string';
|
|
2
|
-
import { fromEntries } from './fromEntries';
|
|
3
2
|
import { validatePathConfig } from './validatePathConfig';
|
|
4
3
|
const getActiveRoute = state => {
|
|
5
4
|
const route = typeof state.index === 'number' ? state.routes[state.index] : state.routes[state.routes.length - 1];
|
|
@@ -47,7 +46,7 @@ export function getPathFromState(state, options) {
|
|
|
47
46
|
}
|
|
48
47
|
|
|
49
48
|
// Create a normalized configs object which will be easier to use
|
|
50
|
-
const configs = options
|
|
49
|
+
const configs = options?.screens ? createNormalizedConfigs(options?.screens) : {};
|
|
51
50
|
let path = '/';
|
|
52
51
|
let current = state;
|
|
53
52
|
const allParams = {};
|
|
@@ -56,33 +55,31 @@ export function getPathFromState(state, options) {
|
|
|
56
55
|
let route = current.routes[index];
|
|
57
56
|
let pattern;
|
|
58
57
|
let focusedParams;
|
|
59
|
-
|
|
58
|
+
const focusedRoute = getActiveRoute(state);
|
|
60
59
|
let currentOptions = configs;
|
|
61
60
|
|
|
62
61
|
// Keep all the route names that appeared during going deeper in config in case the pattern is resolved to undefined
|
|
63
|
-
|
|
62
|
+
const nestedRouteNames = [];
|
|
64
63
|
let hasNext = true;
|
|
65
64
|
while (route.name in currentOptions && hasNext) {
|
|
66
65
|
pattern = currentOptions[route.name].pattern;
|
|
67
66
|
nestedRouteNames.push(route.name);
|
|
68
67
|
if (route.params) {
|
|
69
|
-
|
|
70
|
-
const
|
|
71
|
-
const currentParams = fromEntries(Object.entries(route.params).map(_ref => {
|
|
68
|
+
const stringify = currentOptions[route.name]?.stringify;
|
|
69
|
+
const currentParams = Object.fromEntries(Object.entries(route.params).map(_ref => {
|
|
72
70
|
let [key, value] = _ref;
|
|
73
|
-
return [key, stringify
|
|
71
|
+
return [key, stringify?.[key] ? stringify[key](value) : String(value)];
|
|
74
72
|
}));
|
|
75
73
|
if (pattern) {
|
|
76
74
|
Object.assign(allParams, currentParams);
|
|
77
75
|
}
|
|
78
76
|
if (focusedRoute === route) {
|
|
79
|
-
var _pattern;
|
|
80
77
|
// If this is the focused route, keep the params for later use
|
|
81
78
|
// We save it here since it's been stringified already
|
|
82
79
|
focusedParams = {
|
|
83
80
|
...currentParams
|
|
84
81
|
};
|
|
85
|
-
|
|
82
|
+
pattern?.split('/').filter(p => p.startsWith(':'))
|
|
86
83
|
// eslint-disable-next-line no-loop-func
|
|
87
84
|
.forEach(p => {
|
|
88
85
|
const name = getParamName(p);
|
|
@@ -135,7 +132,10 @@ export function getPathFromState(state, options) {
|
|
|
135
132
|
// Optional params without value assigned in route.params should be ignored
|
|
136
133
|
return '';
|
|
137
134
|
}
|
|
138
|
-
|
|
135
|
+
|
|
136
|
+
// Valid characters according to
|
|
137
|
+
// https://datatracker.ietf.org/doc/html/rfc3986#section-3.3 (see pchar definition)
|
|
138
|
+
return String(value).replace(/[^A-Za-z0-9\-._~!$&'()*+,;=:@]/g, char => encodeURIComponent(char));
|
|
139
139
|
}
|
|
140
140
|
return encodeURIComponent(p);
|
|
141
141
|
}).join('/');
|
|
@@ -148,7 +148,7 @@ export function getPathFromState(state, options) {
|
|
|
148
148
|
if (route.state) {
|
|
149
149
|
path += '/';
|
|
150
150
|
} else if (focusedParams) {
|
|
151
|
-
for (
|
|
151
|
+
for (const param in focusedParams) {
|
|
152
152
|
if (focusedParams[param] === 'undefined') {
|
|
153
153
|
// eslint-disable-next-line @typescript-eslint/no-dynamic-delete
|
|
154
154
|
delete focusedParams[param];
|
|
@@ -167,6 +167,11 @@ export function getPathFromState(state, options) {
|
|
|
167
167
|
// Remove multiple as well as trailing slashes
|
|
168
168
|
path = path.replace(/\/+/g, '/');
|
|
169
169
|
path = path.length > 1 ? path.replace(/\/$/, '') : path;
|
|
170
|
+
|
|
171
|
+
// Include the root path if specified
|
|
172
|
+
if (options?.path) {
|
|
173
|
+
path = joinPaths(options.path, path);
|
|
174
|
+
}
|
|
170
175
|
return path;
|
|
171
176
|
}
|
|
172
177
|
const getParamName = pattern => pattern.replace(/^:/, '').replace(/\?$/, '');
|
|
@@ -177,7 +182,6 @@ const joinPaths = function () {
|
|
|
177
182
|
return [].concat(...paths.map(p => p.split('/'))).filter(Boolean).join('/');
|
|
178
183
|
};
|
|
179
184
|
const createConfigItem = (config, parentPattern) => {
|
|
180
|
-
var _pattern2;
|
|
181
185
|
if (typeof config === 'string') {
|
|
182
186
|
// If a string is specified as the value of the key(e.g. Foo: '/path'), use it as the pattern
|
|
183
187
|
const pattern = parentPattern ? joinPaths(parentPattern, config) : config;
|
|
@@ -185,23 +189,22 @@ const createConfigItem = (config, parentPattern) => {
|
|
|
185
189
|
pattern
|
|
186
190
|
};
|
|
187
191
|
}
|
|
188
|
-
|
|
189
|
-
// If an object is specified as the value (e.g. Foo: { ... }),
|
|
190
|
-
// It can have `path` property and `screens` prop which has nested configs
|
|
191
|
-
let pattern;
|
|
192
192
|
if (config.exact && config.path === undefined) {
|
|
193
193
|
throw new Error("A 'path' needs to be specified when specifying 'exact: true'. If you don't want this screen in the URL, specify it as empty string, e.g. `path: ''`.");
|
|
194
194
|
}
|
|
195
|
-
|
|
195
|
+
|
|
196
|
+
// If an object is specified as the value (e.g. Foo: { ... }),
|
|
197
|
+
// It can have `path` property and `screens` prop which has nested configs
|
|
198
|
+
const pattern = config.exact !== true ? joinPaths(parentPattern || '', config.path || '') : config.path || '';
|
|
196
199
|
const screens = config.screens ? createNormalizedConfigs(config.screens, pattern) : undefined;
|
|
197
200
|
return {
|
|
198
201
|
// Normalize pattern to remove any leading, trailing slashes, duplicate slashes etc.
|
|
199
|
-
pattern:
|
|
202
|
+
pattern: pattern?.split('/').filter(Boolean).join('/'),
|
|
200
203
|
stringify: config.stringify,
|
|
201
204
|
screens
|
|
202
205
|
};
|
|
203
206
|
};
|
|
204
|
-
const createNormalizedConfigs = (options, pattern) => fromEntries(Object.entries(options).map(_ref2 => {
|
|
207
|
+
const createNormalizedConfigs = (options, pattern) => Object.fromEntries(Object.entries(options).map(_ref2 => {
|
|
205
208
|
let [name, c] = _ref2;
|
|
206
209
|
const result = createConfigItem(c, pattern);
|
|
207
210
|
return [name, result];
|