@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
|
@@ -18,6 +18,49 @@ export function useNavigationCache(_ref) {
|
|
|
18
18
|
const {
|
|
19
19
|
stackRef
|
|
20
20
|
} = React.useContext(NavigationBuilderContext);
|
|
21
|
+
const base = React.useMemo(() => {
|
|
22
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
23
|
+
const {
|
|
24
|
+
emit,
|
|
25
|
+
...rest
|
|
26
|
+
} = navigation;
|
|
27
|
+
const actions = {
|
|
28
|
+
...router.actionCreators,
|
|
29
|
+
...CommonActions
|
|
30
|
+
};
|
|
31
|
+
const dispatch = () => {
|
|
32
|
+
throw new Error('Actions cannot be dispatched from a placeholder screen.');
|
|
33
|
+
};
|
|
34
|
+
const helpers = Object.keys(actions).reduce((acc, name) => {
|
|
35
|
+
acc[name] = dispatch;
|
|
36
|
+
return acc;
|
|
37
|
+
}, {});
|
|
38
|
+
return {
|
|
39
|
+
...rest,
|
|
40
|
+
...helpers,
|
|
41
|
+
addListener: () => {
|
|
42
|
+
// Event listeners are not supported for placeholder screens
|
|
43
|
+
|
|
44
|
+
return () => {
|
|
45
|
+
// Empty function
|
|
46
|
+
};
|
|
47
|
+
},
|
|
48
|
+
removeListener: () => {
|
|
49
|
+
// Event listeners are not supported for placeholder screens
|
|
50
|
+
},
|
|
51
|
+
dispatch,
|
|
52
|
+
getParent: id => {
|
|
53
|
+
if (id !== undefined && id === rest.getId()) {
|
|
54
|
+
return base;
|
|
55
|
+
}
|
|
56
|
+
return rest.getParent(id);
|
|
57
|
+
},
|
|
58
|
+
setOptions: () => {
|
|
59
|
+
throw new Error('Options cannot be set from a placeholder screen.');
|
|
60
|
+
},
|
|
61
|
+
isFocused: () => false
|
|
62
|
+
};
|
|
63
|
+
}, [navigation, router.actionCreators]);
|
|
21
64
|
|
|
22
65
|
// Cache object which holds navigation objects for each screen
|
|
23
66
|
// We use `React.useMemo` instead of `React.useRef` coz we want to invalidate it when deps change
|
|
@@ -26,22 +69,13 @@ export function useNavigationCache(_ref) {
|
|
|
26
69
|
current: {}
|
|
27
70
|
}),
|
|
28
71
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
29
|
-
[getState, navigation, setOptions,
|
|
30
|
-
const actions = {
|
|
31
|
-
...router.actionCreators,
|
|
32
|
-
...CommonActions
|
|
33
|
-
};
|
|
72
|
+
[base, getState, navigation, setOptions, emitter]);
|
|
34
73
|
cache.current = state.routes.reduce((acc, route) => {
|
|
35
74
|
const previous = cache.current[route.key];
|
|
36
75
|
if (previous) {
|
|
37
76
|
// If a cached navigation object already exists, reuse it
|
|
38
77
|
acc[route.key] = previous;
|
|
39
78
|
} else {
|
|
40
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
41
|
-
const {
|
|
42
|
-
emit,
|
|
43
|
-
...rest
|
|
44
|
-
} = navigation;
|
|
45
79
|
const dispatch = thunk => {
|
|
46
80
|
const action = typeof thunk === 'function' ? thunk(getState()) : thunk;
|
|
47
81
|
if (action != null) {
|
|
@@ -66,6 +100,10 @@ export function useNavigationCache(_ref) {
|
|
|
66
100
|
}
|
|
67
101
|
}
|
|
68
102
|
};
|
|
103
|
+
const actions = {
|
|
104
|
+
...router.actionCreators,
|
|
105
|
+
...CommonActions
|
|
106
|
+
};
|
|
69
107
|
const helpers = Object.keys(actions).reduce((acc, name) => {
|
|
70
108
|
acc[name] = function () {
|
|
71
109
|
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
@@ -78,18 +116,18 @@ export function useNavigationCache(_ref) {
|
|
|
78
116
|
return acc;
|
|
79
117
|
}, {});
|
|
80
118
|
acc[route.key] = {
|
|
81
|
-
...
|
|
119
|
+
...base,
|
|
82
120
|
...helpers,
|
|
83
121
|
// FIXME: too much work to fix the types for now
|
|
84
122
|
...emitter.create(route.key),
|
|
85
123
|
dispatch: thunk => withStack(() => dispatch(thunk)),
|
|
86
124
|
getParent: id => {
|
|
87
|
-
if (id !== undefined && id ===
|
|
125
|
+
if (id !== undefined && id === base.getId()) {
|
|
88
126
|
// If the passed id is the same as the current navigation id,
|
|
89
127
|
// we return the cached navigation object for the relevant route
|
|
90
128
|
return acc[route.key];
|
|
91
129
|
}
|
|
92
|
-
return
|
|
130
|
+
return base.getParent(id);
|
|
93
131
|
},
|
|
94
132
|
setOptions: options => {
|
|
95
133
|
setOptions(o => ({
|
|
@@ -114,6 +152,9 @@ export function useNavigationCache(_ref) {
|
|
|
114
152
|
}
|
|
115
153
|
return acc;
|
|
116
154
|
}, {});
|
|
117
|
-
return
|
|
155
|
+
return {
|
|
156
|
+
base,
|
|
157
|
+
navigations: cache.current
|
|
158
|
+
};
|
|
118
159
|
}
|
|
119
160
|
//# sourceMappingURL=useNavigationCache.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["CommonActions","React","NavigationBuilderContext","useNavigationCache","state","getState","navigation","setOptions","router","emitter","stackRef","useContext","
|
|
1
|
+
{"version":3,"names":["CommonActions","React","NavigationBuilderContext","useNavigationCache","_ref","state","getState","navigation","setOptions","router","emitter","stackRef","useContext","base","useMemo","emit","rest","actions","actionCreators","dispatch","Error","helpers","Object","keys","reduce","acc","name","addListener","removeListener","getParent","id","undefined","getId","isFocused","cache","current","routes","route","previous","key","thunk","action","source","withStack","callback","isStackSet","process","env","NODE_ENV","stack","_len","arguments","length","args","Array","_key","create","options","o","index","navigations"],"sourceRoot":"../../src","sources":["useNavigationCache.tsx"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","createNavigationContainerRef","useNavigationContainerRef","navigation","useRef","current"],"sourceRoot":"../../src","sources":["useNavigationContainerRef.tsx"],"mappings":"AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAE9B,SAASC,4BAA4B,QAAQ,gCAAgC;AAG7E,OAAO,SAASC,
|
|
1
|
+
{"version":3,"names":["React","createNavigationContainerRef","useNavigationContainerRef","navigation","useRef","current"],"sourceRoot":"../../src","sources":["useNavigationContainerRef.tsx"],"mappings":"AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAE9B,SAASC,4BAA4B,QAAQ,gCAAgC;AAG7E,OAAO,SAASC,yBAAyBA,CAAA,EAES;EAChD,MAAMC,UAAU,GACdH,KAAK,CAACI,MAAM,CAAsD,IAAI,CAAC;EAEzE,IAAID,UAAU,CAACE,OAAO,IAAI,IAAI,EAAE;IAC9BF,UAAU,CAACE,OAAO,GAAGJ,4BAA4B,CAAY,CAAC;EAChE;EAEA,OAAOE,UAAU,CAACE,OAAO;AAC3B"}
|
|
@@ -4,7 +4,6 @@ import { NavigationContext } from './NavigationContext';
|
|
|
4
4
|
import { PrivateValueStore } from './types';
|
|
5
5
|
import { UnhandledActionContext } from './UnhandledActionContext';
|
|
6
6
|
// This is to make TypeScript compiler happy
|
|
7
|
-
// eslint-disable-next-line babel/no-unused-expressions
|
|
8
7
|
PrivateValueStore;
|
|
9
8
|
/**
|
|
10
9
|
* Navigation object with helper methods to be used by a navigator.
|
|
@@ -25,7 +24,7 @@ export function useNavigationHelpers(_ref) {
|
|
|
25
24
|
const action = typeof op === 'function' ? op(getState()) : op;
|
|
26
25
|
const handled = onAction(action);
|
|
27
26
|
if (!handled) {
|
|
28
|
-
onUnhandledAction
|
|
27
|
+
onUnhandledAction?.(action);
|
|
29
28
|
}
|
|
30
29
|
};
|
|
31
30
|
const actions = {
|
|
@@ -51,7 +50,7 @@ export function useNavigationHelpers(_ref) {
|
|
|
51
50
|
routeNames: state.routeNames,
|
|
52
51
|
routeParamList: {},
|
|
53
52
|
routeGetIdList: {}
|
|
54
|
-
}) !== null ||
|
|
53
|
+
}) !== null || parentNavigationHelpers?.canGoBack() || false;
|
|
55
54
|
},
|
|
56
55
|
getId: () => navigatorId,
|
|
57
56
|
getParent: id => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["CommonActions","React","NavigationContext","PrivateValueStore","UnhandledActionContext","useNavigationHelpers","id","navigatorId","onAction","getState","emitter","router","onUnhandledAction","useContext","parentNavigationHelpers","useMemo","dispatch","op","action","handled","actions","actionCreators","helpers","Object","keys","reduce","acc","name","navigationHelpers","emit","isFocused","canGoBack","state","getStateForAction","goBack","routeNames","routeParamList","routeGetIdList","getId","getParent","undefined","current"],"sourceRoot":"../../src","sources":["useNavigationHelpers.tsx"],"mappings":"AAAA,SACEA,aAAa,QAKR,2BAA2B;AAClC,OAAO,KAAKC,KAAK,MAAM,OAAO;AAE9B,SAASC,iBAAiB,QAAQ,qBAAqB;AACvD,
|
|
1
|
+
{"version":3,"names":["CommonActions","React","NavigationContext","PrivateValueStore","UnhandledActionContext","useNavigationHelpers","_ref","id","navigatorId","onAction","getState","emitter","router","onUnhandledAction","useContext","parentNavigationHelpers","useMemo","dispatch","op","action","handled","actions","actionCreators","helpers","Object","keys","reduce","acc","name","arguments","navigationHelpers","emit","isFocused","canGoBack","state","getStateForAction","goBack","routeNames","routeParamList","routeGetIdList","getId","getParent","undefined","current"],"sourceRoot":"../../src","sources":["useNavigationHelpers.tsx"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","NavigationIndependentTreeContext","useNavigationIndependentTree","useContext"],"sourceRoot":"../../src","sources":["useNavigationIndependentTree.tsx"],"mappings":"AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAE9B,SAASC,gCAAgC,QAAQ,oCAAoC;AAErF,OAAO,SAASC,
|
|
1
|
+
{"version":3,"names":["React","NavigationIndependentTreeContext","useNavigationIndependentTree","useContext"],"sourceRoot":"../../src","sources":["useNavigationIndependentTree.tsx"],"mappings":"AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAE9B,SAASC,gCAAgC,QAAQ,oCAAoC;AAErF,OAAO,SAASC,4BAA4BA,CAAA,EAAG;EAC7C,OAAOF,KAAK,CAACG,UAAU,CAACF,gCAAgC,CAAC;AAC3D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useNavigation","useNavigationState","selector","navigation","setResult","useState","getState","selectorRef","useRef","useEffect","current","unsubscribe","addListener","e","data","state"],"sourceRoot":"../../src","sources":["useNavigationState.tsx"],"mappings":"AACA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAG9B,SAASC,aAAa,QAAQ,iBAAiB;AAM/C;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,
|
|
1
|
+
{"version":3,"names":["React","useNavigation","useNavigationState","selector","navigation","setResult","useState","getState","selectorRef","useRef","useEffect","current","unsubscribe","addListener","e","data","state"],"sourceRoot":"../../src","sources":["useNavigationState.tsx"],"mappings":"AACA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAG9B,SAASC,aAAa,QAAQ,iBAAiB;AAM/C;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,kBAAkBA,CAChCC,QAAgC,EAC7B;EACH,MAAMC,UAAU,GAAGH,aAAa,CAA4B,CAAC;;EAE7D;EACA;EACA,MAAM,GAAGI,SAAS,CAAC,GAAGL,KAAK,CAACM,QAAQ,CAAC,MAAMH,QAAQ,CAACC,UAAU,CAACG,QAAQ,CAAC,CAAC,CAAC,CAAC;;EAE3E;EACA,MAAMC,WAAW,GAAGR,KAAK,CAACS,MAAM,CAACN,QAAQ,CAAC;EAE1CH,KAAK,CAACU,SAAS,CAAC,MAAM;IACpBF,WAAW,CAACG,OAAO,GAAGR,QAAQ;EAChC,CAAC,CAAC;EAEFH,KAAK,CAACU,SAAS,CAAC,MAAM;IACpB,MAAME,WAAW,GAAGR,UAAU,CAACS,WAAW,CAAC,OAAO,EAAGC,CAAC,IAAK;MACzDT,SAAS,CAACG,WAAW,CAACG,OAAO,CAACG,CAAC,CAACC,IAAI,CAACC,KAAK,CAAC,CAAC;IAC9C,CAAC,CAAC;IAEF,OAAOJ,WAAW;EACpB,CAAC,EAAE,CAACR,UAAU,CAAC,CAAC;EAEhB,OAAOD,QAAQ,CAACC,UAAU,CAACG,QAAQ,CAAC,CAAC,CAAC;AACxC"}
|
|
@@ -75,7 +75,9 @@ export function useOnAction(_ref) {
|
|
|
75
75
|
return true;
|
|
76
76
|
}
|
|
77
77
|
}
|
|
78
|
-
if (typeof action.target === 'string' ||
|
|
78
|
+
if (typeof action.target === 'string' ||
|
|
79
|
+
// For backward compatibility
|
|
80
|
+
action.type === 'NAVIGATE_DEPRECATED' || navigationInChildEnabled) {
|
|
79
81
|
// If the action wasn't handled by current navigator or a parent navigator, let children handle it
|
|
80
82
|
// Handling this when target isn't specified is deprecated and will be removed in the future
|
|
81
83
|
for (let i = actionListeners.length - 1; i >= 0; i--) {
|
|
@@ -92,7 +94,7 @@ export function useOnAction(_ref) {
|
|
|
92
94
|
emitter,
|
|
93
95
|
beforeRemoveListeners
|
|
94
96
|
});
|
|
95
|
-
React.useEffect(() => addListenerParent
|
|
97
|
+
React.useEffect(() => addListenerParent?.('action', onAction), [addListenerParent, onAction]);
|
|
96
98
|
return onAction;
|
|
97
99
|
}
|
|
98
100
|
//# sourceMappingURL=useOnAction.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","DeprecatedNavigationInChildContext","NavigationBuilderContext","shouldPreventRemove","useOnPreventRemove","useOnAction","router","getState","setState","key","actionListeners","beforeRemoveListeners","routerConfigOptions","emitter","onAction","onActionParent","onRouteFocus","onRouteFocusParent","addListener","addListenerParent","onDispatchAction","useContext","navigationInChildEnabled","routerConfigOptionsRef","useRef","useEffect","current","useCallback","action","visitedNavigators","Set","state","has","add","target","result","getStateForAction","isPrevented","routes","
|
|
1
|
+
{"version":3,"names":["React","DeprecatedNavigationInChildContext","NavigationBuilderContext","shouldPreventRemove","useOnPreventRemove","useOnAction","_ref","router","getState","setState","key","actionListeners","beforeRemoveListeners","routerConfigOptions","emitter","onAction","onActionParent","onRouteFocus","onRouteFocusParent","addListener","addListenerParent","onDispatchAction","useContext","navigationInChildEnabled","routerConfigOptionsRef","useRef","useEffect","current","useCallback","action","visitedNavigators","arguments","length","undefined","Set","state","has","add","target","result","getStateForAction","isPrevented","routes","shouldFocus","shouldActionChangeFocus","type","i","listener"],"sourceRoot":"../../src","sources":["useOnAction.tsx"],"mappings":"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"}
|
|
@@ -17,8 +17,7 @@ export function useOnGetState(_ref) {
|
|
|
17
17
|
|
|
18
18
|
// Avoid returning new route objects if we don't need to
|
|
19
19
|
const routes = state.routes.map(route => {
|
|
20
|
-
|
|
21
|
-
const childState = (_getStateListeners$ro = getStateListeners[route.key]) === null || _getStateListeners$ro === void 0 ? void 0 : _getStateListeners$ro.call(getStateListeners);
|
|
20
|
+
const childState = getStateListeners[route.key]?.();
|
|
22
21
|
if (route.state === childState) {
|
|
23
22
|
return route;
|
|
24
23
|
}
|
|
@@ -36,7 +35,7 @@ export function useOnGetState(_ref) {
|
|
|
36
35
|
};
|
|
37
36
|
}, [getState, getStateListeners]);
|
|
38
37
|
React.useEffect(() => {
|
|
39
|
-
return addKeyedListener
|
|
38
|
+
return addKeyedListener?.('getState', key, getRehydratedState);
|
|
40
39
|
}, [addKeyedListener, getRehydratedState, key]);
|
|
41
40
|
}
|
|
42
41
|
//# sourceMappingURL=useOnGetState.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","isArrayEqual","NavigationBuilderContext","NavigationRouteContext","useOnGetState","getState","getStateListeners","addKeyedListener","useContext","route","key","getRehydratedState","useCallback","state","routes","map","childState","useEffect"],"sourceRoot":"../../src","sources":["useOnGetState.tsx"],"mappings":"AACA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAE9B,SAASC,YAAY,QAAQ,gBAAgB;AAC7C,SAEEC,wBAAwB,QACnB,4BAA4B;AACnC,SAASC,sBAAsB,QAAQ,0BAA0B;AAOjE,OAAO,SAASC,
|
|
1
|
+
{"version":3,"names":["React","isArrayEqual","NavigationBuilderContext","NavigationRouteContext","useOnGetState","_ref","getState","getStateListeners","addKeyedListener","useContext","route","key","getRehydratedState","useCallback","state","routes","map","childState","useEffect"],"sourceRoot":"../../src","sources":["useOnGetState.tsx"],"mappings":"AACA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAE9B,SAASC,YAAY,QAAQ,gBAAgB;AAC7C,SAEEC,wBAAwB,QACnB,4BAA4B;AACnC,SAASC,sBAAsB,QAAQ,0BAA0B;AAOjE,OAAO,SAASC,aAAaA,CAAAC,IAAA,EAA2C;EAAA,IAA1C;IAAEC,QAAQ;IAAEC;EAA2B,CAAC,GAAAF,IAAA;EACpE,MAAM;IAAEG;EAAiB,CAAC,GAAGR,KAAK,CAACS,UAAU,CAACP,wBAAwB,CAAC;EACvE,MAAMQ,KAAK,GAAGV,KAAK,CAACS,UAAU,CAACN,sBAAsB,CAAC;EACtD,MAAMQ,GAAG,GAAGD,KAAK,GAAGA,KAAK,CAACC,GAAG,GAAG,MAAM;EAEtC,MAAMC,kBAAkB,GAAGZ,KAAK,CAACa,WAAW,CAAC,MAAM;IACjD,MAAMC,KAAK,GAAGR,QAAQ,CAAC,CAAC;;IAExB;IACA,MAAMS,MAAM,GAAGD,KAAK,CAACC,MAAM,CAACC,GAAG,CAAEN,KAAK,IAAK;MACzC,MAAMO,UAAU,GAAGV,iBAAiB,CAACG,KAAK,CAACC,GAAG,CAAC,GAAG,CAAC;MAEnD,IAAID,KAAK,CAACI,KAAK,KAAKG,UAAU,EAAE;QAC9B,OAAOP,KAAK;MACd;MAEA,OAAO;QAAE,GAAGA,KAAK;QAAEI,KAAK,EAAEG;MAAW,CAAC;IACxC,CAAC,CAAC;IAEF,IAAIhB,YAAY,CAACa,KAAK,CAACC,MAAM,EAAEA,MAAM,CAAC,EAAE;MACtC,OAAOD,KAAK;IACd;IAEA,OAAO;MAAE,GAAGA,KAAK;MAAEC;IAAO,CAAC;EAC7B,CAAC,EAAE,CAACT,QAAQ,EAAEC,iBAAiB,CAAC,CAAC;EAEjCP,KAAK,CAACkB,SAAS,CAAC,MAAM;IACpB,OAAOV,gBAAgB,GAAG,UAAU,EAAEG,GAAG,EAAEC,kBAAkB,CAAC;EAChE,CAAC,EAAE,CAACJ,gBAAgB,EAAEI,kBAAkB,EAAED,GAAG,CAAC,CAAC;AACjD"}
|
|
@@ -15,14 +15,13 @@ export const shouldPreventRemove = (emitter, beforeRemoveListeners, currentRoute
|
|
|
15
15
|
[VISITED_ROUTE_KEYS]: visitedRouteKeys
|
|
16
16
|
};
|
|
17
17
|
for (const route of removedRoutes) {
|
|
18
|
-
var _beforeRemoveListener;
|
|
19
18
|
if (visitedRouteKeys.has(route.key)) {
|
|
20
19
|
// Skip if we've already emitted this action for this screen
|
|
21
20
|
continue;
|
|
22
21
|
}
|
|
23
22
|
|
|
24
23
|
// First, we need to check if any child screens want to prevent it
|
|
25
|
-
const isPrevented =
|
|
24
|
+
const isPrevented = beforeRemoveListeners[route.key]?.(beforeRemoveAction);
|
|
26
25
|
if (isPrevented) {
|
|
27
26
|
return true;
|
|
28
27
|
}
|
|
@@ -51,10 +50,10 @@ export function useOnPreventRemove(_ref) {
|
|
|
51
50
|
addKeyedListener
|
|
52
51
|
} = React.useContext(NavigationBuilderContext);
|
|
53
52
|
const route = React.useContext(NavigationRouteContext);
|
|
54
|
-
const routeKey = route
|
|
53
|
+
const routeKey = route?.key;
|
|
55
54
|
React.useEffect(() => {
|
|
56
55
|
if (routeKey) {
|
|
57
|
-
return addKeyedListener
|
|
56
|
+
return addKeyedListener?.('beforeRemove', routeKey, action => {
|
|
58
57
|
const state = getState();
|
|
59
58
|
return shouldPreventRemove(emitter, beforeRemoveListeners, state.routes, [], action);
|
|
60
59
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","NavigationBuilderContext","NavigationRouteContext","VISITED_ROUTE_KEYS","Symbol","shouldPreventRemove","emitter","beforeRemoveListeners","currentRoutes","nextRoutes","action","nextRouteKeys","map","route","key","removedRoutes","filter","includes","reverse","visitedRouteKeys","Set","beforeRemoveAction","has","isPrevented","add","event","emit","type","target","data","canPreventDefault","defaultPrevented","useOnPreventRemove","getState","addKeyedListener","useContext","routeKey","useEffect","state","routes"],"sourceRoot":"../../src","sources":["useOnPreventRemove.tsx"],"mappings":"AAIA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAE9B,SAEEC,wBAAwB,QACnB,4BAA4B;AACnC,SAASC,sBAAsB,QAAQ,0BAA0B;AAUjE,MAAMC,kBAAkB,GAAGC,MAAM,CAAC,oBAAoB,CAAC;AAEvD,OAAO,MAAMC,mBAAmB,
|
|
1
|
+
{"version":3,"names":["React","NavigationBuilderContext","NavigationRouteContext","VISITED_ROUTE_KEYS","Symbol","shouldPreventRemove","emitter","beforeRemoveListeners","currentRoutes","nextRoutes","action","nextRouteKeys","map","route","key","removedRoutes","filter","includes","reverse","visitedRouteKeys","Set","beforeRemoveAction","has","isPrevented","add","event","emit","type","target","data","canPreventDefault","defaultPrevented","useOnPreventRemove","_ref","getState","addKeyedListener","useContext","routeKey","useEffect","state","routes"],"sourceRoot":"../../src","sources":["useOnPreventRemove.tsx"],"mappings":"AAIA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAE9B,SAEEC,wBAAwB,QACnB,4BAA4B;AACnC,SAASC,sBAAsB,QAAQ,0BAA0B;AAUjE,MAAMC,kBAAkB,GAAGC,MAAM,CAAC,oBAAoB,CAAC;AAEvD,OAAO,MAAMC,mBAAmB,GAAGA,CACjCC,OAAkD,EAClDC,qBAA4E,EAC5EC,aAAgC,EAChCC,UAA0C,EAC1CC,MAAwB,KACrB;EACH,MAAMC,aAAa,GAAGF,UAAU,CAACG,GAAG,CAAEC,KAAK,IAAKA,KAAK,CAACC,GAAG,CAAC;;EAE1D;EACA,MAAMC,aAAa,GAAGP,aAAa,CAChCQ,MAAM,CAAEH,KAAK,IAAK,CAACF,aAAa,CAACM,QAAQ,CAACJ,KAAK,CAACC,GAAG,CAAC,CAAC,CACrDI,OAAO,CAAC,CAAC;EAEZ,MAAMC,gBAA6B;EACjC;EACAT,MAAM,CAACP,kBAAkB,CAAC,IAAI,IAAIiB,GAAG,CAAS,CAAC;EAEjD,MAAMC,kBAAkB,GAAG;IACzB,GAAGX,MAAM;IACT,CAACP,kBAAkB,GAAGgB;EACxB,CAAC;EAED,KAAK,MAAMN,KAAK,IAAIE,aAAa,EAAE;IACjC,IAAII,gBAAgB,CAACG,GAAG,CAACT,KAAK,CAACC,GAAG,CAAC,EAAE;MACnC;MACA;IACF;;IAEA;IACA,MAAMS,WAAW,GAAGhB,qBAAqB,CAACM,KAAK,CAACC,GAAG,CAAC,GAAGO,kBAAkB,CAAC;IAE1E,IAAIE,WAAW,EAAE;MACf,OAAO,IAAI;IACb;IAEAJ,gBAAgB,CAACK,GAAG,CAACX,KAAK,CAACC,GAAG,CAAC;IAE/B,MAAMW,KAAK,GAAGnB,OAAO,CAACoB,IAAI,CAAC;MACzBC,IAAI,EAAE,cAAc;MACpBC,MAAM,EAAEf,KAAK,CAACC,GAAG;MACjBe,IAAI,EAAE;QAAEnB,MAAM,EAAEW;MAAmB,CAAC;MACpCS,iBAAiB,EAAE;IACrB,CAAC,CAAC;IAEF,IAAIL,KAAK,CAACM,gBAAgB,EAAE;MAC1B,OAAO,IAAI;IACb;EACF;EAEA,OAAO,KAAK;AACd,CAAC;AAED,OAAO,SAASC,kBAAkBA,CAAAC,IAAA,EAItB;EAAA,IAJuB;IACjCC,QAAQ;IACR5B,OAAO;IACPC;EACO,CAAC,GAAA0B,IAAA;EACR,MAAM;IAAEE;EAAiB,CAAC,GAAGnC,KAAK,CAACoC,UAAU,CAACnC,wBAAwB,CAAC;EACvE,MAAMY,KAAK,GAAGb,KAAK,CAACoC,UAAU,CAAClC,sBAAsB,CAAC;EACtD,MAAMmC,QAAQ,GAAGxB,KAAK,EAAEC,GAAG;EAE3Bd,KAAK,CAACsC,SAAS,CAAC,MAAM;IACpB,IAAID,QAAQ,EAAE;MACZ,OAAOF,gBAAgB,GAAG,cAAc,EAAEE,QAAQ,EAAG3B,MAAM,IAAK;QAC9D,MAAM6B,KAAK,GAAGL,QAAQ,CAAC,CAAC;QAExB,OAAO7B,mBAAmB,CACxBC,OAAO,EACPC,qBAAqB,EACrBgC,KAAK,CAACC,MAAM,EACZ,EAAE,EACF9B,MACF,CAAC;MACH,CAAC,CAAC;IACJ;EACF,CAAC,EAAE,CAACyB,gBAAgB,EAAE5B,qBAAqB,EAAED,OAAO,EAAE4B,QAAQ,EAAEG,QAAQ,CAAC,CAAC;AAC5E"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","NavigationBuilderContext","useOnRouteFocus","router","getState","key","sourceRouteKey","setState","onRouteFocus","onRouteFocusParent","useContext","useCallback","state","result","getStateForRouteFocus","undefined"],"sourceRoot":"../../src","sources":["useOnRouteFocus.tsx"],"mappings":"AAKA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAE9B,SAASC,wBAAwB,QAAQ,4BAA4B;AASrE;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,
|
|
1
|
+
{"version":3,"names":["React","NavigationBuilderContext","useOnRouteFocus","_ref","router","getState","key","sourceRouteKey","setState","onRouteFocus","onRouteFocusParent","useContext","useCallback","state","result","getStateForRouteFocus","undefined"],"sourceRoot":"../../src","sources":["useOnRouteFocus.tsx"],"mappings":"AAKA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAE9B,SAASC,wBAAwB,QAAQ,4BAA4B;AASrE;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,eAAeA,CAAAC,IAAA,EAKX;EAAA,IAL6C;IAC/DC,MAAM;IACNC,QAAQ;IACRC,GAAG,EAAEC,cAAc;IACnBC;EACe,CAAC,GAAAL,IAAA;EAChB,MAAM;IAAEM,YAAY,EAAEC;EAAmB,CAAC,GAAGV,KAAK,CAACW,UAAU,CAC3DV,wBACF,CAAC;EAED,OAAOD,KAAK,CAACY,WAAW,CACrBN,GAAW,IAAK;IACf,MAAMO,KAAK,GAAGR,QAAQ,CAAC,CAAC;IACxB,MAAMS,MAAM,GAAGV,MAAM,CAACW,qBAAqB,CAACF,KAAK,EAAEP,GAAG,CAAC;IAEvD,IAAIQ,MAAM,KAAKD,KAAK,EAAE;MACpBL,QAAQ,CAACM,MAAM,CAAC;IAClB;IAEA,IAAIJ,kBAAkB,KAAKM,SAAS,IAAIT,cAAc,KAAKS,SAAS,EAAE;MACpEN,kBAAkB,CAACH,cAAc,CAAC;IACpC;EACF,CAAC,EACD,CAACF,QAAQ,EAAEK,kBAAkB,EAAEN,MAAM,EAAEI,QAAQ,EAAED,cAAc,CACjE,CAAC;AACH"}
|
|
@@ -16,7 +16,7 @@ export function useOptionsGetters(_ref) {
|
|
|
16
16
|
addOptionsGetter: parentAddOptionsGetter
|
|
17
17
|
} = React.useContext(NavigationStateContext);
|
|
18
18
|
const optionsChangeListener = React.useCallback(() => {
|
|
19
|
-
const isFocused =
|
|
19
|
+
const isFocused = navigation?.isFocused() ?? true;
|
|
20
20
|
const hasChildren = Object.keys(optionsGettersFromChildRef.current).length;
|
|
21
21
|
if (isFocused && !hasChildren) {
|
|
22
22
|
onOptionsChange(optionsRef.current ?? {});
|
|
@@ -25,13 +25,12 @@ export function useOptionsGetters(_ref) {
|
|
|
25
25
|
React.useEffect(() => {
|
|
26
26
|
optionsRef.current = options;
|
|
27
27
|
optionsChangeListener();
|
|
28
|
-
return navigation
|
|
28
|
+
return navigation?.addListener('focus', optionsChangeListener);
|
|
29
29
|
}, [navigation, options, optionsChangeListener]);
|
|
30
30
|
const getOptionsFromListener = React.useCallback(() => {
|
|
31
|
-
for (
|
|
32
|
-
if (optionsGettersFromChildRef.current
|
|
33
|
-
|
|
34
|
-
const result = (_optionsGettersFromCh = (_optionsGettersFromCh2 = optionsGettersFromChildRef.current)[key]) === null || _optionsGettersFromCh === void 0 ? void 0 : _optionsGettersFromCh.call(_optionsGettersFromCh2);
|
|
31
|
+
for (const key in optionsGettersFromChildRef.current) {
|
|
32
|
+
if (key in optionsGettersFromChildRef.current) {
|
|
33
|
+
const result = optionsGettersFromChildRef.current[key]?.();
|
|
35
34
|
|
|
36
35
|
// null means unfocused route
|
|
37
36
|
if (result !== null) {
|
|
@@ -42,7 +41,7 @@ export function useOptionsGetters(_ref) {
|
|
|
42
41
|
return null;
|
|
43
42
|
}, []);
|
|
44
43
|
const getCurrentOptions = React.useCallback(() => {
|
|
45
|
-
const isFocused =
|
|
44
|
+
const isFocused = navigation?.isFocused() ?? true;
|
|
46
45
|
if (!isFocused) {
|
|
47
46
|
return null;
|
|
48
47
|
}
|
|
@@ -53,7 +52,7 @@ export function useOptionsGetters(_ref) {
|
|
|
53
52
|
return optionsRef.current;
|
|
54
53
|
}, [navigation, getOptionsFromListener]);
|
|
55
54
|
React.useEffect(() => {
|
|
56
|
-
return parentAddOptionsGetter
|
|
55
|
+
return parentAddOptionsGetter?.(key, getCurrentOptions);
|
|
57
56
|
}, [getCurrentOptions, parentAddOptionsGetter, key]);
|
|
58
57
|
const addOptionsGetter = React.useCallback((key, getter) => {
|
|
59
58
|
optionsGettersFromChildRef.current[key] = getter;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","NavigationBuilderContext","NavigationStateContext","useOptionsGetters","key","options","navigation","optionsRef","useRef","optionsGettersFromChildRef","onOptionsChange","useContext","addOptionsGetter","parentAddOptionsGetter","optionsChangeListener","useCallback","isFocused","hasChildren","Object","keys","current","length","useEffect","addListener","getOptionsFromListener","
|
|
1
|
+
{"version":3,"names":["React","NavigationBuilderContext","NavigationStateContext","useOptionsGetters","_ref","key","options","navigation","optionsRef","useRef","optionsGettersFromChildRef","onOptionsChange","useContext","addOptionsGetter","parentAddOptionsGetter","optionsChangeListener","useCallback","isFocused","hasChildren","Object","keys","current","length","useEffect","addListener","getOptionsFromListener","result","getCurrentOptions","optionsFromListener","getter"],"sourceRoot":"../../src","sources":["useOptionsGetters.tsx"],"mappings":"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"}
|
|
@@ -11,7 +11,7 @@ import { useRoute } from './useRoute';
|
|
|
11
11
|
* @param preventRemove Boolean indicating whether to prevent screen from being removed.
|
|
12
12
|
* @param callback Function which is executed when screen was prevented from being removed.
|
|
13
13
|
*/
|
|
14
|
-
export function
|
|
14
|
+
export function usePreventRemove(preventRemove, callback) {
|
|
15
15
|
const [id] = React.useState(() => nanoid());
|
|
16
16
|
const navigation = useNavigation();
|
|
17
17
|
const {
|
|
@@ -35,6 +35,6 @@ export function UNSTABLE_usePreventRemove(preventRemove, callback) {
|
|
|
35
35
|
data: e.data
|
|
36
36
|
});
|
|
37
37
|
});
|
|
38
|
-
React.useEffect(() => navigation
|
|
38
|
+
React.useEffect(() => navigation?.addListener('beforeRemove', beforeRemoveListener), [navigation, beforeRemoveListener]);
|
|
39
39
|
}
|
|
40
40
|
//# sourceMappingURL=usePreventRemove.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["nanoid","React","useLatestCallback","useNavigation","usePreventRemoveContext","useRoute","
|
|
1
|
+
{"version":3,"names":["nanoid","React","useLatestCallback","useNavigation","usePreventRemoveContext","useRoute","usePreventRemove","preventRemove","callback","id","useState","navigation","key","routeKey","setPreventRemove","useEffect","beforeRemoveListener","e","preventDefault","data","addListener"],"sourceRoot":"../../src","sources":["usePreventRemove.tsx"],"mappings":"AACA,SAASA,MAAM,QAAQ,mBAAmB;AAC1C,OAAO,KAAKC,KAAK,MAAM,OAAO;AAC9B,OAAOC,iBAAiB,MAAM,qBAAqB;AAGnD,SAASC,aAAa,QAAQ,iBAAiB;AAC/C,SAASC,uBAAuB,QAAQ,2BAA2B;AACnE,SAASC,QAAQ,QAAQ,YAAY;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,gBAAgBA,CAC9BC,aAAsB,EACtBC,QAAmE,EACnE;EACA,MAAM,CAACC,EAAE,CAAC,GAAGR,KAAK,CAACS,QAAQ,CAAC,MAAMV,MAAM,CAAC,CAAC,CAAC;EAE3C,MAAMW,UAAU,GAAGR,aAAa,CAAC,CAAC;EAClC,MAAM;IAAES,GAAG,EAAEC;EAAS,CAAC,GAAGR,QAAQ,CAAC,CAAC;EAEpC,MAAM;IAAES;EAAiB,CAAC,GAAGV,uBAAuB,CAAC,CAAC;EAEtDH,KAAK,CAACc,SAAS,CAAC,MAAM;IACpBD,gBAAgB,CAACL,EAAE,EAAEI,QAAQ,EAAEN,aAAa,CAAC;IAC7C,OAAO,MAAM;MACXO,gBAAgB,CAACL,EAAE,EAAEI,QAAQ,EAAE,KAAK,CAAC;IACvC,CAAC;EACH,CAAC,EAAE,CAACC,gBAAgB,EAAEL,EAAE,EAAEI,QAAQ,EAAEN,aAAa,CAAC,CAAC;EAEnD,MAAMS,oBAAoB,GAAGd,iBAAiB,CAE3Ce,CAAC,IAAK;IACP,IAAI,CAACV,aAAa,EAAE;MAClB;IACF;IAEAU,CAAC,CAACC,cAAc,CAAC,CAAC;IAElBV,QAAQ,CAAC;MAAEW,IAAI,EAAEF,CAAC,CAACE;IAAK,CAAC,CAAC;EAC5B,CAAC,CAAC;EAEFlB,KAAK,CAACc,SAAS,CACb,MAAMJ,UAAU,EAAES,WAAW,CAAC,cAAc,EAAEJ,oBAAoB,CAAC,EACnE,CAACL,UAAU,EAAEK,oBAAoB,CACnC,CAAC;AACH"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","PreventRemoveContext","usePreventRemoveContext","value","useContext","Error"],"sourceRoot":"../../src","sources":["usePreventRemoveContext.tsx"],"mappings":"AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAE9B,SAASC,oBAAoB,QAAQ,wBAAwB;AAE7D,OAAO,SAASC,
|
|
1
|
+
{"version":3,"names":["React","PreventRemoveContext","usePreventRemoveContext","value","useContext","Error"],"sourceRoot":"../../src","sources":["usePreventRemoveContext.tsx"],"mappings":"AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAE9B,SAASC,oBAAoB,QAAQ,wBAAwB;AAE7D,OAAO,SAASC,uBAAuBA,CAAA,EAAG;EACxC,MAAMC,KAAK,GAAGH,KAAK,CAACI,UAAU,CAACH,oBAAoB,CAAC;EAEpD,IAAIE,KAAK,IAAI,IAAI,EAAE;IACjB,MAAM,IAAIE,KAAK,CACb,uFACF,CAAC;EACH;EAEA,OAAOF,KAAK;AACd"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["nanoid","React","SingleNavigatorContext","useRegisterNavigator","key","useState","container","useContext","undefined","Error","useEffect","register","unregister"],"sourceRoot":"../../src","sources":["useRegisterNavigator.tsx"],"mappings":"AAAA,SAASA,MAAM,QAAQ,mBAAmB;AAC1C,OAAO,KAAKC,KAAK,MAAM,OAAO;AAE9B,SAASC,sBAAsB,QAAQ,yBAAyB;;AAEhE;AACA;AACA;AACA;AACA,OAAO,SAASC,
|
|
1
|
+
{"version":3,"names":["nanoid","React","SingleNavigatorContext","useRegisterNavigator","key","useState","container","useContext","undefined","Error","useEffect","register","unregister"],"sourceRoot":"../../src","sources":["useRegisterNavigator.tsx"],"mappings":"AAAA,SAASA,MAAM,QAAQ,mBAAmB;AAC1C,OAAO,KAAKC,KAAK,MAAM,OAAO;AAE9B,SAASC,sBAAsB,QAAQ,yBAAyB;;AAEhE;AACA;AACA;AACA;AACA,OAAO,SAASC,oBAAoBA,CAAA,EAAG;EACrC,MAAM,CAACC,GAAG,CAAC,GAAGH,KAAK,CAACI,QAAQ,CAAC,MAAML,MAAM,CAAC,CAAC,CAAC;EAC5C,MAAMM,SAAS,GAAGL,KAAK,CAACM,UAAU,CAACL,sBAAsB,CAAC;EAE1D,IAAII,SAAS,KAAKE,SAAS,EAAE;IAC3B,MAAM,IAAIC,KAAK,CACb,wLACF,CAAC;EACH;EAEAR,KAAK,CAACS,SAAS,CAAC,MAAM;IACpB,MAAM;MAAEC,QAAQ;MAAEC;IAAW,CAAC,GAAGN,SAAS;IAE1CK,QAAQ,CAACP,GAAG,CAAC;IAEb,OAAO,MAAMQ,UAAU,CAACR,GAAG,CAAC;EAC9B,CAAC,EAAE,CAACE,SAAS,EAAEF,GAAG,CAAC,CAAC;EAEpB,OAAOA,GAAG;AACZ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","NavigationRouteContext","useRoute","route","useContext","undefined","Error"],"sourceRoot":"../../src","sources":["useRoute.tsx"],"mappings":"AACA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAE9B,SAASC,sBAAsB,QAAQ,0BAA0B;AAGjE;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,
|
|
1
|
+
{"version":3,"names":["React","NavigationRouteContext","useRoute","route","useContext","undefined","Error"],"sourceRoot":"../../src","sources":["useRoute.tsx"],"mappings":"AACA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAE9B,SAASC,sBAAsB,QAAQ,0BAA0B;AAGjE;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,QAAQA,CAAA,EAA0C;EAChE,MAAMC,KAAK,GAAGH,KAAK,CAACI,UAAU,CAACH,sBAAsB,CAAC;EAEtD,IAAIE,KAAK,KAAKE,SAAS,EAAE;IACvB,MAAM,IAAIC,KAAK,CACb,iFACF,CAAC;EACH;EAEA,OAAOH,KAAK;AACd"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
+
import { isRecordEqual } from './isRecordEqual';
|
|
2
3
|
/**
|
|
3
4
|
* Utilites such as `getFocusedRouteNameFromRoute` need to access state.
|
|
4
5
|
* So we need a way to suppress the warning for those use cases.
|
|
@@ -20,21 +21,24 @@ export function useRouteCache(routes) {
|
|
|
20
21
|
return routes;
|
|
21
22
|
}
|
|
22
23
|
cache.current = routes.reduce((acc, route) => {
|
|
23
|
-
const previous = cache.current.get(route);
|
|
24
|
-
|
|
24
|
+
const previous = cache.current.get(route.key);
|
|
25
|
+
const {
|
|
26
|
+
state,
|
|
27
|
+
...routeWithoutState
|
|
28
|
+
} = route;
|
|
29
|
+
let proxy;
|
|
30
|
+
if (previous && isRecordEqual(previous, routeWithoutState)) {
|
|
25
31
|
// If a cached route object already exists, reuse it
|
|
26
|
-
|
|
32
|
+
proxy = previous;
|
|
27
33
|
} else {
|
|
28
|
-
|
|
29
|
-
state,
|
|
30
|
-
...proxy
|
|
31
|
-
} = route;
|
|
32
|
-
Object.defineProperty(proxy, CHILD_STATE, {
|
|
33
|
-
enumerable: false,
|
|
34
|
-
value: state
|
|
35
|
-
});
|
|
36
|
-
acc.set(route, proxy);
|
|
34
|
+
proxy = routeWithoutState;
|
|
37
35
|
}
|
|
36
|
+
Object.defineProperty(proxy, CHILD_STATE, {
|
|
37
|
+
enumerable: false,
|
|
38
|
+
configurable: true,
|
|
39
|
+
value: state
|
|
40
|
+
});
|
|
41
|
+
acc.set(route.key, proxy);
|
|
38
42
|
return acc;
|
|
39
43
|
}, new Map());
|
|
40
44
|
return Array.from(cache.current.values());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","CHILD_STATE","Symbol","useRouteCache","routes","cache","useMemo","current","Map","process","env","NODE_ENV","reduce","acc","route","previous","get","
|
|
1
|
+
{"version":3,"names":["React","isRecordEqual","CHILD_STATE","Symbol","useRouteCache","routes","cache","useMemo","current","Map","process","env","NODE_ENV","reduce","acc","route","previous","get","key","state","routeWithoutState","proxy","Object","defineProperty","enumerable","configurable","value","set","Array","from","values"],"sourceRoot":"../../src","sources":["useRouteCache.tsx"],"mappings":"AACA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAE9B,SAASC,aAAa,QAAQ,iBAAiB;AAK/C;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,WAAW,GAAGC,MAAM,CAAC,aAAa,CAAC;;AAEhD;AACA;AACA;AACA;AACA,OAAO,SAASC,aAAaA,CAC3BC,MAAuB,EACvB;EACA;EACA,MAAMC,KAAK,GAAGN,KAAK,CAACO,OAAO,CAAC,OAAO;IAAEC,OAAO,EAAE,IAAIC,GAAG,CAAC;EAAgB,CAAC,CAAC,EAAE,EAAE,CAAC;EAE7E,IAAIC,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,YAAY,EAAE;IACzC;IACA,OAAOP,MAAM;EACf;EAEAC,KAAK,CAACE,OAAO,GAAGH,MAAM,CAACQ,MAAM,CAAC,CAACC,GAAG,EAAEC,KAAK,KAAK;IAC5C,MAAMC,QAAQ,GAAGV,KAAK,CAACE,OAAO,CAACS,GAAG,CAACF,KAAK,CAACG,GAAG,CAAC;IAC7C,MAAM;MAAEC,KAAK;MAAE,GAAGC;IAAkB,CAAC,GAAGL,KAAK;IAE7C,IAAIM,KAAK;IAET,IAAIL,QAAQ,IAAIf,aAAa,CAACe,QAAQ,EAAEI,iBAAiB,CAAC,EAAE;MAC1D;MACAC,KAAK,GAAGL,QAAQ;IAClB,CAAC,MAAM;MACLK,KAAK,GAAGD,iBAAiB;IAC3B;IAEAE,MAAM,CAACC,cAAc,CAACF,KAAK,EAAEnB,WAAW,EAAE;MACxCsB,UAAU,EAAE,KAAK;MACjBC,YAAY,EAAE,IAAI;MAClBC,KAAK,EAAEP;IACT,CAAC,CAAC;IAEFL,GAAG,CAACa,GAAG,CAACZ,KAAK,CAACG,GAAG,EAAEG,KAAK,CAAC;IAEzB,OAAOP,GAAG;EACZ,CAAC,EAAE,IAAIL,GAAG,CAAC,CAAe,CAAC;EAE3B,OAAOmB,KAAK,CAACC,IAAI,CAACvB,KAAK,CAACE,OAAO,CAACsB,MAAM,CAAC,CAAC,CAAC;AAC3C"}
|
|
@@ -1,60 +1,31 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
const
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
const
|
|
11
|
-
|
|
12
|
-
isMountedRef.current = true;
|
|
2
|
+
const createStore = getInitialState => {
|
|
3
|
+
const listeners = [];
|
|
4
|
+
let state = getInitialState();
|
|
5
|
+
const getState = () => state;
|
|
6
|
+
const setState = newState => {
|
|
7
|
+
state = newState;
|
|
8
|
+
listeners.forEach(listener => listener());
|
|
9
|
+
};
|
|
10
|
+
const subscribe = callback => {
|
|
11
|
+
listeners.push(callback);
|
|
13
12
|
return () => {
|
|
14
|
-
|
|
13
|
+
const index = listeners.indexOf(callback);
|
|
14
|
+
if (index > -1) {
|
|
15
|
+
listeners.splice(index, 1);
|
|
16
|
+
}
|
|
15
17
|
};
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
const
|
|
25
|
-
|
|
26
|
-
return;
|
|
27
|
-
}
|
|
28
|
-
stateRef.current = state;
|
|
29
|
-
if (!isSchedulingRef.current) {
|
|
30
|
-
setTrackingState(state);
|
|
31
|
-
}
|
|
32
|
-
}, []);
|
|
33
|
-
const scheduleUpdate = React.useCallback(callback => {
|
|
34
|
-
isSchedulingRef.current = true;
|
|
35
|
-
try {
|
|
36
|
-
callback();
|
|
37
|
-
} finally {
|
|
38
|
-
isSchedulingRef.current = false;
|
|
39
|
-
}
|
|
40
|
-
}, []);
|
|
41
|
-
const flushUpdates = React.useCallback(() => {
|
|
42
|
-
if (!isMountedRef.current) {
|
|
43
|
-
return;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
// Make sure that the tracking state is up-to-date.
|
|
47
|
-
// We call it unconditionally, but React should skip the update if state is unchanged.
|
|
48
|
-
setTrackingState(stateRef.current);
|
|
49
|
-
}, []);
|
|
50
|
-
|
|
51
|
-
// If we're rendering and the tracking state is out of date, update it immediately
|
|
52
|
-
// This will make sure that our updates are applied as early as possible.
|
|
53
|
-
if (trackingState !== stateRef.current) {
|
|
54
|
-
setTrackingState(stateRef.current);
|
|
55
|
-
}
|
|
56
|
-
const state = stateRef.current;
|
|
18
|
+
};
|
|
19
|
+
return {
|
|
20
|
+
getState,
|
|
21
|
+
setState,
|
|
22
|
+
subscribe
|
|
23
|
+
};
|
|
24
|
+
};
|
|
25
|
+
export function useSyncState(getInitialState) {
|
|
26
|
+
const store = React.useRef(createStore(getInitialState)).current;
|
|
27
|
+
const state = React.useSyncExternalStore(store.subscribe, store.getState, store.getState);
|
|
57
28
|
React.useDebugValue(state);
|
|
58
|
-
return [state, getState, setState
|
|
29
|
+
return [state, store.getState, store.setState];
|
|
59
30
|
}
|
|
60
31
|
//# sourceMappingURL=useSyncState.js.map
|