@react-navigation/core 6.0.2
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/LICENSE +21 -0
- package/README.md +38 -0
- package/lib/commonjs/BaseNavigationContainer.js +393 -0
- package/lib/commonjs/BaseNavigationContainer.js.map +1 -0
- package/lib/commonjs/CurrentRenderContext.js +21 -0
- package/lib/commonjs/CurrentRenderContext.js.map +1 -0
- package/lib/commonjs/EnsureSingleNavigator.js +53 -0
- package/lib/commonjs/EnsureSingleNavigator.js.map +1 -0
- package/lib/commonjs/Group.js +15 -0
- package/lib/commonjs/Group.js.map +1 -0
- package/lib/commonjs/NavigationBuilderContext.js +23 -0
- package/lib/commonjs/NavigationBuilderContext.js.map +1 -0
- package/lib/commonjs/NavigationContainerRefContext.js +20 -0
- package/lib/commonjs/NavigationContainerRefContext.js.map +1 -0
- package/lib/commonjs/NavigationContext.js +20 -0
- package/lib/commonjs/NavigationContext.js.map +1 -0
- package/lib/commonjs/NavigationHelpersContext.js +21 -0
- package/lib/commonjs/NavigationHelpersContext.js.map +1 -0
- package/lib/commonjs/NavigationRouteContext.js +20 -0
- package/lib/commonjs/NavigationRouteContext.js.map +1 -0
- package/lib/commonjs/NavigationStateContext.js +42 -0
- package/lib/commonjs/NavigationStateContext.js.map +1 -0
- package/lib/commonjs/SceneView.js +97 -0
- package/lib/commonjs/SceneView.js.map +1 -0
- package/lib/commonjs/Screen.js +15 -0
- package/lib/commonjs/Screen.js.map +1 -0
- package/lib/commonjs/StaticContainer.js +43 -0
- package/lib/commonjs/StaticContainer.js.map +1 -0
- package/lib/commonjs/UnhandledActionContext.js +17 -0
- package/lib/commonjs/UnhandledActionContext.js.map +1 -0
- package/lib/commonjs/checkDuplicateRouteNames.js +31 -0
- package/lib/commonjs/checkDuplicateRouteNames.js.map +1 -0
- package/lib/commonjs/checkSerializable.js +59 -0
- package/lib/commonjs/checkSerializable.js.map +1 -0
- package/lib/commonjs/createNavigationContainerRef.js +82 -0
- package/lib/commonjs/createNavigationContainerRef.js.map +1 -0
- package/lib/commonjs/createNavigatorFactory.js +34 -0
- package/lib/commonjs/createNavigatorFactory.js.map +1 -0
- package/lib/commonjs/findFocusedRoute.js +22 -0
- package/lib/commonjs/findFocusedRoute.js.map +1 -0
- package/lib/commonjs/fromEntries.js +19 -0
- package/lib/commonjs/fromEntries.js.map +1 -0
- package/lib/commonjs/getActionFromState.js +99 -0
- package/lib/commonjs/getActionFromState.js.map +1 -0
- package/lib/commonjs/getFocusedRouteNameFromRoute.js +23 -0
- package/lib/commonjs/getFocusedRouteNameFromRoute.js.map +1 -0
- package/lib/commonjs/getPathFromState.js +238 -0
- package/lib/commonjs/getPathFromState.js.map +1 -0
- package/lib/commonjs/getStateFromPath.js +450 -0
- package/lib/commonjs/getStateFromPath.js.map +1 -0
- package/lib/commonjs/index.js +227 -0
- package/lib/commonjs/index.js.map +1 -0
- package/lib/commonjs/isArrayEqual.js +15 -0
- package/lib/commonjs/isArrayEqual.js.map +1 -0
- package/lib/commonjs/types.js +18 -0
- package/lib/commonjs/types.js.map +1 -0
- package/lib/commonjs/useChildListeners.js +38 -0
- package/lib/commonjs/useChildListeners.js.map +1 -0
- package/lib/commonjs/useComponent.js +36 -0
- package/lib/commonjs/useComponent.js.map +1 -0
- package/lib/commonjs/useCurrentRender.js +33 -0
- package/lib/commonjs/useCurrentRender.js.map +1 -0
- package/lib/commonjs/useDescriptors.js +141 -0
- package/lib/commonjs/useDescriptors.js.map +1 -0
- package/lib/commonjs/useEventEmitter.js +118 -0
- package/lib/commonjs/useEventEmitter.js.map +1 -0
- package/lib/commonjs/useFocusEffect.js +97 -0
- package/lib/commonjs/useFocusEffect.js.map +1 -0
- package/lib/commonjs/useFocusEvents.js +77 -0
- package/lib/commonjs/useFocusEvents.js.map +1 -0
- package/lib/commonjs/useFocusedListenersChildrenAdapter.js +57 -0
- package/lib/commonjs/useFocusedListenersChildrenAdapter.js.map +1 -0
- package/lib/commonjs/useIsFocused.js +47 -0
- package/lib/commonjs/useIsFocused.js.map +1 -0
- package/lib/commonjs/useKeyedChildListeners.js +35 -0
- package/lib/commonjs/useKeyedChildListeners.js.map +1 -0
- package/lib/commonjs/useNavigation.js +36 -0
- package/lib/commonjs/useNavigation.js.map +1 -0
- package/lib/commonjs/useNavigationBuilder.js +480 -0
- package/lib/commonjs/useNavigationBuilder.js.map +1 -0
- package/lib/commonjs/useNavigationCache.js +122 -0
- package/lib/commonjs/useNavigationCache.js.map +1 -0
- package/lib/commonjs/useNavigationContainerRef.js +27 -0
- package/lib/commonjs/useNavigationContainerRef.js.map +1 -0
- package/lib/commonjs/useNavigationHelpers.js +77 -0
- package/lib/commonjs/useNavigationHelpers.js.map +1 -0
- package/lib/commonjs/useNavigationState.js +41 -0
- package/lib/commonjs/useNavigationState.js.map +1 -0
- package/lib/commonjs/useOnAction.js +118 -0
- package/lib/commonjs/useOnAction.js.map +1 -0
- package/lib/commonjs/useOnGetState.js +60 -0
- package/lib/commonjs/useOnGetState.js.map +1 -0
- package/lib/commonjs/useOnPreventRemove.js +89 -0
- package/lib/commonjs/useOnPreventRemove.js.map +1 -0
- package/lib/commonjs/useOnRouteFocus.js +45 -0
- package/lib/commonjs/useOnRouteFocus.js.map +1 -0
- package/lib/commonjs/useOptionsGetters.js +99 -0
- package/lib/commonjs/useOptionsGetters.js.map +1 -0
- package/lib/commonjs/useRegisterNavigator.js +40 -0
- package/lib/commonjs/useRegisterNavigator.js.map +1 -0
- package/lib/commonjs/useRoute.js +32 -0
- package/lib/commonjs/useRoute.js.map +1 -0
- package/lib/commonjs/useRouteCache.js +61 -0
- package/lib/commonjs/useRouteCache.js.map +1 -0
- package/lib/commonjs/useScheduleUpdate.js +44 -0
- package/lib/commonjs/useScheduleUpdate.js.map +1 -0
- package/lib/commonjs/useSyncState.js +76 -0
- package/lib/commonjs/useSyncState.js.map +1 -0
- package/lib/commonjs/validatePathConfig.js +31 -0
- package/lib/commonjs/validatePathConfig.js.map +1 -0
- package/lib/module/BaseNavigationContainer.js +360 -0
- package/lib/module/BaseNavigationContainer.js.map +1 -0
- package/lib/module/CurrentRenderContext.js +9 -0
- package/lib/module/CurrentRenderContext.js.map +1 -0
- package/lib/module/EnsureSingleNavigator.js +38 -0
- package/lib/module/EnsureSingleNavigator.js.map +1 -0
- package/lib/module/Group.js +8 -0
- package/lib/module/Group.js.map +1 -0
- package/lib/module/NavigationBuilderContext.js +11 -0
- package/lib/module/NavigationBuilderContext.js.map +1 -0
- package/lib/module/NavigationContainerRefContext.js +8 -0
- package/lib/module/NavigationContainerRefContext.js.map +1 -0
- package/lib/module/NavigationContext.js +8 -0
- package/lib/module/NavigationContext.js.map +1 -0
- package/lib/module/NavigationHelpersContext.js +9 -0
- package/lib/module/NavigationHelpersContext.js.map +1 -0
- package/lib/module/NavigationRouteContext.js +8 -0
- package/lib/module/NavigationRouteContext.js.map +1 -0
- package/lib/module/NavigationStateContext.js +27 -0
- package/lib/module/NavigationStateContext.js.map +1 -0
- package/lib/module/SceneView.js +80 -0
- package/lib/module/SceneView.js.map +1 -0
- package/lib/module/Screen.js +8 -0
- package/lib/module/Screen.js.map +1 -0
- package/lib/module/StaticContainer.js +30 -0
- package/lib/module/StaticContainer.js.map +1 -0
- package/lib/module/UnhandledActionContext.js +4 -0
- package/lib/module/UnhandledActionContext.js.map +1 -0
- package/lib/module/checkDuplicateRouteNames.js +24 -0
- package/lib/module/checkDuplicateRouteNames.js.map +1 -0
- package/lib/module/checkSerializable.js +52 -0
- package/lib/module/checkSerializable.js.map +1 -0
- package/lib/module/createNavigationContainerRef.js +71 -0
- package/lib/module/createNavigationContainerRef.js.map +1 -0
- package/lib/module/createNavigatorFactory.js +24 -0
- package/lib/module/createNavigatorFactory.js.map +1 -0
- package/lib/module/findFocusedRoute.js +15 -0
- package/lib/module/findFocusedRoute.js.map +1 -0
- package/lib/module/fromEntries.js +12 -0
- package/lib/module/fromEntries.js.map +1 -0
- package/lib/module/getActionFromState.js +92 -0
- package/lib/module/getActionFromState.js.map +1 -0
- package/lib/module/getFocusedRouteNameFromRoute.js +15 -0
- package/lib/module/getFocusedRouteNameFromRoute.js.map +1 -0
- package/lib/module/getPathFromState.js +223 -0
- package/lib/module/getPathFromState.js.map +1 -0
- package/lib/module/getStateFromPath.js +434 -0
- package/lib/module/getStateFromPath.js.map +1 -0
- package/lib/module/index.js +24 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/isArrayEqual.js +8 -0
- package/lib/module/isArrayEqual.js.map +1 -0
- package/lib/module/types.js +9 -0
- package/lib/module/types.js.map +1 -0
- package/lib/module/useChildListeners.js +27 -0
- package/lib/module/useChildListeners.js.map +1 -0
- package/lib/module/useComponent.js +24 -0
- package/lib/module/useComponent.js.map +1 -0
- package/lib/module/useCurrentRender.js +19 -0
- package/lib/module/useCurrentRender.js.map +1 -0
- package/lib/module/useDescriptors.js +122 -0
- package/lib/module/useDescriptors.js.map +1 -0
- package/lib/module/useEventEmitter.js +107 -0
- package/lib/module/useEventEmitter.js.map +1 -0
- package/lib/module/useFocusEffect.js +83 -0
- package/lib/module/useFocusEffect.js.map +1 -0
- package/lib/module/useFocusEvents.js +63 -0
- package/lib/module/useFocusEvents.js.map +1 -0
- package/lib/module/useFocusedListenersChildrenAdapter.js +43 -0
- package/lib/module/useFocusedListenersChildrenAdapter.js.map +1 -0
- package/lib/module/useIsFocused.js +34 -0
- package/lib/module/useIsFocused.js.map +1 -0
- package/lib/module/useKeyedChildListeners.js +24 -0
- package/lib/module/useKeyedChildListeners.js.map +1 -0
- package/lib/module/useNavigation.js +21 -0
- package/lib/module/useNavigation.js.map +1 -0
- package/lib/module/useNavigationBuilder.js +443 -0
- package/lib/module/useNavigationBuilder.js.map +1 -0
- package/lib/module/useNavigationCache.js +107 -0
- package/lib/module/useNavigationCache.js.map +1 -0
- package/lib/module/useNavigationContainerRef.js +12 -0
- package/lib/module/useNavigationContainerRef.js.map +1 -0
- package/lib/module/useNavigationHelpers.js +59 -0
- package/lib/module/useNavigationHelpers.js.map +1 -0
- package/lib/module/useNavigationState.js +27 -0
- package/lib/module/useNavigationState.js.map +1 -0
- package/lib/module/useOnAction.js +103 -0
- package/lib/module/useOnAction.js.map +1 -0
- package/lib/module/useOnGetState.js +43 -0
- package/lib/module/useOnGetState.js.map +1 -0
- package/lib/module/useOnPreventRemove.js +68 -0
- package/lib/module/useOnPreventRemove.js.map +1 -0
- package/lib/module/useOnRouteFocus.js +31 -0
- package/lib/module/useOnRouteFocus.js.map +1 -0
- package/lib/module/useOptionsGetters.js +83 -0
- package/lib/module/useOptionsGetters.js.map +1 -0
- package/lib/module/useRegisterNavigator.js +27 -0
- package/lib/module/useRegisterNavigator.js.map +1 -0
- package/lib/module/useRoute.js +18 -0
- package/lib/module/useRoute.js.map +1 -0
- package/lib/module/useRouteCache.js +47 -0
- package/lib/module/useRouteCache.js.map +1 -0
- package/lib/module/useScheduleUpdate.js +29 -0
- package/lib/module/useScheduleUpdate.js.map +1 -0
- package/lib/module/useSyncState.js +64 -0
- package/lib/module/useSyncState.js.map +1 -0
- package/lib/module/validatePathConfig.js +24 -0
- package/lib/module/validatePathConfig.js.map +1 -0
- package/lib/typescript/src/BaseNavigationContainer.d.ts +14 -0
- package/lib/typescript/src/CurrentRenderContext.d.ts +9 -0
- package/lib/typescript/src/EnsureSingleNavigator.d.ts +13 -0
- package/lib/typescript/src/Group.d.ts +6 -0
- package/lib/typescript/src/NavigationBuilderContext.d.ts +34 -0
- package/lib/typescript/src/NavigationContainerRefContext.d.ts +8 -0
- package/lib/typescript/src/NavigationContext.d.ts +24 -0
- package/lib/typescript/src/NavigationHelpersContext.d.ts +9 -0
- package/lib/typescript/src/NavigationRouteContext.d.ts +7 -0
- package/lib/typescript/src/NavigationStateContext.d.ts +45 -0
- package/lib/typescript/src/SceneView.d.ts +21 -0
- package/lib/typescript/src/Screen.d.ts +6 -0
- package/lib/typescript/src/StaticContainer.d.ts +7 -0
- package/lib/typescript/src/UnhandledActionContext.d.ts +4 -0
- package/lib/typescript/src/checkDuplicateRouteNames.d.ts +2 -0
- package/lib/typescript/src/checkSerializable.d.ts +9 -0
- package/lib/typescript/src/createNavigationContainerRef.d.ts +3 -0
- package/lib/typescript/src/createNavigatorFactory.d.ts +11 -0
- package/lib/typescript/src/findFocusedRoute.d.ts +22 -0
- package/lib/typescript/src/fromEntries.d.ts +1 -0
- package/lib/typescript/src/getActionFromState.d.ts +16 -0
- package/lib/typescript/src/getFocusedRouteNameFromRoute.d.ts +2 -0
- package/lib/typescript/src/getPathFromState.d.ts +38 -0
- package/lib/typescript/src/getStateFromPath.d.ts +32 -0
- package/lib/typescript/src/index.d.ts +23 -0
- package/lib/typescript/src/isArrayEqual.d.ts +5 -0
- package/lib/typescript/src/types.d.ts +485 -0
- package/lib/typescript/src/useChildListeners.d.ts +11 -0
- package/lib/typescript/src/useComponent.d.ts +2 -0
- package/lib/typescript/src/useCurrentRender.d.ts +13 -0
- package/lib/typescript/src/useDescriptors.d.ts +89 -0
- package/lib/typescript/src/useEventEmitter.d.ts +8 -0
- package/lib/typescript/src/useFocusEffect.d.ts +10 -0
- package/lib/typescript/src/useFocusEvents.d.ts +12 -0
- package/lib/typescript/src/useFocusedListenersChildrenAdapter.d.ts +12 -0
- package/lib/typescript/src/useIsFocused.d.ts +5 -0
- package/lib/typescript/src/useKeyedChildListeners.d.ts +11 -0
- package/lib/typescript/src/useNavigation.d.ts +7 -0
- package/lib/typescript/src/useNavigationBuilder.d.ts +223 -0
- package/lib/typescript/src/useNavigationCache.d.ts +19 -0
- package/lib/typescript/src/useNavigationContainerRef.d.ts +2 -0
- package/lib/typescript/src/useNavigationHelpers.d.ts +174 -0
- package/lib/typescript/src/useNavigationState.d.ts +9 -0
- package/lib/typescript/src/useOnAction.d.ts +25 -0
- package/lib/typescript/src/useOnGetState.d.ts +8 -0
- package/lib/typescript/src/useOnPreventRemove.d.ts +16 -0
- package/lib/typescript/src/useOnRouteFocus.d.ts +14 -0
- package/lib/typescript/src/useOptionsGetters.d.ts +12 -0
- package/lib/typescript/src/useRegisterNavigator.d.ts +5 -0
- package/lib/typescript/src/useRoute.d.ts +8 -0
- package/lib/typescript/src/useRouteCache.d.ts +13 -0
- package/lib/typescript/src/useScheduleUpdate.d.ts +13 -0
- package/lib/typescript/src/useSyncState.d.ts +4 -0
- package/lib/typescript/src/validatePathConfig.d.ts +1 -0
- package/package.json +73 -0
- package/src/BaseNavigationContainer.tsx +453 -0
- package/src/CurrentRenderContext.tsx +10 -0
- package/src/EnsureSingleNavigator.tsx +53 -0
- package/src/Group.tsx +14 -0
- package/src/NavigationBuilderContext.tsx +70 -0
- package/src/NavigationContainerRefContext.tsx +14 -0
- package/src/NavigationContext.tsx +12 -0
- package/src/NavigationHelpersContext.tsx +13 -0
- package/src/NavigationRouteContext.tsx +10 -0
- package/src/NavigationStateContext.tsx +39 -0
- package/src/SceneView.tsx +134 -0
- package/src/Screen.tsx +17 -0
- package/src/StaticContainer.tsx +29 -0
- package/src/UnhandledActionContext.tsx +9 -0
- package/src/checkDuplicateRouteNames.tsx +33 -0
- package/src/checkSerializable.tsx +74 -0
- package/src/createNavigationContainerRef.tsx +97 -0
- package/src/createNavigatorFactory.tsx +40 -0
- package/src/findFocusedRoute.tsx +13 -0
- package/src/fromEntries.tsx +13 -0
- package/src/getActionFromState.tsx +154 -0
- package/src/getFocusedRouteNameFromRoute.tsx +28 -0
- package/src/getPathFromState.tsx +297 -0
- package/src/getStateFromPath.tsx +575 -0
- package/src/index.tsx +23 -0
- package/src/isArrayEqual.tsx +7 -0
- package/src/types.tsx +645 -0
- package/src/useChildListeners.tsx +37 -0
- package/src/useComponent.tsx +30 -0
- package/src/useCurrentRender.tsx +35 -0
- package/src/useDescriptors.tsx +229 -0
- package/src/useEventEmitter.tsx +130 -0
- package/src/useFocusEffect.tsx +112 -0
- package/src/useFocusEvents.tsx +73 -0
- package/src/useFocusedListenersChildrenAdapter.tsx +47 -0
- package/src/useIsFocused.tsx +43 -0
- package/src/useKeyedChildListeners.tsx +40 -0
- package/src/useNavigation.tsx +26 -0
- package/src/useNavigationBuilder.tsx +640 -0
- package/src/useNavigationCache.tsx +159 -0
- package/src/useNavigationContainerRef.tsx +17 -0
- package/src/useNavigationHelpers.tsx +98 -0
- package/src/useNavigationState.tsx +41 -0
- package/src/useOnAction.tsx +166 -0
- package/src/useOnGetState.tsx +47 -0
- package/src/useOnPreventRemove.tsx +99 -0
- package/src/useOnRouteFocus.tsx +47 -0
- package/src/useOptionsGetters.tsx +98 -0
- package/src/useRegisterNavigator.tsx +29 -0
- package/src/useRoute.tsx +22 -0
- package/src/useRouteCache.tsx +55 -0
- package/src/useScheduleUpdate.tsx +32 -0
- package/src/useSyncState.tsx +74 -0
- package/src/validatePathConfig.tsx +32 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2017 React Navigation Contributors
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# `@react-navigation/core`
|
|
2
|
+
|
|
3
|
+
Core utilities for building navigators independent of the platform.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
Open a Terminal in your project's folder and run,
|
|
8
|
+
|
|
9
|
+
```sh
|
|
10
|
+
yarn add @react-navigation/core
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
## Usage
|
|
14
|
+
|
|
15
|
+
A basic custom navigator bundling a router and a view looks like this:
|
|
16
|
+
|
|
17
|
+
```js
|
|
18
|
+
import { createNavigatorFactory, useNavigationBuilder } from '@react-navigation/core';
|
|
19
|
+
import { StackRouter } from '@react-navigation/routers';
|
|
20
|
+
|
|
21
|
+
function StackNavigator({ initialRouteName, children, ...rest }) {
|
|
22
|
+
const { state, navigation, descriptors } = useNavigationBuilder(StackRouter, {
|
|
23
|
+
initialRouteName,
|
|
24
|
+
children,
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
return (
|
|
28
|
+
<StackView
|
|
29
|
+
state={state}
|
|
30
|
+
navigation={navigation}
|
|
31
|
+
descriptors={descriptors}
|
|
32
|
+
{...rest}
|
|
33
|
+
/>
|
|
34
|
+
);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export default createNavigatorFactory(StackNavigator);
|
|
38
|
+
```
|
|
@@ -0,0 +1,393 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
var _routers = require("@react-navigation/routers");
|
|
9
|
+
|
|
10
|
+
var React = _interopRequireWildcard(require("react"));
|
|
11
|
+
|
|
12
|
+
var _checkDuplicateRouteNames = _interopRequireDefault(require("./checkDuplicateRouteNames"));
|
|
13
|
+
|
|
14
|
+
var _checkSerializable = _interopRequireDefault(require("./checkSerializable"));
|
|
15
|
+
|
|
16
|
+
var _createNavigationContainerRef = require("./createNavigationContainerRef");
|
|
17
|
+
|
|
18
|
+
var _EnsureSingleNavigator = _interopRequireDefault(require("./EnsureSingleNavigator"));
|
|
19
|
+
|
|
20
|
+
var _findFocusedRoute = _interopRequireDefault(require("./findFocusedRoute"));
|
|
21
|
+
|
|
22
|
+
var _NavigationBuilderContext = _interopRequireDefault(require("./NavigationBuilderContext"));
|
|
23
|
+
|
|
24
|
+
var _NavigationContainerRefContext = _interopRequireDefault(require("./NavigationContainerRefContext"));
|
|
25
|
+
|
|
26
|
+
var _NavigationContext = _interopRequireDefault(require("./NavigationContext"));
|
|
27
|
+
|
|
28
|
+
var _NavigationRouteContext = _interopRequireDefault(require("./NavigationRouteContext"));
|
|
29
|
+
|
|
30
|
+
var _NavigationStateContext = _interopRequireDefault(require("./NavigationStateContext"));
|
|
31
|
+
|
|
32
|
+
var _UnhandledActionContext = _interopRequireDefault(require("./UnhandledActionContext"));
|
|
33
|
+
|
|
34
|
+
var _useChildListeners = _interopRequireDefault(require("./useChildListeners"));
|
|
35
|
+
|
|
36
|
+
var _useEventEmitter = _interopRequireDefault(require("./useEventEmitter"));
|
|
37
|
+
|
|
38
|
+
var _useKeyedChildListeners = _interopRequireDefault(require("./useKeyedChildListeners"));
|
|
39
|
+
|
|
40
|
+
var _useOptionsGetters = _interopRequireDefault(require("./useOptionsGetters"));
|
|
41
|
+
|
|
42
|
+
var _useScheduleUpdate = require("./useScheduleUpdate");
|
|
43
|
+
|
|
44
|
+
var _useSyncState = _interopRequireDefault(require("./useSyncState"));
|
|
45
|
+
|
|
46
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
47
|
+
|
|
48
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
49
|
+
|
|
50
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
51
|
+
|
|
52
|
+
const serializableWarnings = [];
|
|
53
|
+
const duplicateNameWarnings = [];
|
|
54
|
+
/**
|
|
55
|
+
* Remove `key` and `routeNames` from the state objects recursively to get partial state.
|
|
56
|
+
*
|
|
57
|
+
* @param state Initial state object.
|
|
58
|
+
*/
|
|
59
|
+
|
|
60
|
+
const getPartialState = state => {
|
|
61
|
+
if (state === undefined) {
|
|
62
|
+
return;
|
|
63
|
+
} // eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
const {
|
|
67
|
+
key,
|
|
68
|
+
routeNames,
|
|
69
|
+
...partialState
|
|
70
|
+
} = state;
|
|
71
|
+
return { ...partialState,
|
|
72
|
+
stale: true,
|
|
73
|
+
routes: state.routes.map(route => {
|
|
74
|
+
if (route.state === undefined) {
|
|
75
|
+
return route;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
return { ...route,
|
|
79
|
+
state: getPartialState(route.state)
|
|
80
|
+
};
|
|
81
|
+
})
|
|
82
|
+
};
|
|
83
|
+
};
|
|
84
|
+
/**
|
|
85
|
+
* Container component which holds the navigation state.
|
|
86
|
+
* This should be rendered at the root wrapping the whole app.
|
|
87
|
+
*
|
|
88
|
+
* @param props.initialState Initial state object for the navigation tree.
|
|
89
|
+
* @param props.onStateChange Callback which is called with the latest navigation state when it changes.
|
|
90
|
+
* @param props.children Child elements to render the content.
|
|
91
|
+
* @param props.ref Ref object which refers to the navigation object containing helper methods.
|
|
92
|
+
*/
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
const BaseNavigationContainer = /*#__PURE__*/React.forwardRef(function BaseNavigationContainer({
|
|
96
|
+
initialState,
|
|
97
|
+
onStateChange,
|
|
98
|
+
onUnhandledAction,
|
|
99
|
+
independent,
|
|
100
|
+
children
|
|
101
|
+
}, ref) {
|
|
102
|
+
const parent = React.useContext(_NavigationStateContext.default);
|
|
103
|
+
|
|
104
|
+
if (!parent.isDefault && !independent) {
|
|
105
|
+
throw new Error("Looks like you have nested a 'NavigationContainer' inside another. Normally you need only one container at the root of the app, so this was probably an error. If this was intentional, pass 'independent={true}' explicitly. Note that this will make the child navigators disconnected from the parent and you won't be able to navigate between them.");
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
const [state, getState, setState, scheduleUpdate, flushUpdates] = (0, _useSyncState.default)(() => getPartialState(initialState == null ? undefined : initialState));
|
|
109
|
+
const isFirstMountRef = React.useRef(true);
|
|
110
|
+
const navigatorKeyRef = React.useRef();
|
|
111
|
+
const getKey = React.useCallback(() => navigatorKeyRef.current, []);
|
|
112
|
+
const setKey = React.useCallback(key => {
|
|
113
|
+
navigatorKeyRef.current = key;
|
|
114
|
+
}, []);
|
|
115
|
+
const {
|
|
116
|
+
listeners,
|
|
117
|
+
addListener
|
|
118
|
+
} = (0, _useChildListeners.default)();
|
|
119
|
+
const {
|
|
120
|
+
keyedListeners,
|
|
121
|
+
addKeyedListener
|
|
122
|
+
} = (0, _useKeyedChildListeners.default)();
|
|
123
|
+
const dispatch = React.useCallback(action => {
|
|
124
|
+
if (listeners.focus[0] == null) {
|
|
125
|
+
console.error(_createNavigationContainerRef.NOT_INITIALIZED_ERROR);
|
|
126
|
+
} else {
|
|
127
|
+
listeners.focus[0](navigation => navigation.dispatch(action));
|
|
128
|
+
}
|
|
129
|
+
}, [listeners.focus]);
|
|
130
|
+
const canGoBack = React.useCallback(() => {
|
|
131
|
+
if (listeners.focus[0] == null) {
|
|
132
|
+
return false;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
const {
|
|
136
|
+
result,
|
|
137
|
+
handled
|
|
138
|
+
} = listeners.focus[0](navigation => navigation.canGoBack());
|
|
139
|
+
|
|
140
|
+
if (handled) {
|
|
141
|
+
return result;
|
|
142
|
+
} else {
|
|
143
|
+
return false;
|
|
144
|
+
}
|
|
145
|
+
}, [listeners.focus]);
|
|
146
|
+
const resetRoot = React.useCallback(state => {
|
|
147
|
+
var _state$key, _keyedListeners$getSt, _keyedListeners$getSt2;
|
|
148
|
+
|
|
149
|
+
const target = (_state$key = state === null || state === void 0 ? void 0 : state.key) !== null && _state$key !== void 0 ? _state$key : (_keyedListeners$getSt = (_keyedListeners$getSt2 = keyedListeners.getState).root) === null || _keyedListeners$getSt === void 0 ? void 0 : _keyedListeners$getSt.call(_keyedListeners$getSt2).key;
|
|
150
|
+
|
|
151
|
+
if (target == null) {
|
|
152
|
+
console.error(_createNavigationContainerRef.NOT_INITIALIZED_ERROR);
|
|
153
|
+
} else {
|
|
154
|
+
listeners.focus[0](navigation => navigation.dispatch({ ..._routers.CommonActions.reset(state),
|
|
155
|
+
target
|
|
156
|
+
}));
|
|
157
|
+
}
|
|
158
|
+
}, [keyedListeners.getState, listeners.focus]);
|
|
159
|
+
const getRootState = React.useCallback(() => {
|
|
160
|
+
var _keyedListeners$getSt3, _keyedListeners$getSt4;
|
|
161
|
+
|
|
162
|
+
return (_keyedListeners$getSt3 = (_keyedListeners$getSt4 = keyedListeners.getState).root) === null || _keyedListeners$getSt3 === void 0 ? void 0 : _keyedListeners$getSt3.call(_keyedListeners$getSt4);
|
|
163
|
+
}, [keyedListeners.getState]);
|
|
164
|
+
const getCurrentRoute = React.useCallback(() => {
|
|
165
|
+
const state = getRootState();
|
|
166
|
+
|
|
167
|
+
if (state == null) {
|
|
168
|
+
return undefined;
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
const route = (0, _findFocusedRoute.default)(state);
|
|
172
|
+
return route;
|
|
173
|
+
}, [getRootState]);
|
|
174
|
+
const emitter = (0, _useEventEmitter.default)();
|
|
175
|
+
const {
|
|
176
|
+
addOptionsGetter,
|
|
177
|
+
getCurrentOptions
|
|
178
|
+
} = (0, _useOptionsGetters.default)({});
|
|
179
|
+
const navigation = React.useMemo(() => ({ ...Object.keys(_routers.CommonActions).reduce((acc, name) => {
|
|
180
|
+
acc[name] = (...args) => // @ts-expect-error: this is ok
|
|
181
|
+
dispatch(_routers.CommonActions[name](...args));
|
|
182
|
+
|
|
183
|
+
return acc;
|
|
184
|
+
}, {}),
|
|
185
|
+
...emitter.create('root'),
|
|
186
|
+
dispatch,
|
|
187
|
+
resetRoot,
|
|
188
|
+
isFocused: () => true,
|
|
189
|
+
canGoBack,
|
|
190
|
+
getParent: () => undefined,
|
|
191
|
+
getState: () => stateRef.current,
|
|
192
|
+
getRootState,
|
|
193
|
+
getCurrentRoute,
|
|
194
|
+
getCurrentOptions,
|
|
195
|
+
isReady: () => listeners.focus[0] != null
|
|
196
|
+
}), [canGoBack, dispatch, emitter, getCurrentOptions, getCurrentRoute, getRootState, listeners.focus, resetRoot]);
|
|
197
|
+
React.useImperativeHandle(ref, () => navigation, [navigation]);
|
|
198
|
+
const onDispatchAction = React.useCallback((action, noop) => {
|
|
199
|
+
emitter.emit({
|
|
200
|
+
type: '__unsafe_action__',
|
|
201
|
+
data: {
|
|
202
|
+
action,
|
|
203
|
+
noop,
|
|
204
|
+
stack: stackRef.current
|
|
205
|
+
}
|
|
206
|
+
});
|
|
207
|
+
}, [emitter]);
|
|
208
|
+
const lastEmittedOptionsRef = React.useRef();
|
|
209
|
+
const onOptionsChange = React.useCallback(options => {
|
|
210
|
+
if (lastEmittedOptionsRef.current === options) {
|
|
211
|
+
return;
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
lastEmittedOptionsRef.current = options;
|
|
215
|
+
emitter.emit({
|
|
216
|
+
type: 'options',
|
|
217
|
+
data: {
|
|
218
|
+
options
|
|
219
|
+
}
|
|
220
|
+
});
|
|
221
|
+
}, [emitter]);
|
|
222
|
+
const stackRef = React.useRef();
|
|
223
|
+
const builderContext = React.useMemo(() => ({
|
|
224
|
+
addListener,
|
|
225
|
+
addKeyedListener,
|
|
226
|
+
onDispatchAction,
|
|
227
|
+
onOptionsChange,
|
|
228
|
+
stackRef
|
|
229
|
+
}), [addListener, addKeyedListener, onDispatchAction, onOptionsChange]);
|
|
230
|
+
const scheduleContext = React.useMemo(() => ({
|
|
231
|
+
scheduleUpdate,
|
|
232
|
+
flushUpdates
|
|
233
|
+
}), [scheduleUpdate, flushUpdates]);
|
|
234
|
+
const isInitialRef = React.useRef(true);
|
|
235
|
+
const getIsInitial = React.useCallback(() => isInitialRef.current, []);
|
|
236
|
+
const context = React.useMemo(() => ({
|
|
237
|
+
state,
|
|
238
|
+
getState,
|
|
239
|
+
setState,
|
|
240
|
+
getKey,
|
|
241
|
+
setKey,
|
|
242
|
+
getIsInitial,
|
|
243
|
+
addOptionsGetter
|
|
244
|
+
}), [state, getState, setState, getKey, setKey, getIsInitial, addOptionsGetter]);
|
|
245
|
+
const onStateChangeRef = React.useRef(onStateChange);
|
|
246
|
+
const stateRef = React.useRef(state);
|
|
247
|
+
React.useEffect(() => {
|
|
248
|
+
isInitialRef.current = false;
|
|
249
|
+
onStateChangeRef.current = onStateChange;
|
|
250
|
+
stateRef.current = state;
|
|
251
|
+
});
|
|
252
|
+
React.useEffect(() => {
|
|
253
|
+
const hydratedState = getRootState();
|
|
254
|
+
|
|
255
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
256
|
+
if (hydratedState !== undefined) {
|
|
257
|
+
const serializableResult = (0, _checkSerializable.default)(hydratedState);
|
|
258
|
+
|
|
259
|
+
if (!serializableResult.serializable) {
|
|
260
|
+
const {
|
|
261
|
+
location,
|
|
262
|
+
reason
|
|
263
|
+
} = serializableResult;
|
|
264
|
+
let path = '';
|
|
265
|
+
let pointer = hydratedState;
|
|
266
|
+
let params = false;
|
|
267
|
+
|
|
268
|
+
for (let i = 0; i < location.length; i++) {
|
|
269
|
+
const curr = location[i];
|
|
270
|
+
const prev = location[i - 1];
|
|
271
|
+
pointer = pointer[curr];
|
|
272
|
+
|
|
273
|
+
if (!params && curr === 'state') {
|
|
274
|
+
continue;
|
|
275
|
+
} else if (!params && curr === 'routes') {
|
|
276
|
+
if (path) {
|
|
277
|
+
path += ' > ';
|
|
278
|
+
}
|
|
279
|
+
} else if (!params && typeof curr === 'number' && prev === 'routes') {
|
|
280
|
+
var _pointer;
|
|
281
|
+
|
|
282
|
+
path += (_pointer = pointer) === null || _pointer === void 0 ? void 0 : _pointer.name;
|
|
283
|
+
} else if (!params) {
|
|
284
|
+
path += ` > ${curr}`;
|
|
285
|
+
params = true;
|
|
286
|
+
} else {
|
|
287
|
+
if (typeof curr === 'number' || /^[0-9]+$/.test(curr)) {
|
|
288
|
+
path += `[${curr}]`;
|
|
289
|
+
} else if (/^[a-z$_]+$/i.test(curr)) {
|
|
290
|
+
path += `.${curr}`;
|
|
291
|
+
} else {
|
|
292
|
+
path += `[${JSON.stringify(curr)}]`;
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
const message = `Non-serializable values were found in the navigation state. Check:\n\n${path} (${reason})\n\nThis can break usage such as persisting and restoring state. This might happen if you passed non-serializable values such as function, class instances etc. in params. If you need to use components with callbacks in your options, you can use 'navigation.setOptions' instead. See https://reactnavigation.org/docs/troubleshooting#i-get-the-warning-non-serializable-values-were-found-in-the-navigation-state for more details.`;
|
|
298
|
+
|
|
299
|
+
if (!serializableWarnings.includes(message)) {
|
|
300
|
+
serializableWarnings.push(message);
|
|
301
|
+
console.warn(message);
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
const duplicateRouteNamesResult = (0, _checkDuplicateRouteNames.default)(hydratedState);
|
|
306
|
+
|
|
307
|
+
if (duplicateRouteNamesResult.length) {
|
|
308
|
+
const message = `Found screens with the same name nested inside one another. Check:\n${duplicateRouteNamesResult.map(locations => `\n${locations.join(', ')}`)}\n\nThis can cause confusing behavior during navigation. Consider using unique names for each screen instead.`;
|
|
309
|
+
|
|
310
|
+
if (!duplicateNameWarnings.includes(message)) {
|
|
311
|
+
duplicateNameWarnings.push(message);
|
|
312
|
+
console.warn(message);
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
emitter.emit({
|
|
319
|
+
type: 'state',
|
|
320
|
+
data: {
|
|
321
|
+
state
|
|
322
|
+
}
|
|
323
|
+
});
|
|
324
|
+
|
|
325
|
+
if (!isFirstMountRef.current && onStateChangeRef.current) {
|
|
326
|
+
onStateChangeRef.current(hydratedState);
|
|
327
|
+
}
|
|
328
|
+
|
|
329
|
+
isFirstMountRef.current = false;
|
|
330
|
+
}, [getRootState, emitter, state]);
|
|
331
|
+
const defaultOnUnhandledAction = React.useCallback(action => {
|
|
332
|
+
if (process.env.NODE_ENV === 'production') {
|
|
333
|
+
return;
|
|
334
|
+
}
|
|
335
|
+
|
|
336
|
+
const payload = action.payload;
|
|
337
|
+
let message = `The action '${action.type}'${payload ? ` with payload ${JSON.stringify(action.payload)}` : ''} was not handled by any navigator.`;
|
|
338
|
+
|
|
339
|
+
switch (action.type) {
|
|
340
|
+
case 'NAVIGATE':
|
|
341
|
+
case 'PUSH':
|
|
342
|
+
case 'REPLACE':
|
|
343
|
+
case 'JUMP_TO':
|
|
344
|
+
if (payload !== null && payload !== void 0 && payload.name) {
|
|
345
|
+
message += `\n\nDo you have a screen named '${payload.name}'?\n\nIf you're trying to navigate to a screen in a nested navigator, see https://reactnavigation.org/docs/nesting-navigators#navigating-to-a-screen-in-a-nested-navigator.`;
|
|
346
|
+
} else {
|
|
347
|
+
message += `\n\nYou need to pass the name of the screen to navigate to.\n\nSee https://reactnavigation.org/docs/navigation-actions for usage.`;
|
|
348
|
+
}
|
|
349
|
+
|
|
350
|
+
break;
|
|
351
|
+
|
|
352
|
+
case 'GO_BACK':
|
|
353
|
+
case 'POP':
|
|
354
|
+
case 'POP_TO_TOP':
|
|
355
|
+
message += `\n\nIs there any screen to go back to?`;
|
|
356
|
+
break;
|
|
357
|
+
|
|
358
|
+
case 'OPEN_DRAWER':
|
|
359
|
+
case 'CLOSE_DRAWER':
|
|
360
|
+
case 'TOGGLE_DRAWER':
|
|
361
|
+
message += `\n\nIs your screen inside a Drawer navigator?`;
|
|
362
|
+
break;
|
|
363
|
+
}
|
|
364
|
+
|
|
365
|
+
message += `\n\nThis is a development-only warning and won't be shown in production.`;
|
|
366
|
+
console.error(message);
|
|
367
|
+
}, []);
|
|
368
|
+
let element = /*#__PURE__*/React.createElement(_NavigationContainerRefContext.default.Provider, {
|
|
369
|
+
value: navigation
|
|
370
|
+
}, /*#__PURE__*/React.createElement(_useScheduleUpdate.ScheduleUpdateContext.Provider, {
|
|
371
|
+
value: scheduleContext
|
|
372
|
+
}, /*#__PURE__*/React.createElement(_NavigationBuilderContext.default.Provider, {
|
|
373
|
+
value: builderContext
|
|
374
|
+
}, /*#__PURE__*/React.createElement(_NavigationStateContext.default.Provider, {
|
|
375
|
+
value: context
|
|
376
|
+
}, /*#__PURE__*/React.createElement(_UnhandledActionContext.default.Provider, {
|
|
377
|
+
value: onUnhandledAction !== null && onUnhandledAction !== void 0 ? onUnhandledAction : defaultOnUnhandledAction
|
|
378
|
+
}, /*#__PURE__*/React.createElement(_EnsureSingleNavigator.default, null, children))))));
|
|
379
|
+
|
|
380
|
+
if (independent) {
|
|
381
|
+
// We need to clear any existing contexts for nested independent container to work correctly
|
|
382
|
+
element = /*#__PURE__*/React.createElement(_NavigationRouteContext.default.Provider, {
|
|
383
|
+
value: undefined
|
|
384
|
+
}, /*#__PURE__*/React.createElement(_NavigationContext.default.Provider, {
|
|
385
|
+
value: undefined
|
|
386
|
+
}, element));
|
|
387
|
+
}
|
|
388
|
+
|
|
389
|
+
return element;
|
|
390
|
+
});
|
|
391
|
+
var _default = BaseNavigationContainer;
|
|
392
|
+
exports.default = _default;
|
|
393
|
+
//# sourceMappingURL=BaseNavigationContainer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["BaseNavigationContainer.tsx"],"names":["serializableWarnings","duplicateNameWarnings","getPartialState","state","undefined","key","routeNames","partialState","stale","routes","map","route","BaseNavigationContainer","React","forwardRef","initialState","onStateChange","onUnhandledAction","independent","children","ref","parent","useContext","NavigationStateContext","isDefault","Error","getState","setState","scheduleUpdate","flushUpdates","isFirstMountRef","useRef","navigatorKeyRef","getKey","useCallback","current","setKey","listeners","addListener","keyedListeners","addKeyedListener","dispatch","action","focus","console","error","NOT_INITIALIZED_ERROR","navigation","canGoBack","result","handled","resetRoot","target","root","CommonActions","reset","getRootState","getCurrentRoute","emitter","addOptionsGetter","getCurrentOptions","useMemo","Object","keys","reduce","acc","name","args","create","isFocused","getParent","stateRef","isReady","useImperativeHandle","onDispatchAction","noop","emit","type","data","stack","stackRef","lastEmittedOptionsRef","onOptionsChange","options","builderContext","scheduleContext","isInitialRef","getIsInitial","context","onStateChangeRef","useEffect","hydratedState","process","env","NODE_ENV","serializableResult","serializable","location","reason","path","pointer","params","i","length","curr","prev","test","JSON","stringify","message","includes","push","warn","duplicateRouteNamesResult","locations","join","defaultOnUnhandledAction","payload","element"],"mappings":"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","sourcesContent":["import {\n CommonActions,\n InitialState,\n NavigationAction,\n NavigationState,\n ParamListBase,\n PartialState,\n Route,\n} from '@react-navigation/routers';\nimport * as React from 'react';\n\nimport checkDuplicateRouteNames from './checkDuplicateRouteNames';\nimport checkSerializable from './checkSerializable';\nimport { NOT_INITIALIZED_ERROR } from './createNavigationContainerRef';\nimport EnsureSingleNavigator from './EnsureSingleNavigator';\nimport findFocusedRoute from './findFocusedRoute';\nimport NavigationBuilderContext from './NavigationBuilderContext';\nimport NavigationContainerRefContext from './NavigationContainerRefContext';\nimport NavigationContext from './NavigationContext';\nimport NavigationRouteContext from './NavigationRouteContext';\nimport NavigationStateContext from './NavigationStateContext';\nimport type {\n NavigationContainerEventMap,\n NavigationContainerProps,\n NavigationContainerRef,\n} from './types';\nimport UnhandledActionContext from './UnhandledActionContext';\nimport useChildListeners from './useChildListeners';\nimport useEventEmitter from './useEventEmitter';\nimport useKeyedChildListeners from './useKeyedChildListeners';\nimport useOptionsGetters from './useOptionsGetters';\nimport { ScheduleUpdateContext } from './useScheduleUpdate';\nimport useSyncState from './useSyncState';\n\ntype State = NavigationState | PartialState<NavigationState> | undefined;\n\nconst serializableWarnings: string[] = [];\nconst duplicateNameWarnings: string[] = [];\n\n/**\n * Remove `key` and `routeNames` from the state objects recursively to get partial state.\n *\n * @param state Initial state object.\n */\nconst getPartialState = (\n state: InitialState | undefined\n): PartialState<NavigationState> | undefined => {\n if (state === undefined) {\n return;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { key, routeNames, ...partialState } = state;\n\n return {\n ...partialState,\n stale: true,\n routes: state.routes.map((route) => {\n if (route.state === undefined) {\n return route as Route<string> & {\n state?: PartialState<NavigationState>;\n };\n }\n\n return { ...route, state: getPartialState(route.state) };\n }),\n };\n};\n\n/**\n * Container component which holds the navigation state.\n * This should be rendered at the root wrapping the whole app.\n *\n * @param props.initialState Initial state object for the navigation tree.\n * @param props.onStateChange Callback which is called with the latest navigation state when it changes.\n * @param props.children Child elements to render the content.\n * @param props.ref Ref object which refers to the navigation object containing helper methods.\n */\nconst BaseNavigationContainer = React.forwardRef(\n function BaseNavigationContainer(\n {\n initialState,\n onStateChange,\n onUnhandledAction,\n independent,\n children,\n }: NavigationContainerProps,\n ref?: React.Ref<NavigationContainerRef<ParamListBase>>\n ) {\n const parent = React.useContext(NavigationStateContext);\n\n if (!parent.isDefault && !independent) {\n throw new Error(\n \"Looks like you have nested a 'NavigationContainer' inside another. Normally you need only one container at the root of the app, so this was probably an error. If this was intentional, pass 'independent={true}' explicitly. Note that this will make the child navigators disconnected from the parent and you won't be able to navigate between them.\"\n );\n }\n\n const [state, getState, setState, scheduleUpdate, flushUpdates] =\n useSyncState<State>(() =>\n getPartialState(initialState == null ? undefined : initialState)\n );\n\n const isFirstMountRef = React.useRef<boolean>(true);\n\n const navigatorKeyRef = React.useRef<string | undefined>();\n\n const getKey = React.useCallback(() => navigatorKeyRef.current, []);\n\n const setKey = React.useCallback((key: string) => {\n navigatorKeyRef.current = key;\n }, []);\n\n const { listeners, addListener } = useChildListeners();\n\n const { keyedListeners, addKeyedListener } = useKeyedChildListeners();\n\n const dispatch = React.useCallback(\n (\n action:\n | NavigationAction\n | ((state: NavigationState) => NavigationAction)\n ) => {\n if (listeners.focus[0] == null) {\n console.error(NOT_INITIALIZED_ERROR);\n } else {\n listeners.focus[0]((navigation) => navigation.dispatch(action));\n }\n },\n [listeners.focus]\n );\n\n const canGoBack = React.useCallback(() => {\n if (listeners.focus[0] == null) {\n return false;\n }\n\n const { result, handled } = listeners.focus[0]((navigation) =>\n navigation.canGoBack()\n );\n\n if (handled) {\n return result;\n } else {\n return false;\n }\n }, [listeners.focus]);\n\n const resetRoot = React.useCallback(\n (state?: PartialState<NavigationState> | NavigationState) => {\n const target = state?.key ?? keyedListeners.getState.root?.().key;\n\n if (target == null) {\n console.error(NOT_INITIALIZED_ERROR);\n } else {\n listeners.focus[0]((navigation) =>\n navigation.dispatch({\n ...CommonActions.reset(state),\n target,\n })\n );\n }\n },\n [keyedListeners.getState, listeners.focus]\n );\n\n const getRootState = React.useCallback(() => {\n return keyedListeners.getState.root?.();\n }, [keyedListeners.getState]);\n\n const getCurrentRoute = React.useCallback(() => {\n const state = getRootState();\n\n if (state == null) {\n return undefined;\n }\n\n const route = findFocusedRoute(state);\n\n return route as Route<string> | undefined;\n }, [getRootState]);\n\n const emitter = useEventEmitter<NavigationContainerEventMap>();\n\n const { addOptionsGetter, getCurrentOptions } = useOptionsGetters({});\n\n const navigation: NavigationContainerRef<ParamListBase> = React.useMemo(\n () => ({\n ...Object.keys(CommonActions).reduce<any>((acc, name) => {\n acc[name] = (...args: any[]) =>\n // @ts-expect-error: this is ok\n dispatch(CommonActions[name](...args));\n return acc;\n }, {}),\n ...emitter.create('root'),\n dispatch,\n resetRoot,\n isFocused: () => true,\n canGoBack,\n getParent: () => undefined,\n getState: () => stateRef.current,\n getRootState,\n getCurrentRoute,\n getCurrentOptions,\n isReady: () => listeners.focus[0] != null,\n }),\n [\n canGoBack,\n dispatch,\n emitter,\n getCurrentOptions,\n getCurrentRoute,\n getRootState,\n listeners.focus,\n resetRoot,\n ]\n );\n\n React.useImperativeHandle(ref, () => navigation, [navigation]);\n\n const onDispatchAction = React.useCallback(\n (action: NavigationAction, noop: boolean) => {\n emitter.emit({\n type: '__unsafe_action__',\n data: { action, noop, stack: stackRef.current },\n });\n },\n [emitter]\n );\n\n const lastEmittedOptionsRef = React.useRef<object | undefined>();\n\n const onOptionsChange = React.useCallback(\n (options) => {\n if (lastEmittedOptionsRef.current === options) {\n return;\n }\n\n lastEmittedOptionsRef.current = options;\n\n emitter.emit({\n type: 'options',\n data: { options },\n });\n },\n [emitter]\n );\n\n const stackRef = React.useRef<string | undefined>();\n\n const builderContext = React.useMemo(\n () => ({\n addListener,\n addKeyedListener,\n onDispatchAction,\n onOptionsChange,\n stackRef,\n }),\n [addListener, addKeyedListener, onDispatchAction, onOptionsChange]\n );\n\n const scheduleContext = React.useMemo(\n () => ({ scheduleUpdate, flushUpdates }),\n [scheduleUpdate, flushUpdates]\n );\n\n const isInitialRef = React.useRef(true);\n\n const getIsInitial = React.useCallback(() => isInitialRef.current, []);\n\n const context = React.useMemo(\n () => ({\n state,\n getState,\n setState,\n getKey,\n setKey,\n getIsInitial,\n addOptionsGetter,\n }),\n [\n state,\n getState,\n setState,\n getKey,\n setKey,\n getIsInitial,\n addOptionsGetter,\n ]\n );\n\n const onStateChangeRef = React.useRef(onStateChange);\n const stateRef = React.useRef(state);\n\n React.useEffect(() => {\n isInitialRef.current = false;\n onStateChangeRef.current = onStateChange;\n stateRef.current = state;\n });\n\n React.useEffect(() => {\n const hydratedState = getRootState();\n\n if (process.env.NODE_ENV !== 'production') {\n if (hydratedState !== undefined) {\n const serializableResult = checkSerializable(hydratedState);\n\n if (!serializableResult.serializable) {\n const { location, reason } = serializableResult;\n\n let path = '';\n let pointer: Record<any, any> = hydratedState;\n let params = false;\n\n for (let i = 0; i < location.length; i++) {\n const curr = location[i];\n const prev = location[i - 1];\n\n pointer = pointer[curr];\n\n if (!params && curr === 'state') {\n continue;\n } else if (!params && curr === 'routes') {\n if (path) {\n path += ' > ';\n }\n } else if (\n !params &&\n typeof curr === 'number' &&\n prev === 'routes'\n ) {\n path += pointer?.name;\n } else if (!params) {\n path += ` > ${curr}`;\n params = true;\n } else {\n if (typeof curr === 'number' || /^[0-9]+$/.test(curr)) {\n path += `[${curr}]`;\n } else if (/^[a-z$_]+$/i.test(curr)) {\n path += `.${curr}`;\n } else {\n path += `[${JSON.stringify(curr)}]`;\n }\n }\n }\n\n const message = `Non-serializable values were found in the navigation state. Check:\\n\\n${path} (${reason})\\n\\nThis can break usage such as persisting and restoring state. This might happen if you passed non-serializable values such as function, class instances etc. in params. If you need to use components with callbacks in your options, you can use 'navigation.setOptions' instead. See https://reactnavigation.org/docs/troubleshooting#i-get-the-warning-non-serializable-values-were-found-in-the-navigation-state for more details.`;\n\n if (!serializableWarnings.includes(message)) {\n serializableWarnings.push(message);\n console.warn(message);\n }\n }\n\n const duplicateRouteNamesResult =\n checkDuplicateRouteNames(hydratedState);\n\n if (duplicateRouteNamesResult.length) {\n const message = `Found screens with the same name nested inside one another. Check:\\n${duplicateRouteNamesResult.map(\n (locations) => `\\n${locations.join(', ')}`\n )}\\n\\nThis can cause confusing behavior during navigation. Consider using unique names for each screen instead.`;\n\n if (!duplicateNameWarnings.includes(message)) {\n duplicateNameWarnings.push(message);\n console.warn(message);\n }\n }\n }\n }\n\n emitter.emit({ type: 'state', data: { state } });\n\n if (!isFirstMountRef.current && onStateChangeRef.current) {\n onStateChangeRef.current(hydratedState);\n }\n\n isFirstMountRef.current = false;\n }, [getRootState, emitter, state]);\n\n const defaultOnUnhandledAction = React.useCallback(\n (action: NavigationAction) => {\n if (process.env.NODE_ENV === 'production') {\n return;\n }\n\n const payload: Record<string, any> | undefined = action.payload;\n\n let message = `The action '${action.type}'${\n payload ? ` with payload ${JSON.stringify(action.payload)}` : ''\n } was not handled by any navigator.`;\n\n switch (action.type) {\n case 'NAVIGATE':\n case 'PUSH':\n case 'REPLACE':\n case 'JUMP_TO':\n if (payload?.name) {\n message += `\\n\\nDo you have a screen named '${payload.name}'?\\n\\nIf you're trying to navigate to a screen in a nested navigator, see https://reactnavigation.org/docs/nesting-navigators#navigating-to-a-screen-in-a-nested-navigator.`;\n } else {\n message += `\\n\\nYou need to pass the name of the screen to navigate to.\\n\\nSee https://reactnavigation.org/docs/navigation-actions for usage.`;\n }\n\n break;\n case 'GO_BACK':\n case 'POP':\n case 'POP_TO_TOP':\n message += `\\n\\nIs there any screen to go back to?`;\n break;\n case 'OPEN_DRAWER':\n case 'CLOSE_DRAWER':\n case 'TOGGLE_DRAWER':\n message += `\\n\\nIs your screen inside a Drawer navigator?`;\n break;\n }\n\n message += `\\n\\nThis is a development-only warning and won't be shown in production.`;\n\n console.error(message);\n },\n []\n );\n\n let element = (\n <NavigationContainerRefContext.Provider value={navigation}>\n <ScheduleUpdateContext.Provider value={scheduleContext}>\n <NavigationBuilderContext.Provider value={builderContext}>\n <NavigationStateContext.Provider value={context}>\n <UnhandledActionContext.Provider\n value={onUnhandledAction ?? defaultOnUnhandledAction}\n >\n <EnsureSingleNavigator>{children}</EnsureSingleNavigator>\n </UnhandledActionContext.Provider>\n </NavigationStateContext.Provider>\n </NavigationBuilderContext.Provider>\n </ScheduleUpdateContext.Provider>\n </NavigationContainerRefContext.Provider>\n );\n\n if (independent) {\n // We need to clear any existing contexts for nested independent container to work correctly\n element = (\n <NavigationRouteContext.Provider value={undefined}>\n <NavigationContext.Provider value={undefined}>\n {element}\n </NavigationContext.Provider>\n </NavigationRouteContext.Provider>\n );\n }\n\n return element;\n }\n);\n\nexport default BaseNavigationContainer;\n"]}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
var React = _interopRequireWildcard(require("react"));
|
|
9
|
+
|
|
10
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
11
|
+
|
|
12
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Context which holds the values for the current navigation tree.
|
|
16
|
+
* Intended for use in SSR. This is not safe to use on the client.
|
|
17
|
+
*/
|
|
18
|
+
const CurrentRenderContext = /*#__PURE__*/React.createContext(undefined);
|
|
19
|
+
var _default = CurrentRenderContext;
|
|
20
|
+
exports.default = _default;
|
|
21
|
+
//# sourceMappingURL=CurrentRenderContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["CurrentRenderContext.tsx"],"names":["CurrentRenderContext","React","createContext","undefined"],"mappings":";;;;;;;AAAA;;;;;;AAEA;AACA;AACA;AACA;AACA,MAAMA,oBAAoB,gBACxBC,KAAK,CAACC,aAAN,CAAsDC,SAAtD,CADF;eAGeH,oB","sourcesContent":["import * as React from 'react';\n\n/**\n * Context which holds the values for the current navigation tree.\n * Intended for use in SSR. This is not safe to use on the client.\n */\nconst CurrentRenderContext =\n React.createContext<{ options?: object } | undefined>(undefined);\n\nexport default CurrentRenderContext;\n"]}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = EnsureSingleNavigator;
|
|
7
|
+
exports.SingleNavigatorContext = void 0;
|
|
8
|
+
|
|
9
|
+
var React = _interopRequireWildcard(require("react"));
|
|
10
|
+
|
|
11
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
12
|
+
|
|
13
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
14
|
+
|
|
15
|
+
const MULTIPLE_NAVIGATOR_ERROR = `Another navigator is already registered for this container. You likely have multiple navigators under a single "NavigationContainer" or "Screen". Make sure each navigator is under a separate "Screen" container. See https://reactnavigation.org/docs/nesting-navigators for a guide on nesting.`;
|
|
16
|
+
const SingleNavigatorContext = /*#__PURE__*/React.createContext(undefined);
|
|
17
|
+
/**
|
|
18
|
+
* Component which ensures that there's only one navigator nested under it.
|
|
19
|
+
*/
|
|
20
|
+
|
|
21
|
+
exports.SingleNavigatorContext = SingleNavigatorContext;
|
|
22
|
+
|
|
23
|
+
function EnsureSingleNavigator({
|
|
24
|
+
children
|
|
25
|
+
}) {
|
|
26
|
+
const navigatorKeyRef = React.useRef();
|
|
27
|
+
const value = React.useMemo(() => ({
|
|
28
|
+
register(key) {
|
|
29
|
+
const currentKey = navigatorKeyRef.current;
|
|
30
|
+
|
|
31
|
+
if (currentKey !== undefined && key !== currentKey) {
|
|
32
|
+
throw new Error(MULTIPLE_NAVIGATOR_ERROR);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
navigatorKeyRef.current = key;
|
|
36
|
+
},
|
|
37
|
+
|
|
38
|
+
unregister(key) {
|
|
39
|
+
const currentKey = navigatorKeyRef.current;
|
|
40
|
+
|
|
41
|
+
if (key !== currentKey) {
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
navigatorKeyRef.current = undefined;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
}), []);
|
|
49
|
+
return /*#__PURE__*/React.createElement(SingleNavigatorContext.Provider, {
|
|
50
|
+
value: value
|
|
51
|
+
}, children);
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=EnsureSingleNavigator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["EnsureSingleNavigator.tsx"],"names":["MULTIPLE_NAVIGATOR_ERROR","SingleNavigatorContext","React","createContext","undefined","EnsureSingleNavigator","children","navigatorKeyRef","useRef","value","useMemo","register","key","currentKey","current","Error","unregister"],"mappings":";;;;;;;;AAAA;;;;;;AAMA,MAAMA,wBAAwB,GAAI,oSAAlC;AAEO,MAAMC,sBAAsB,gBACjCC,KAAK,CAACC,aAAN,CAMEC,SANF,CADK;AASP;AACA;AACA;;;;AACe,SAASC,qBAAT,CAA+B;AAAEC,EAAAA;AAAF,CAA/B,EAAoD;AACjE,QAAMC,eAAe,GAAGL,KAAK,CAACM,MAAN,EAAxB;AAEA,QAAMC,KAAK,GAAGP,KAAK,CAACQ,OAAN,CACZ,OAAO;AACLC,IAAAA,QAAQ,CAACC,GAAD,EAAc;AACpB,YAAMC,UAAU,GAAGN,eAAe,CAACO,OAAnC;;AAEA,UAAID,UAAU,KAAKT,SAAf,IAA4BQ,GAAG,KAAKC,UAAxC,EAAoD;AAClD,cAAM,IAAIE,KAAJ,CAAUf,wBAAV,CAAN;AACD;;AAEDO,MAAAA,eAAe,CAACO,OAAhB,GAA0BF,GAA1B;AACD,KATI;;AAULI,IAAAA,UAAU,CAACJ,GAAD,EAAc;AACtB,YAAMC,UAAU,GAAGN,eAAe,CAACO,OAAnC;;AAEA,UAAIF,GAAG,KAAKC,UAAZ,EAAwB;AACtB;AACD;;AAEDN,MAAAA,eAAe,CAACO,OAAhB,GAA0BV,SAA1B;AACD;;AAlBI,GAAP,CADY,EAqBZ,EArBY,CAAd;AAwBA,sBACE,oBAAC,sBAAD,CAAwB,QAAxB;AAAiC,IAAA,KAAK,EAAEK;AAAxC,KACGH,QADH,CADF;AAKD","sourcesContent":["import * as React from 'react';\n\ntype Props = {\n children: React.ReactNode;\n};\n\nconst MULTIPLE_NAVIGATOR_ERROR = `Another navigator is already registered for this container. You likely have multiple navigators under a single \"NavigationContainer\" or \"Screen\". Make sure each navigator is under a separate \"Screen\" container. See https://reactnavigation.org/docs/nesting-navigators for a guide on nesting.`;\n\nexport const SingleNavigatorContext =\n React.createContext<\n | {\n register(key: string): void;\n unregister(key: string): void;\n }\n | undefined\n >(undefined);\n\n/**\n * Component which ensures that there's only one navigator nested under it.\n */\nexport default function EnsureSingleNavigator({ children }: Props) {\n const navigatorKeyRef = React.useRef<string | undefined>();\n\n const value = React.useMemo(\n () => ({\n register(key: string) {\n const currentKey = navigatorKeyRef.current;\n\n if (currentKey !== undefined && key !== currentKey) {\n throw new Error(MULTIPLE_NAVIGATOR_ERROR);\n }\n\n navigatorKeyRef.current = key;\n },\n unregister(key: string) {\n const currentKey = navigatorKeyRef.current;\n\n if (key !== currentKey) {\n return;\n }\n\n navigatorKeyRef.current = undefined;\n },\n }),\n []\n );\n\n return (\n <SingleNavigatorContext.Provider value={value}>\n {children}\n </SingleNavigatorContext.Provider>\n );\n}\n"]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = Group;
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Empty component used for grouping screen configs.
|
|
10
|
+
*/
|
|
11
|
+
function Group(_) {
|
|
12
|
+
/* istanbul ignore next */
|
|
13
|
+
return null;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=Group.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["Group.tsx"],"names":["Group","_"],"mappings":";;;;;;;AAIA;AACA;AACA;AACe,SAASA,KAAT,CAGbC,CAHa,EAGkC;AAC/C;AACA,SAAO,IAAP;AACD","sourcesContent":["import type { ParamListBase } from '@react-navigation/routers';\n\nimport type { RouteGroupConfig } from './types';\n\n/**\n * Empty component used for grouping screen configs.\n */\nexport default function Group<\n ParamList extends ParamListBase,\n ScreenOptions extends {}\n>(_: RouteGroupConfig<ParamList, ScreenOptions>) {\n /* istanbul ignore next */\n return null;\n}\n"]}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
var React = _interopRequireWildcard(require("react"));
|
|
9
|
+
|
|
10
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
11
|
+
|
|
12
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Context which holds the required helpers needed to build nested navigators.
|
|
16
|
+
*/
|
|
17
|
+
const NavigationBuilderContext = /*#__PURE__*/React.createContext({
|
|
18
|
+
onDispatchAction: () => undefined,
|
|
19
|
+
onOptionsChange: () => undefined
|
|
20
|
+
});
|
|
21
|
+
var _default = NavigationBuilderContext;
|
|
22
|
+
exports.default = _default;
|
|
23
|
+
//# sourceMappingURL=NavigationBuilderContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["NavigationBuilderContext.tsx"],"names":["NavigationBuilderContext","React","createContext","onDispatchAction","undefined","onOptionsChange"],"mappings":";;;;;;;AAKA;;;;;;AA6CA;AACA;AACA;AACA,MAAMA,wBAAwB,gBAAGC,KAAK,CAACC,aAAN,CAW9B;AACDC,EAAAA,gBAAgB,EAAE,MAAMC,SADvB;AAEDC,EAAAA,eAAe,EAAE,MAAMD;AAFtB,CAX8B,CAAjC;eAgBeJ,wB","sourcesContent":["import type {\n NavigationAction,\n NavigationState,\n ParamListBase,\n} from '@react-navigation/routers';\nimport * as React from 'react';\n\nimport type { NavigationHelpers } from './types';\n\nexport type ListenerMap = {\n action: ChildActionListener;\n focus: FocusedNavigationListener;\n};\n\nexport type KeyedListenerMap = {\n getState: GetStateListener;\n beforeRemove: ChildBeforeRemoveListener;\n};\n\nexport type AddListener = <T extends keyof ListenerMap>(\n type: T,\n listener: ListenerMap[T]\n) => void;\n\nexport type AddKeyedListener = <T extends keyof KeyedListenerMap>(\n type: T,\n key: string,\n listener: KeyedListenerMap[T]\n) => void;\n\nexport type ChildActionListener = (\n action: NavigationAction,\n visitedNavigators?: Set<string>\n) => boolean;\n\nexport type FocusedNavigationCallback<T> = (\n navigation: NavigationHelpers<ParamListBase>\n) => T;\n\nexport type FocusedNavigationListener = <T>(\n callback: FocusedNavigationCallback<T>\n) => {\n handled: boolean;\n result: T;\n};\n\nexport type GetStateListener = () => NavigationState;\n\nexport type ChildBeforeRemoveListener = (action: NavigationAction) => boolean;\n\n/**\n * Context which holds the required helpers needed to build nested navigators.\n */\nconst NavigationBuilderContext = React.createContext<{\n onAction?: (\n action: NavigationAction,\n visitedNavigators?: Set<string>\n ) => boolean;\n addListener?: AddListener;\n addKeyedListener?: AddKeyedListener;\n onRouteFocus?: (key: string) => void;\n onDispatchAction: (action: NavigationAction, noop: boolean) => void;\n onOptionsChange: (options: object) => void;\n stackRef?: React.MutableRefObject<string | undefined>;\n}>({\n onDispatchAction: () => undefined,\n onOptionsChange: () => undefined,\n});\n\nexport default NavigationBuilderContext;\n"]}
|