@react-navigation/core 8.0.0-alpha.3 → 8.0.0-alpha.30
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/module/BaseNavigationContainer.js +34 -17
- package/lib/module/BaseNavigationContainer.js.map +1 -1
- package/lib/module/ConsumedParamsContext.js +5 -0
- package/lib/module/ConsumedParamsContext.js.map +1 -0
- package/lib/module/DataLoading.js +127 -0
- package/lib/module/DataLoading.js.map +1 -0
- package/lib/module/NavigationBuilderContext.js +1 -0
- package/lib/module/NavigationBuilderContext.js.map +1 -1
- package/lib/module/NavigationIndependentTree.js +17 -8
- package/lib/module/NavigationIndependentTree.js.map +1 -1
- package/lib/module/NavigationProvider.js +22 -11
- package/lib/module/NavigationProvider.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 +37 -27
- package/lib/module/PreventRemoveProvider.js.map +1 -1
- package/lib/module/SceneView.js +7 -40
- package/lib/module/SceneView.js.map +1 -1
- package/lib/module/StaticNavigation.js +179 -50
- package/lib/module/StaticNavigation.js.map +1 -1
- package/lib/module/StaticTreeContext.js +5 -0
- package/lib/module/StaticTreeContext.js.map +1 -0
- package/lib/module/checkSerializable.js +18 -13
- package/lib/module/checkSerializable.js.map +1 -1
- package/lib/module/createNavigationContainerRef.js +6 -8
- package/lib/module/createNavigationContainerRef.js.map +1 -1
- package/lib/module/createNavigatorFactory.js +27 -5
- package/lib/module/createNavigatorFactory.js.map +1 -1
- package/lib/module/findFocusedRoute.js +7 -4
- package/lib/module/findFocusedRoute.js.map +1 -1
- package/lib/module/getActionFromState.js +45 -20
- package/lib/module/getActionFromState.js.map +1 -1
- package/lib/module/getPathFromState.js +171 -90
- package/lib/module/getPathFromState.js.map +1 -1
- package/lib/module/getPatternParts.js +20 -4
- package/lib/module/getPatternParts.js.map +1 -1
- package/lib/module/getStateFromPath.js +485 -214
- package/lib/module/getStateFromPath.js.map +1 -1
- package/lib/module/getStateFromRouteParams.js +24 -0
- package/lib/module/getStateFromRouteParams.js.map +1 -0
- package/lib/module/index.js +5 -4
- package/lib/module/index.js.map +1 -1
- package/lib/module/theming/useTheme.js +1 -1
- package/lib/module/theming/useTheme.js.map +1 -1
- package/lib/module/types.js +35 -0
- package/lib/module/types.js.map +1 -1
- package/lib/module/useDescriptors.js +19 -11
- package/lib/module/useDescriptors.js.map +1 -1
- package/lib/module/useEventEmitter.js +48 -33
- package/lib/module/useEventEmitter.js.map +1 -1
- package/lib/module/useFocusEvents.js +12 -4
- package/lib/module/useFocusEvents.js.map +1 -1
- package/lib/module/useFocusedListenersChildrenAdapter.js +2 -2
- package/lib/module/useFocusedListenersChildrenAdapter.js.map +1 -1
- package/lib/module/useIsFocused.js +7 -12
- package/lib/module/useIsFocused.js.map +1 -1
- package/lib/module/useKeyedChildListeners.js +4 -2
- package/lib/module/useKeyedChildListeners.js.map +1 -1
- package/lib/module/useLazyValue.js.map +1 -1
- package/lib/module/useNavigation.js +2 -15
- package/lib/module/useNavigation.js.map +1 -1
- package/lib/module/useNavigationBuilder.js +201 -131
- package/lib/module/useNavigationBuilder.js.map +1 -1
- package/lib/module/useNavigationCache.js +22 -17
- package/lib/module/useNavigationCache.js.map +1 -1
- package/lib/module/useNavigationHelpers.js +28 -10
- package/lib/module/useNavigationHelpers.js.map +1 -1
- package/lib/module/useNavigationIndependentTree.js +1 -1
- package/lib/module/useNavigationIndependentTree.js.map +1 -1
- package/lib/module/useNavigationState.js +70 -35
- package/lib/module/useNavigationState.js.map +1 -1
- package/lib/module/useOnAction.js +37 -7
- package/lib/module/useOnAction.js.map +1 -1
- package/lib/module/useOnGetState.js +6 -3
- package/lib/module/useOnGetState.js.map +1 -1
- package/lib/module/useOnPreventRemove.js +39 -30
- package/lib/module/useOnPreventRemove.js.map +1 -1
- package/lib/module/useOnRouteFocus.js +1 -1
- package/lib/module/useOnRouteFocus.js.map +1 -1
- package/lib/module/useOptionsGetters.js +10 -5
- package/lib/module/useOptionsGetters.js.map +1 -1
- package/lib/module/usePreventRemove.js +10 -3
- package/lib/module/usePreventRemove.js.map +1 -1
- package/lib/module/usePreventRemoveContext.js +1 -1
- package/lib/module/usePreventRemoveContext.js.map +1 -1
- package/lib/module/useRegisterNavigator.js +2 -2
- package/lib/module/useRegisterNavigator.js.map +1 -1
- package/lib/module/useRoute.js +2 -0
- package/lib/module/useRoute.js.map +1 -1
- package/lib/module/useRouteCache.js +17 -11
- package/lib/module/useRouteCache.js.map +1 -1
- package/lib/module/useScheduleUpdate.js +9 -9
- package/lib/module/useScheduleUpdate.js.map +1 -1
- package/lib/module/useStateForPath.js +1 -1
- package/lib/module/useStateForPath.js.map +1 -1
- package/lib/module/useSyncState.js +7 -3
- package/lib/module/useSyncState.js.map +1 -1
- package/lib/module/validatePathConfig.js +50 -36
- package/lib/module/validatePathConfig.js.map +1 -1
- package/lib/typescript/src/BaseNavigationContainer.d.ts +6 -3
- package/lib/typescript/src/BaseNavigationContainer.d.ts.map +1 -1
- package/lib/typescript/src/ConsumedParamsContext.d.ts +3 -0
- package/lib/typescript/src/ConsumedParamsContext.d.ts.map +1 -0
- package/lib/typescript/src/DataLoading.d.ts +21 -0
- package/lib/typescript/src/DataLoading.d.ts.map +1 -0
- package/lib/typescript/src/EnsureSingleNavigator.d.ts +1 -1
- package/lib/typescript/src/EnsureSingleNavigator.d.ts.map +1 -1
- package/lib/typescript/src/Group.d.ts +1 -1
- package/lib/typescript/src/Group.d.ts.map +1 -1
- package/lib/typescript/src/NavigationBuilderContext.d.ts +9 -8
- package/lib/typescript/src/NavigationBuilderContext.d.ts.map +1 -1
- package/lib/typescript/src/NavigationContainerRefContext.d.ts +1 -1
- package/lib/typescript/src/NavigationContainerRefContext.d.ts.map +1 -1
- package/lib/typescript/src/NavigationFocusedRouteStateContext.d.ts +4 -4
- package/lib/typescript/src/NavigationFocusedRouteStateContext.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/NavigationProvider.d.ts +12 -13
- package/lib/typescript/src/NavigationProvider.d.ts.map +1 -1
- package/lib/typescript/src/NavigationStateContext.d.ts +3 -3
- package/lib/typescript/src/NavigationStateContext.d.ts.map +1 -1
- package/lib/typescript/src/PreventRemoveContext.d.ts +1 -0
- package/lib/typescript/src/PreventRemoveContext.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 +3 -2
- package/lib/typescript/src/SceneView.d.ts.map +1 -1
- package/lib/typescript/src/Screen.d.ts +1 -1
- package/lib/typescript/src/Screen.d.ts.map +1 -1
- package/lib/typescript/src/StaticContainer.d.ts +1 -1
- package/lib/typescript/src/StaticContainer.d.ts.map +1 -1
- package/lib/typescript/src/StaticNavigation.d.ts +189 -109
- package/lib/typescript/src/StaticNavigation.d.ts.map +1 -1
- package/lib/typescript/src/StaticTreeContext.d.ts +4 -0
- package/lib/typescript/src/StaticTreeContext.d.ts.map +1 -0
- package/lib/typescript/src/checkSerializable.d.ts +8 -4
- package/lib/typescript/src/checkSerializable.d.ts.map +1 -1
- package/lib/typescript/src/createNavigationContainerRef.d.ts +1 -1
- package/lib/typescript/src/createNavigationContainerRef.d.ts.map +1 -1
- package/lib/typescript/src/createNavigatorFactory.d.ts +23 -5
- package/lib/typescript/src/createNavigatorFactory.d.ts.map +1 -1
- package/lib/typescript/src/findFocusedRoute.d.ts +3 -3
- package/lib/typescript/src/findFocusedRoute.d.ts.map +1 -1
- package/lib/typescript/src/getActionFromState.d.ts +4 -4
- package/lib/typescript/src/getActionFromState.d.ts.map +1 -1
- package/lib/typescript/src/getPathFromState.d.ts +3 -3
- package/lib/typescript/src/getPathFromState.d.ts.map +1 -1
- package/lib/typescript/src/getPatternParts.d.ts +1 -0
- package/lib/typescript/src/getPatternParts.d.ts.map +1 -1
- package/lib/typescript/src/getStateFromPath.d.ts +5 -5
- package/lib/typescript/src/getStateFromPath.d.ts.map +1 -1
- package/lib/typescript/src/getStateFromRouteParams.d.ts +3 -0
- package/lib/typescript/src/getStateFromRouteParams.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +36 -33
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/theming/ThemeContext.d.ts +1 -1
- package/lib/typescript/src/theming/ThemeContext.d.ts.map +1 -1
- package/lib/typescript/src/theming/ThemeProvider.d.ts +2 -2
- package/lib/typescript/src/theming/ThemeProvider.d.ts.map +1 -1
- package/lib/typescript/src/theming/useTheme.d.ts +1 -1
- package/lib/typescript/src/theming/useTheme.d.ts.map +1 -1
- package/lib/typescript/src/types.d.ts +260 -159
- package/lib/typescript/src/types.d.ts.map +1 -1
- package/lib/typescript/src/useChildListeners.d.ts +3 -3
- package/lib/typescript/src/useChildListeners.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 +8 -8
- package/lib/typescript/src/useDescriptors.d.ts.map +1 -1
- package/lib/typescript/src/useEventEmitter.d.ts +2 -2
- package/lib/typescript/src/useEventEmitter.d.ts.map +1 -1
- package/lib/typescript/src/useFocusEvents.d.ts +2 -2
- package/lib/typescript/src/useFocusEvents.d.ts.map +1 -1
- package/lib/typescript/src/useFocusedListenersChildrenAdapter.d.ts +2 -2
- package/lib/typescript/src/useFocusedListenersChildrenAdapter.d.ts.map +1 -1
- package/lib/typescript/src/useIsFocused.d.ts +3 -0
- package/lib/typescript/src/useIsFocused.d.ts.map +1 -1
- package/lib/typescript/src/useKeyedChildListeners.d.ts +3 -3
- package/lib/typescript/src/useKeyedChildListeners.d.ts.map +1 -1
- package/lib/typescript/src/useLazyValue.d.ts.map +1 -1
- package/lib/typescript/src/useNavigation.d.ts +4 -2
- package/lib/typescript/src/useNavigation.d.ts.map +1 -1
- package/lib/typescript/src/useNavigationBuilder.d.ts +23 -30
- package/lib/typescript/src/useNavigationBuilder.d.ts.map +1 -1
- package/lib/typescript/src/useNavigationCache.d.ts +3 -3
- package/lib/typescript/src/useNavigationCache.d.ts.map +1 -1
- package/lib/typescript/src/useNavigationContainerRef.d.ts +1 -1
- package/lib/typescript/src/useNavigationContainerRef.d.ts.map +1 -1
- package/lib/typescript/src/useNavigationHelpers.d.ts +19 -27
- package/lib/typescript/src/useNavigationHelpers.d.ts.map +1 -1
- package/lib/typescript/src/useNavigationState.d.ts +13 -3
- package/lib/typescript/src/useNavigationState.d.ts.map +1 -1
- package/lib/typescript/src/useOnAction.d.ts +9 -9
- 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 +5 -9
- package/lib/typescript/src/useOnPreventRemove.d.ts.map +1 -1
- package/lib/typescript/src/useOnRouteFocus.d.ts +6 -6
- package/lib/typescript/src/useOnRouteFocus.d.ts.map +1 -1
- package/lib/typescript/src/useOptionsGetters.d.ts +1 -1
- package/lib/typescript/src/useOptionsGetters.d.ts.map +1 -1
- package/lib/typescript/src/usePreventRemove.d.ts.map +1 -1
- package/lib/typescript/src/usePreventRemoveContext.d.ts +2 -1
- package/lib/typescript/src/usePreventRemoveContext.d.ts.map +1 -1
- package/lib/typescript/src/useRoute.d.ts +7 -3
- package/lib/typescript/src/useRoute.d.ts.map +1 -1
- package/lib/typescript/src/useRouteCache.d.ts +5 -5
- package/lib/typescript/src/useRouteCache.d.ts.map +1 -1
- package/lib/typescript/src/useScheduleUpdate.d.ts +5 -4
- package/lib/typescript/src/useScheduleUpdate.d.ts.map +1 -1
- package/lib/typescript/src/useStateForPath.d.ts +1 -1
- package/lib/typescript/src/useStateForPath.d.ts.map +1 -1
- package/lib/typescript/src/useSyncState.d.ts.map +1 -1
- package/lib/typescript/src/utilities.d.ts +74 -37
- package/lib/typescript/src/utilities.d.ts.map +1 -1
- package/lib/typescript/src/validatePathConfig.d.ts.map +1 -1
- package/package.json +23 -22
- package/src/BaseNavigationContainer.tsx +351 -333
- package/src/ConsumedParamsContext.tsx +5 -0
- package/src/DataLoading.tsx +203 -0
- package/src/NavigationBuilderContext.tsx +14 -9
- package/src/NavigationFocusedRouteStateContext.tsx +4 -4
- package/src/NavigationIndependentTree.tsx +18 -12
- package/src/NavigationProvider.tsx +26 -15
- package/src/NavigationStateContext.tsx +5 -6
- package/src/PreventRemoveContext.tsx +1 -0
- package/src/PreventRemoveProvider.tsx +51 -46
- package/src/SceneView.tsx +7 -39
- package/src/StaticNavigation.tsx +659 -307
- package/src/StaticTreeContext.tsx +7 -0
- package/src/checkSerializable.tsx +35 -19
- package/src/createNavigationContainerRef.tsx +12 -9
- package/src/createNavigatorFactory.tsx +92 -8
- package/src/findFocusedRoute.tsx +13 -8
- package/src/getActionFromState.tsx +86 -51
- package/src/getPathFromState.tsx +254 -128
- package/src/getPatternParts.tsx +25 -4
- package/src/getStateFromPath.tsx +811 -309
- package/src/getStateFromRouteParams.tsx +60 -0
- package/src/index.tsx +55 -5
- package/src/theming/useTheme.tsx +1 -1
- package/src/types.tsx +798 -373
- package/src/useDescriptors.tsx +28 -14
- package/src/useEventEmitter.tsx +52 -38
- package/src/useFocusEvents.tsx +15 -7
- package/src/useFocusedListenersChildrenAdapter.tsx +2 -2
- package/src/useIsFocused.tsx +14 -21
- package/src/useKeyedChildListeners.tsx +4 -2
- package/src/useLazyValue.tsx +2 -2
- package/src/useNavigation.tsx +7 -24
- package/src/useNavigationBuilder.tsx +311 -186
- package/src/useNavigationCache.tsx +32 -25
- package/src/useNavigationHelpers.tsx +27 -10
- package/src/useNavigationIndependentTree.tsx +1 -1
- package/src/useNavigationState.tsx +93 -59
- package/src/useOnAction.tsx +61 -13
- package/src/useOnGetState.tsx +5 -3
- package/src/useOnPreventRemove.tsx +75 -42
- package/src/useOnRouteFocus.tsx +10 -12
- package/src/useOptionsGetters.tsx +11 -5
- package/src/usePreventRemove.tsx +12 -3
- package/src/usePreventRemoveContext.tsx +1 -1
- package/src/useRegisterNavigator.tsx +2 -2
- package/src/useRoute.tsx +20 -6
- package/src/useRouteCache.tsx +22 -16
- package/src/useScheduleUpdate.tsx +9 -10
- package/src/useStateForPath.tsx +1 -1
- package/src/useSyncState.tsx +8 -3
- package/src/utilities.tsx +144 -31
- package/src/validatePathConfig.tsx +86 -57
- package/lib/module/CurrentRenderContext.js +0 -10
- package/lib/module/CurrentRenderContext.js.map +0 -1
- package/lib/module/useCurrentRender.js +0 -19
- package/lib/module/useCurrentRender.js.map +0 -1
- package/lib/typescript/src/CurrentRenderContext.d.ts +0 -9
- package/lib/typescript/src/CurrentRenderContext.d.ts.map +0 -1
- package/lib/typescript/src/useCurrentRender.d.ts +0 -14
- package/lib/typescript/src/useCurrentRender.d.ts.map +0 -1
- package/src/CurrentRenderContext.tsx +0 -9
- package/src/useCurrentRender.tsx +0 -31
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["CommonActions","deepEqual","React","isValidElementType","useLatestCallback","deepFreeze","Group","isArrayEqual","isRecordEqual","NavigationBuilderContext","NavigationHelpersContext","NavigationMetaContext","NavigationRouteContext","NavigationStateContext","PreventRemoveProvider","Screen","PrivateValueStore","UnhandledActionContext","useChildListeners","useComponent","useCurrentRender","useDescriptors","useEventEmitter","useFocusedListenersChildrenAdapter","useFocusEvents","useKeyedChildListeners","useLazyValue","useNavigationHelpers","NavigationStateListenerProvider","useOnAction","useOnGetState","useOnRouteFocus","useRegisterNavigator","useScheduleUpdate","jsx","_jsx","isScreen","child","type","isGroup","Fragment","isValidKey","key","undefined","getRouteConfigsFromChildren","children","groupKey","groupOptions","groupLayout","configs","Children","toArray","reduce","acc","isValidElement","props","Error","name","JSON","stringify","navigationKey","push","keys","options","layout","screenOptions","screenLayout","String","process","env","NODE_ENV","forEach","config","component","getComponent","console","warn","test","getStateFromParams","params","state","screen","initial","routes","path","useNavigationBuilder","createRouter","navigatorKey","route","useContext","screenListeners","router","routerOverrides","rest","routeConfigs","initialRouteName","every","original","overrides","screens","routeNames","map","routeKeyList","curr","join","routeParamList","initialParams","routeGetIdList","Object","assign","getId","length","isStateValid","useCallback","isStateInitialized","stale","doesStateHaveOnlyInvalidRoutes","r","includes","currentState","getState","getCurrentState","setState","setCurrentState","setKey","getKey","getIsInitial","stateCleanedUp","useRef","current","stateBeforeInitialization","initializedState","isFirstStateInitialization","useMemo","initialRouteParamList","initialParamsFromParams","getInitialState","stateFromParams","hydratedState","getRehydratedState","routeNamesChangeBehavior","previousRouteKeyListRef","useEffect","previousRouteKeyList","unhandledState","setUnhandledState","useState","nextState","shouldClearUnhandledState","getStateForRouteNamesChange","routeKeyChanges","filter","previousNestedParamsRef","previousParams","action","reset","navigate","merge","pop","updatedState","getStateForAction","shouldUpdate","stateRef","useLayoutEffect","onEmitEvent","emitter","e","target","find","index","navigation","descriptors","listeners","concat","cb","i","self","lastIndexOf","listener","data","defaultPrevented","emit","childListeners","addListener","keyedListeners","addKeyedListener","onAction","actionListeners","beforeRemoveListeners","beforeRemove","routerConfigOptions","onRouteFocus","onUnhandledActionParent","onUnhandledAction","payload","focusedListeners","focus","getStateListeners","getRoutesFromState","NavigationContent","element","Provider","value"],"sourceRoot":"../../src","sources":["useNavigationBuilder.tsx"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["CommonActions","deepEqual","React","isValidElementType","useLatestCallback","ConsumedParamsContext","deepFreeze","Group","isArrayEqual","NavigationBuilderContext","NavigationHelpersContext","NavigationMetaContext","NavigationRouteContext","NavigationStateContext","PreventRemoveProvider","Screen","PrivateValueStore","UnhandledActionContext","useChildListeners","useComponent","useDescriptors","useEventEmitter","useFocusedListenersChildrenAdapter","useFocusEvents","FocusedRouteKeyContext","useKeyedChildListeners","useLazyValue","useNavigationHelpers","NavigationStateListenerProvider","useOnAction","useOnGetState","useOnRouteFocus","useRegisterNavigator","useScheduleUpdate","jsx","_jsx","isNavigationState","state","Array","isArray","routes","isScreen","child","type","isGroup","Fragment","isValidKey","key","undefined","getRouteConfigsFromChildren","children","groupKeys","groupOptions","groupLayout","configs","Children","toArray","reduce","acc","isValidElement","props","Error","name","JSON","stringify","navigationKey","push","keys","options","layout","screenOptions","screenLayout","String","process","env","NODE_ENV","forEach","config","component","getComponent","console","warn","test","getStateFromParams","params","error","screen","initial","path","useNavigationBuilder","createRouter","navigatorKey","route","use","consumedParams","isNestedParamsConsumed","has","screenListeners","router","routerOverrides","rest","routeConfigs","initialRouteName","every","original","overrides","routeNames","map","length","screens","routeKeyList","routeParamList","routeGetIdList","initialParams","Object","assign","getId","isStateValid","useCallback","isStateInitialized","stale","doesStateHaveOnlyInvalidRoutes","r","includes","currentState","getState","getCurrentState","setState","setCurrentState","setKey","getKey","getIsInitial","onEmitEvent","getIsStateEmitted","stateCleanupRef","useRef","lastStateRef","current","stateBeforeInitialization","initializedState","isFirstStateInitialization","paramsUsedForInitialization","useMemo","getRehydratedState","initialRouteParamList","curr","initialParamsFromParams","getInitialState","paramsForState","stateFromParams","hydratedState","routeNamesChangeBehavior","previousRouteKeyListRef","useInsertionEffect","previousRouteKeyList","routeKeyChanges","filter","previous","unhandledState","setUnhandledState","useState","nextState","shouldClearUnhandledState","getStateForRouteNamesChange","didConsumeNestedParams","action","reset","payload","merge","pop","updatedState","getStateForAction","names","join","useEffect","set","shouldUpdate","lastNotifiedStateRef","emitter","e","target","find","index","hasPerScreenListeners","some","listeners","descriptor","descriptors","navigation","concat","cb","i","self","lastIndexOf","listener","emit","data","childListeners","addListener","keyedListeners","addKeyedListener","onAction","actionListeners","beforeRemoveListeners","beforeRemove","routerConfigOptions","onRouteFocus","onUnhandledActionParent","onUnhandledAction","focusedListeners","focus","getStateListeners","NavigationContent","focusedRoute","element","Provider","value"],"sourceRoot":"../../src","sources":["useNavigationBuilder.tsx"],"mappings":";;AAAA,SACEA,aAAa,QAUR,2BAA2B;AAClC,OAAOC,SAAS,MAAM,iBAAiB;AACvC,OAAO,KAAKC,KAAK,MAAM,OAAO;AAC9B,SAASC,kBAAkB,QAAQ,UAAU;AAC7C,OAAOC,iBAAiB,MAAM,qBAAqB;AAEnD,SAASC,qBAAqB,QAAQ,4BAAyB;AAC/D,SAASC,UAAU,QAAQ,iBAAc;AACzC,SAASC,KAAK,QAAQ,YAAS;AAC/B,SAASC,YAAY,QAAQ,mBAAgB;AAC7C,SAASC,wBAAwB,QAAQ,+BAA4B;AACrE,SAASC,wBAAwB,QAAQ,+BAA4B;AACrE,SAASC,qBAAqB,QAAQ,4BAAyB;AAC/D,SAASC,sBAAsB,QAAQ,yBAAsB;AAC7D,SAASC,sBAAsB,QAAQ,6BAA0B;AACjE,SAASC,qBAAqB,QAAQ,4BAAyB;AAC/D,SAASC,MAAM,QAAQ,aAAU;AACjC,SAKEC,iBAAiB,QAEZ,YAAS;AAChB,SAASC,sBAAsB,QAAQ,6BAA0B;AACjE,SAASC,iBAAiB,QAAQ,wBAAqB;AACvD,SAASC,YAAY,QAAQ,mBAAgB;AAC7C,SAAsCC,cAAc,QAAQ,qBAAkB;AAC9E,SAASC,eAAe,QAAQ,sBAAmB;AACnD,SAASC,kCAAkC,QAAQ,yCAAsC;AACzF,SAASC,cAAc,QAAQ,qBAAkB;AACjD,SAASC,sBAAsB,QAAQ,mBAAgB;AACvD,SAASC,sBAAsB,QAAQ,6BAA0B;AACjE,SAASC,YAAY,QAAQ,mBAAgB;AAC7C,SAASC,oBAAoB,QAAQ,2BAAwB;AAC7D,SAASC,+BAA+B,QAAQ,yBAAsB;AACtE,SAASC,WAAW,QAAQ,kBAAe;AAC3C,SAASC,aAAa,QAAQ,oBAAiB;AAC/C,SAASC,eAAe,QAAQ,sBAAmB;AACnD,SAASC,oBAAoB,QAAQ,2BAAwB;AAC7D,SAASC,iBAAiB,QAAQ,wBAAqB;;AAEvD;AACA;AAAA,SAAAC,GAAA,IAAAC,IAAA;AACAnB,iBAAiB;AAOjB,MAAMoB,iBAAiB,GACrBC,KAAc,IAEdA,KAAK,IAAI,IAAI,IACb,OAAOA,KAAK,KAAK,QAAQ,IACzB,QAAQ,IAAIA,KAAK,IACjBC,KAAK,CAACC,OAAO,CAACF,KAAK,CAACG,MAAM,CAAC;AAE7B,MAAMC,QAAQ,GACZC,KAAkC,IAI9B;EACJ,OAAOA,KAAK,CAACC,IAAI,KAAK5B,MAAM;AAC9B,CAAC;AAED,MAAM6B,OAAO,GACXF,KAAkC,IAM9B;EACJ,OAAOA,KAAK,CAACC,IAAI,KAAKzC,KAAK,CAAC2C,QAAQ,IAAIH,KAAK,CAACC,IAAI,KAAKpC,KAAK;AAC9D,CAAC;AAED,MAAMuC,UAAU,GAAIC,GAAY,IAC9BA,GAAG,KAAKC,SAAS,IAAK,OAAOD,GAAG,KAAK,QAAQ,IAAIA,GAAG,KAAK,EAAG;;AAE9D;AACA;AACA;AACA;AACA;AACA,MAAME,2BAA2B,GAAGA,CAKlCC,QAAyB,EACzBC,SAAmB,GAAG,EAAE,EACxBC,YAIY,EACZC,WAA8E,KAC3E;EACH,MAAMC,OAAO,GAAGpD,KAAK,CAACqD,QAAQ,CAACC,OAAO,CAACN,QAAQ,CAAC,CAACO,MAAM,CAErD,CAACC,GAAG,EAAEhB,KAAK,KAAK;IAChB,iBAAIxC,KAAK,CAACyD,cAAc,CAACjB,KAAK,CAAC,EAAE;MAC/B,IAAID,QAAQ,CAACC,KAAK,CAAC,EAAE;QACnB;QACA;;QAEA,IAAI,OAAOA,KAAK,CAACkB,KAAK,KAAK,QAAQ,IAAIlB,KAAK,CAACkB,KAAK,KAAK,IAAI,EAAE;UAC3D,MAAM,IAAIC,KAAK,CAAC,oCAAoC,CAAC;QACvD;QAEA,IAAI,OAAOnB,KAAK,CAACkB,KAAK,CAACE,IAAI,KAAK,QAAQ,IAAIpB,KAAK,CAACkB,KAAK,CAACE,IAAI,KAAK,EAAE,EAAE;UACnE,MAAM,IAAID,KAAK,CACb,wBAAwBE,IAAI,CAACC,SAAS,CACpCtB,KAAK,CAACkB,KAAK,CAACE,IACd,CAAC,kDACH,CAAC;QACH;QAEA,IACEpB,KAAK,CAACkB,KAAK,CAACK,aAAa,KAAKjB,SAAS,KACtC,OAAON,KAAK,CAACkB,KAAK,CAACK,aAAa,KAAK,QAAQ,IAC5CvB,KAAK,CAACkB,KAAK,CAACK,aAAa,KAAK,EAAE,CAAC,EACnC;UACA,MAAM,IAAIJ,KAAK,CACb,wCAAwCE,IAAI,CAACC,SAAS,CACpDtB,KAAK,CAACkB,KAAK,CAACK,aACd,CAAC,qBACCvB,KAAK,CAACkB,KAAK,CAACE,IAAI,kDAEpB,CAAC;QACH;QAEAJ,GAAG,CAACQ,IAAI,CAAC;UACPC,IAAI,EAAE,CAAC,GAAGhB,SAAS,EAAET,KAAK,CAACkB,KAAK,CAACK,aAAa,CAAC;UAC/CG,OAAO,EAAEhB,YAAY;UACrBiB,MAAM,EAAEhB,WAAW;UACnBO,KAAK,EAAElB,KAAK,CAACkB;QAQf,CAAC,CAAC;QAEF,OAAOF,GAAG;MACZ;MAEA,IAAId,OAAO,CAACF,KAAK,CAAC,EAAE;QAClB,IAAI,CAACI,UAAU,CAACJ,KAAK,CAACkB,KAAK,CAACK,aAAa,CAAC,EAAE;UAC1C,MAAM,IAAIJ,KAAK,CACb,wCAAwCE,IAAI,CAACC,SAAS,CACpDtB,KAAK,CAACkB,KAAK,CAACK,aACd,CAAC,gEACH,CAAC;QACH;;QAEA;QACA;QACAP,GAAG,CAACQ,IAAI,CACN,GAAGjB,2BAA2B,CAC5BP,KAAK,CAACkB,KAAK,CAACV,QAAQ,EACpBR,KAAK,CAACkB,KAAK,CAACK,aAAa,IAAI,IAAI,GAC7B,CAAC,GAAGd,SAAS,EAAET,KAAK,CAACkB,KAAK,CAACK,aAAa,CAAC,GACzCd,SAAS;QACb;QACA;QACAT,KAAK,CAACC,IAAI,KAAKpC,KAAK,GAChB6C,YAAY,GACZA,YAAY,IAAI,IAAI,GAClB,CAAC,GAAGA,YAAY,EAAEV,KAAK,CAACkB,KAAK,CAACU,aAAa,CAAC,GAC5C,CAAC5B,KAAK,CAACkB,KAAK,CAACU,aAAa,CAAC,EACjC,OAAO5B,KAAK,CAACkB,KAAK,CAACW,YAAY,KAAK,UAAU,GAC1C7B,KAAK,CAACkB,KAAK,CAACW,YAAY,GACxBlB,WACN,CACF,CAAC;QAED,OAAOK,GAAG;MACZ;IACF;IAEA,MAAM,IAAIG,KAAK,CACb,oGACE,cAAA3D,KAAK,CAACyD,cAAc,CAACjB,KAAK,CAAC,GACvB,IACE,OAAOA,KAAK,CAACC,IAAI,KAAK,QAAQ,GAAGD,KAAK,CAACC,IAAI,GAAGD,KAAK,CAACC,IAAI,EAAEmB,IAAI,IAE9DpB,KAAK,CAACkB,KAAK,IAAI,IAAI,IACnB,OAAOlB,KAAK,CAACkB,KAAK,KAAK,QAAQ,IAC/B,MAAM,IAAIlB,KAAK,CAACkB,KAAK,IACrBlB,KAAK,CAACkB,KAAK,EAAEE,IAAI,GACb,oBAAoBpB,KAAK,CAACkB,KAAK,CAACE,IAAI,GAAG,GACvC,EAAE,EACN,GACF,OAAOpB,KAAK,KAAK,QAAQ,GACvBqB,IAAI,CAACC,SAAS,CAACtB,KAAK,CAAC,GACrB,IAAI8B,MAAM,CAAC9B,KAAK,CAAC,GAAG,4FAE9B,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;EAEN,IAAI+B,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,YAAY,EAAE;IACzCrB,OAAO,CAACsB,OAAO,CAAEC,MAAM,IAAK;MAC1B,MAAM;QAAEf,IAAI;QAAEZ,QAAQ;QAAE4B,SAAS;QAAEC;MAAa,CAAC,GAAGF,MAAM,CAACjB,KAAK;MAEhE,IACEV,QAAQ,IAAI,IAAI,IAChB4B,SAAS,KAAK9B,SAAS,IACvB+B,YAAY,KAAK/B,SAAS,EAC1B;QACA,IAAIE,QAAQ,IAAI,IAAI,IAAI4B,SAAS,KAAK9B,SAAS,EAAE;UAC/C,MAAM,IAAIa,KAAK,CACb,6DAA6DC,IAAI,oCACnE,CAAC;QACH;QAEA,IAAIZ,QAAQ,IAAI,IAAI,IAAI6B,YAAY,KAAK/B,SAAS,EAAE;UAClD,MAAM,IAAIa,KAAK,CACb,gEAAgEC,IAAI,oCACtE,CAAC;QACH;QAEA,IAAIgB,SAAS,KAAK9B,SAAS,IAAI+B,YAAY,KAAK/B,SAAS,EAAE;UACzD,MAAM,IAAIa,KAAK,CACb,iEAAiEC,IAAI,oCACvE,CAAC;QACH;QAEA,IAAIZ,QAAQ,IAAI,IAAI,IAAI,OAAOA,QAAQ,KAAK,UAAU,EAAE;UACtD,MAAM,IAAIW,KAAK,CACb,4DAA4DC,IAAI,qDAClE,CAAC;QACH;QAEA,IAAIgB,SAAS,KAAK9B,SAAS,IAAI,CAAC7C,kBAAkB,CAAC2E,SAAS,CAAC,EAAE;UAC7D,MAAM,IAAIjB,KAAK,CACb,6DAA6DC,IAAI,wCACnE,CAAC;QACH;QAEA,IAAIiB,YAAY,KAAK/B,SAAS,IAAI,OAAO+B,YAAY,KAAK,UAAU,EAAE;UACpE,MAAM,IAAIlB,KAAK,CACb,gEAAgEC,IAAI,uDACtE,CAAC;QACH;QAEA,IAAI,OAAOgB,SAAS,KAAK,UAAU,EAAE;UACnC,IAAIA,SAAS,CAAChB,IAAI,KAAK,WAAW,EAAE;YAClC;YACA;YACA;YACAkB,OAAO,CAACC,IAAI,CACV,qFAAqFnB,IAAI,uRAC3F,CAAC;UACH,CAAC,MAAM,IAAI,QAAQ,CAACoB,IAAI,CAACJ,SAAS,CAAChB,IAAI,CAAC,EAAE;YACxCkB,OAAO,CAACC,IAAI,CACV,kCAAkCH,SAAS,CAAChB,IAAI,qBAAqBA,IAAI,yMAC3E,CAAC;UACH;QACF;MACF,CAAC,MAAM;QACL,MAAM,IAAID,KAAK,CACb,kFAAkFC,IAAI,qLACxF,CAAC;MACH;IACF,CAAC,CAAC;EACJ;EAEA,OAAOR,OAAO;AAChB,CAAC;AAED,MAAM6B,kBAAkB,GAAGA,CACzBC,MAAgC,EAChCzC,IAAY,KACoD;EAChE,MAAMN,KAAK,GAAG+C,MAAM,EAAE/C,KAAK;EAE3B,IAAID,iBAAiB,CAACC,KAAK,CAAC,EAAE;IAC5B,IAAIA,KAAK,CAACM,IAAI,IAAI,IAAI,IAAIN,KAAK,CAACM,IAAI,KAAKA,IAAI,EAAE;MAC7C,IAAI8B,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,YAAY,EAAE;QACzCK,OAAO,CAACK,KAAK,CACX,8DAA8DhD,KAAK,CAACM,IAAI,gDAAgDA,IAAI,mGAC9H,CAAC;MACH;MAEA,OAAOK,SAAS;IAClB;IAEA,OAAOX,KAAK;EACd,CAAC,MAAM,IAAI,OAAO+C,MAAM,EAAEE,MAAM,KAAK,QAAQ,IAAIF,MAAM,EAAEG,OAAO,KAAK,KAAK,EAAE;IAC1E,OAAO;MACL/C,MAAM,EAAE,CACN;QACEsB,IAAI,EAAEsB,MAAM,CAACE,MAAM;QACnBF,MAAM,EAAEA,MAAM,CAACA,MAAM;QACrBI,IAAI,EAAEJ,MAAM,CAACI;MACf,CAAC;IAEL,CAAC;EACH;EAEA,OAAOxC,SAAS;AAClB,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASyC,oBAAoBA,CAOlCC,YAAmE,EACnEtB,OAOe,EACf;EACA,MAAMuB,YAAY,GAAG3D,oBAAoB,CAAC,CAAC;EAE3C,MAAM4D,KAAK,GAAG1F,KAAK,CAAC2F,GAAG,CAACjF,sBAAsB,CAA+B;EAE7E,MAAMkF,cAAc,GAAG5F,KAAK,CAAC2F,GAAG,CAACxF,qBAAqB,CAAC;EAEvD,MAAM0F,sBAAsB,GAC1B,OAAOH,KAAK,EAAER,MAAM,KAAK,QAAQ,IAAIQ,KAAK,CAACR,MAAM,IAAI,IAAI,GACrDU,cAAc,EAAEE,GAAG,CAACJ,KAAK,CAACR,MAAM,CAAC,GACjC,KAAK;EAEX,MAAM;IACJlC,QAAQ;IACRmB,MAAM;IACNC,aAAa;IACbC,YAAY;IACZ0B,eAAe;IACfC,MAAM,EAAEC,eAAe;IACvB,GAAGC;EACL,CAAC,GAAGhC,OAAO;EAEX,MAAMiC,YAAY,GAAGpD,2BAA2B,CAI9CC,QAAQ,CAAC;EAEX,MAAMgD,MAAM,GAAGxE,YAAY,CAAqB,MAAM;IACpD,IACE0E,IAAI,CAACE,gBAAgB,IAAI,IAAI,IAC7BD,YAAY,CAACE,KAAK,CACf1B,MAAM,IAAKA,MAAM,CAACjB,KAAK,CAACE,IAAI,KAAKsC,IAAI,CAACE,gBACzC,CAAC,EACD;MACA,MAAM,IAAIzC,KAAK,CACb,iCAAiCuC,IAAI,CAACE,gBAAgB,iCACxD,CAAC;IACH;IAEA,MAAME,QAAQ,GAAGd,YAAY,CAACU,IAAgC,CAAC;IAE/D,IAAID,eAAe,IAAI,IAAI,EAAE;MAC3B,MAAMM,SAAS,GAAGN,eAAe,CAACK,QAAQ,CAAC;MAE3C,OAAO;QACL,GAAGA,QAAQ;QACX,GAAGC;MACL,CAAC;IACH;IAEA,OAAOD,QAAQ;EACjB,CAAC,CAAC;EAEF,MAAME,UAAU,GAAGL,YAAY,CAACM,GAAG,CAAE9B,MAAM,IAAKA,MAAM,CAACjB,KAAK,CAACE,IAAI,CAAC;EAElE,IAAI,CAAC4C,UAAU,CAACE,MAAM,EAAE;IACtB,MAAM,IAAI/C,KAAK,CACb,4FACF,CAAC;EACH;EAEA,MAAMgD,OAGL,GAAG,CAAC,CAAC;EAEN,MAAMC,YAAoD,GAAG,CAAC,CAAC;EAC/D,MAAMC,cAAkD,GAAG,CAAC,CAAC;EAC7D,MAAMC,cAAqD,GAAG,CAAC,CAAC;EAEhE,KAAK,MAAMnC,MAAM,IAAIwB,YAAY,EAAE;IACjC,MAAMvC,IAAI,GAAGe,MAAM,CAACjB,KAAK,CAACE,IAAI;IAE9B,IAAIA,IAAI,IAAI+C,OAAO,EAAE;MACnB,MAAM,IAAIhD,KAAK,CACb,6GAA6GC,IAAI,IACnH,CAAC;IACH;IAEA+C,OAAO,CAAC/C,IAAI,CAAC,GAAGe,MAAM;IACtBiC,YAAY,CAAChD,IAAI,CAAC,GAAGe,MAAM,CAACV,IAAI;IAChC4C,cAAc,CAACjD,IAAI,CAAC,GAAGe,MAAM,CAACjB,KAAK,CAACqD,aAAa;IAEjDC,MAAM,CAACC,MAAM,CAACH,cAAc,EAAE;MAAE,CAAClD,IAAI,GAAGe,MAAM,CAACjB,KAAK,CAACwD;IAAM,CAAC,CAAC;EAC/D;EAEA,MAAMC,YAAY,GAAGnH,KAAK,CAACoH,WAAW,CACnCjF,KAAsD,IACrDA,KAAK,CAACM,IAAI,KAAKK,SAAS,IAAIX,KAAK,CAACM,IAAI,KAAKuD,MAAM,CAACvD,IAAI,EACxD,CAACuD,MAAM,CAACvD,IAAI,CACd,CAAC;EAED,MAAM4E,kBAAkB,GAAGrH,KAAK,CAACoH,WAAW,CAExCjF,KAAsC,IAEtCA,KAAK,KAAKW,SAAS,IAAIX,KAAK,CAACmF,KAAK,KAAK,KAAK,IAAIH,YAAY,CAAChF,KAAK,CAAC,EACrE,CAACgF,YAAY,CACf,CAAC;EAED,MAAMI,8BAA8B,GAAGvH,KAAK,CAACoH,WAAW,CACrDjF,KAAsD,IACrDA,KAAK,CAACG,MAAM,CAAC+D,KAAK,CAAEmB,CAAC,IAAK,CAAChB,UAAU,CAACiB,QAAQ,CAACD,CAAC,CAAC5D,IAAI,CAAC,CAAC,EACzD,CAAC4C,UAAU,CACb,CAAC;EAED,MAAM;IACJrE,KAAK,EAAEuF,YAAY;IACnBC,QAAQ,EAAEC,eAAe;IACzBC,QAAQ,EAAEC,eAAe;IACzBC,MAAM;IACNC,MAAM;IACNC;EACF,CAAC,GAAGjI,KAAK,CAAC2F,GAAG,CAAChF,sBAAsB,CAAC;EAErC,MAAM;IAAEuH,WAAW;IAAEC;EAAkB,CAAC,GAAGnI,KAAK,CAAC2F,GAAG,CAClDpF,wBACF,CAAC;EAED,MAAM6H,eAAe,GAAGpI,KAAK,CAACqI,MAAM,CAAU,KAAK,CAAC;EACpD,MAAMC,YAAY,GAAGtI,KAAK,CAACqI,MAAM,CAC/BvF,SACF,CAAC;EAED,MAAM+E,QAAQ,GAAG3H,iBAAiB,CAC/BiC,KAA8C,IAAK;IAClD,IAAIiG,eAAe,CAACG,OAAO,EAAE;MAC3B;MACAD,YAAY,CAACC,OAAO,GAAGpG,KAAK;;MAE5B;MACA;MACA;MACA;IACF;IAEA2F,eAAe,CAAC3F,KAAK,CAAC;EACxB,CACF,CAAC;EAED,MAAM,CACJqG,yBAAyB,EACzBC,gBAAgB,EAChBC,0BAA0B,EAC1BC,2BAA2B,CAC5B,GAAG3I,KAAK,CAAC4I,OAAO,CAAC,MAKb;IACH;IACA;IACA;IACA,IACER,eAAe,CAACG,OAAO,IACvBD,YAAY,CAACC,OAAO,IACpBpB,YAAY,CAACmB,YAAY,CAACC,OAAO,CAAC,EAClC;MACA,MAAMpG,KAAY,GAAGkF,kBAAkB,CAACiB,YAAY,CAACC,OAAO,CAAC,GACzDD,YAAY,CAACC,OAAO,GACpBvC,MAAM,CAAC6C,kBAAkB,CAACP,YAAY,CAACC,OAAO,EAAE;QAC9C/B,UAAU;QACVK,cAAc;QACdC;MACF,CAAC,CAAC;MAEN,OAAO,CAAChE,SAAS,EAAEX,KAAK,EAAE,KAAK,EAAEW,SAAS,CAAC;IAC7C;IAEA,MAAMgG,qBAAqB,GAAGtC,UAAU,CAACjD,MAAM,CAE7C,CAACC,GAAG,EAAEuF,IAAI,KAAK;MACf,MAAM;QAAEhC;MAAc,CAAC,GAAGJ,OAAO,CAACoC,IAAI,CAAC,EAAErF,KAAK,IAAI,CAAC,CAAC;MACpD,MAAMsF,uBAAuB,GAC3BtD,KAAK,EAAER,MAAM,EAAE/C,KAAK,IAAI,IAAI,IAC5BuD,KAAK,EAAER,MAAM,EAAEG,OAAO,KAAK,KAAK,IAChCK,KAAK,EAAER,MAAM,EAAEE,MAAM,KAAK2D,IAAI,GAC1BrD,KAAK,CAACR,MAAM,CAACA,MAAM,GACnBpC,SAAS;MAEfU,GAAG,CAACuF,IAAI,CAAC,GACPhC,aAAa,KAAKjE,SAAS,IAAIkG,uBAAuB,KAAKlG,SAAS,GAChE;QACE,GAAGiE,aAAa;QAChB,GAAGiC;MACL,CAAC,GACDlG,SAAS;MAEf,OAAOU,GAAG;IACZ,CAAC,EAAE,CAAC,CAAC,CAAC;;IAEN;IACA;IACA;IACA;IACA,IACE,CAACkE,YAAY,KAAK5E,SAAS,IAAI,CAACqE,YAAY,CAACO,YAAY,CAAC,KAC1DhC,KAAK,EAAER,MAAM,EAAE/C,KAAK,IAAI,IAAI,IAC5B,EACE,OAAOuD,KAAK,EAAER,MAAM,EAAEE,MAAM,KAAK,QAAQ,IACzCM,KAAK,EAAER,MAAM,EAAEG,OAAO,KAAK,KAAK,CACjC,IACD,CAACQ,sBAAsB,EACvB;MACA,OAAO,CACL/C,SAAS,EACTkD,MAAM,CAACiD,eAAe,CAAC;QACrBzC,UAAU;QACVK,cAAc,EAAEiC,qBAAqB;QACrChC;MACF,CAAC,CAAC,EACF,IAAI,EACJhE,SAAS,CACV;IACH,CAAC,MAAM;MACL,MAAMoG,cAAc,GAAGrD,sBAAsB,GAAG/C,SAAS,GAAG4C,KAAK,EAAER,MAAM;MACzE,MAAMiE,eAAe,GAAGD,cAAc,GAClCjE,kBAAkB,CAACiE,cAAc,EAAElD,MAAM,CAACvD,IAAI,CAAC,GAC/CK,SAAS;MAEb,MAAM0F,yBAAyB,GAAIW,eAAe,IAAIzB,YAEzC;MAEb,MAAM0B,aAAa,GACjBZ,yBAAyB,IAAI,IAAI,GAC7BxC,MAAM,CAACiD,eAAe,CAAC;QACrBzC,UAAU;QACVK,cAAc,EAAEiC,qBAAqB;QACrChC;MACF,CAAC,CAAC,GACFd,MAAM,CAAC6C,kBAAkB,CAACL,yBAAyB,EAAE;QACnDhC,UAAU;QACVK,cAAc,EAAEiC,qBAAqB;QACrChC;MACF,CAAC,CAAC;MAER,IACE0B,yBAAyB,IAAI,IAAI,IACjCrB,YAAY,CAACqB,yBAAyB,CAAC,IACvCtE,OAAO,CAACmF,wBAAwB,KAAK,eAAe,IACpD9B,8BAA8B,CAACiB,yBAAyB,CAAC,EACzD;QACA,OAAO,CAACA,yBAAyB,EAAEY,aAAa,EAAE,IAAI,EAAEF,cAAc,CAAC;MACzE;MAEA,OAAO,CACLpG,SAAS,EACTsG,aAAa,EACb,KAAK;MACL;MACA;MACA/B,kBAAkB,CAACK,YAAY,CAAC,GAAG5E,SAAS,GAAGoG,cAAc,CAC9D;IACH;IACA;IACA;IACA;IACA;IACA;IACA;EACF,CAAC,EAAE,CAACxB,YAAY,EAAE1B,MAAM,EAAEmB,YAAY,CAAC,CAAC;EAExC,MAAMmC,uBAAuB,GAAGtJ,KAAK,CAACqI,MAAM,CAACzB,YAAY,CAAC;EAE1D5G,KAAK,CAACuJ,kBAAkB,CAAC,MAAM;IAC7BD,uBAAuB,CAACf,OAAO,GAAG3B,YAAY;EAChD,CAAC,CAAC;EAEF,MAAM4C,oBAAoB,GAAGF,uBAAuB,CAACf,OAAO;;EAE5D;EACA,MAAMkB,eAAe,GAAGzC,MAAM,CAAC/C,IAAI,CAAC2C,YAAY,CAAC,CAAC8C,MAAM,CAAE9F,IAAI,IAAK;IACjE,MAAM2E,OAAO,GAAG3B,YAAY,CAAChD,IAAI,CAAC;IAClC,MAAM+F,QAAQ,GAAGH,oBAAoB,CAAC5F,IAAI,CAAC;IAE3C,OACE2E,OAAO,IAAI,IAAI,IAAIoB,QAAQ,IAAI,IAAI,IAAI,CAACrJ,YAAY,CAACiI,OAAO,EAAEoB,QAAQ,CAAC;EAE3E,CAAC,CAAC;EAEF,MAAM,CAACC,cAAc,EAAEC,iBAAiB,CAAC,GAAG7J,KAAK,CAAC8J,QAAQ,CAExDtB,yBAAyB,CAAC;;EAE5B;EACA;EACA;EACA;EACA,IACEtE,OAAO,CAACmF,wBAAwB,KAAK,eAAe,IACpDb,yBAAyB,IACzBoB,cAAc,KAAKpB,yBAAyB,EAC5C;IACAqB,iBAAiB,CAACrB,yBAAyB,CAAC;EAC9C;EAEA,IAAIrG,KAAK;EACP;EACA;EACA;EACAkF,kBAAkB,CAACK,YAAY,CAAC,GAC3BA,YAAY,GACZe,gBAA0B;EAEjC,IAAIsB,SAAgB,GAAG5H,KAAK;EAC5B,IAAI6H,yBAAyB,GAAG,KAAK;EAErC,IAAIJ,cAAc,IAAI,IAAI,IAAI,CAACzC,YAAY,CAACyC,cAAc,CAAC,EAAE;IAC3D;IACA;IACAC,iBAAiB,CAAC/G,SAAS,CAAC;EAC9B,CAAC,MAAM;EACL;EACA;EACA;EACA8G,cAAc,EAAEtH,MAAM,CAAC+D,KAAK,CAAEmB,CAAC,IAAKhB,UAAU,CAACiB,QAAQ,CAACD,CAAC,CAAC5D,IAAI,CAAC,CAAC,IAChEzB,KAAK,EAAEG,MAAM,CAAC+D,KAAK,CAAEmB,CAAC,IAAK,CAAChB,UAAU,CAACiB,QAAQ,CAACD,CAAC,CAAC5D,IAAI,CAAC,CAAC,EACxD;IACAoG,yBAAyB,GAAG,IAAI;IAChCD,SAAS,GAAG/D,MAAM,CAAC6C,kBAAkB,CACnCe,cAAc,EACd;MACEpD,UAAU;MACVK,cAAc;MACdC;IACF,CACF,CAAC;EACH,CAAC,MAAM,IACL,CAACxG,YAAY,CAAC6B,KAAK,CAACqE,UAAU,EAAEA,UAAU,CAAC,IAC3CiD,eAAe,CAAC/C,MAAM,KAAK,CAAC,EAC5B;IACA;IACAqD,SAAS,GAAG/D,MAAM,CAACiE,2BAA2B,CAAC9H,KAAK,EAAE;MACpDqE,UAAU;MACVK,cAAc;MACdC,cAAc;MACd2C;IACF,CAAC,CAAC;EACJ;EAEA,IAAIS,sBAAsB,GAAGxE,KAAK,EAAER,MAAM,KAAKyD,2BAA2B;EAE1E,IAAIjD,KAAK,EAAER,MAAM,IAAI,CAACgF,sBAAsB,EAAE;IAC5C,IAAIC,MAAwC;IAE5C,IAAIjI,iBAAiB,CAACwD,KAAK,CAACR,MAAM,CAAC/C,KAAK,CAAC,IAAI,CAAC0D,sBAAsB,EAAE;MACpEqE,sBAAsB,GAAG,IAAI;MAE7B,MAAMf,eAAe,GAAGlE,kBAAkB,CAACS,KAAK,CAACR,MAAM,EAAEc,MAAM,CAACvD,IAAI,CAAC;MAErE,IAAI0G,eAAe,IAAI,IAAI,EAAE;QAC3B,IACEjF,OAAO,CAACmF,wBAAwB,KAAK,eAAe,IACpD9B,8BAA8B,CAAC4B,eAAe,CAAC,EAC/C;UACA,IAAIA,eAAe,KAAKS,cAAc,EAAE;YACtCC,iBAAiB,CAACV,eAAe,CAAC;UACpC;QACF,CAAC,MAAM;UACL;UACAgB,MAAM,GAAGrK,aAAa,CAACsK,KAAK,CAACjB,eAAe,CAAC;QAC/C;MACF;IACF,CAAC,MAAM,IACL,OAAOzD,KAAK,CAACR,MAAM,CAACE,MAAM,KAAK,QAAQ,KACrCM,KAAK,CAACR,MAAM,CAACG,OAAO,KAAK,KAAK,IAAIqD,0BAA0B,IAC5D,CAAC7C,sBAAsB,CAAC,EAC1B;MACAqE,sBAAsB,GAAG,IAAI;MAE7B,IACEhG,OAAO,CAACmF,wBAAwB,KAAK,eAAe,IACpD,CAAC7C,UAAU,CAACiB,QAAQ,CAAC/B,KAAK,CAACR,MAAM,CAACE,MAAM,CAAC,EACzC;QACA,MAAMjD,KAAK,GAAG8C,kBAAkB,CAACS,KAAK,CAACR,MAAM,EAAEc,MAAM,CAACvD,IAAI,CAAC;QAE3D,IAAIN,KAAK,IAAI,IAAI,IAAI,CAACpC,SAAS,CAACoC,KAAK,EAAEyH,cAAc,CAAC,EAAE;UACtDC,iBAAiB,CAAC1H,KAAK,CAAC;QAC1B;MACF,CAAC,MAAM;QACL;QACAgI,MAAM,GAAG;UACP1H,IAAI,EAAE,UAAU;UAChB4H,OAAO,EAAE;YACPzG,IAAI,EAAE8B,KAAK,CAACR,MAAM,CAACE,MAAM;YACzBF,MAAM,EAAEQ,KAAK,CAACR,MAAM,CAACA,MAAM;YAC3BI,IAAI,EAAEI,KAAK,CAACR,MAAM,CAACI,IAAI;YACvBgF,KAAK,EAAE5E,KAAK,CAACR,MAAM,CAACoF,KAAK;YACzBC,GAAG,EAAE7E,KAAK,CAACR,MAAM,CAACqF;UACpB;QACF,CAAU;MACZ;IACF;;IAEA;IACA,MAAMC,YAAY,GAAGL,MAAM,GACvBnE,MAAM,CAACyE,iBAAiB,CAACV,SAAS,EAAEI,MAAM,EAAE;MAC1C3D,UAAU;MACVK,cAAc;MACdC;IACF,CAAC,CAAC,GACF,IAAI;IAER,IACEvC,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,YAAY,IACrC0F,MAAM,IAAI,IAAI,IACdK,YAAY,KAAK,IAAI,EACrB;MACA,MAAME,KAAK,GAAGlE,UAAU,CAACC,GAAG,CAAE7C,IAAI,IAAK,IAAIA,IAAI,GAAG,CAAC,CAAC+G,IAAI,CAAC,IAAI,CAAC;MAE9D7F,OAAO,CAACK,KAAK,CACX,uGAAuGuF,KAAK,qJAC9G,CAAC;IACH;IAEAX,SAAS,GACPS,YAAY,KAAK,IAAI,GACjBxE,MAAM,CAAC6C,kBAAkB,CAAC2B,YAAY,EAAE;MACtChE,UAAU;MACVK,cAAc;MACdC;IACF,CAAC,CAAC,GACFiD,SAAS;EACjB;EAEA/J,KAAK,CAAC4K,SAAS,CAAC,MAAM;IACpB,IACEhF,cAAc,IACdsE,sBAAsB,IACtB,OAAOxE,KAAK,EAAER,MAAM,KAAK,QAAQ,IACjCQ,KAAK,CAACR,MAAM,IAAI,IAAI,EACpB;MACAU,cAAc,CAACiF,GAAG,CAACnF,KAAK,CAACR,MAAM,EAAE,IAAI,CAAC;IACxC;EACF,CAAC,EAAE,CAACU,cAAc,EAAEsE,sBAAsB,EAAExE,KAAK,EAAER,MAAM,CAAC,CAAC;EAE3D,MAAM4F,YAAY,GAAG3I,KAAK,KAAK4H,SAAS;EAExChI,iBAAiB,CAAC,MAAM;IACtB,IAAI+I,YAAY,EAAE;MAChB;MACAjD,QAAQ,CAACkC,SAAS,CAAC;MAEnB,IAAIC,yBAAyB,EAAE;QAC7BH,iBAAiB,CAAC/G,SAAS,CAAC;MAC9B;IACF;EACF,CAAC,CAAC;;EAEF;EACA;EACA;EACAX,KAAK,GAAG4H,SAAS;;EAEjB;EACA/J,KAAK,CAAC4K,SAAS,CAAC,MAAM;IACpBtC,YAAY,CAACC,OAAO,GAAGpG,KAAK;EAC9B,CAAC,CAAC;EAEF,MAAM4I,oBAAoB,GAAG/K,KAAK,CAACqI,MAAM,CAAe,IAAI,CAAC;EAE7DrI,KAAK,CAAC4K,SAAS,CAAC,MAAM;IACpB;IACA;IACAxC,eAAe,CAACG,OAAO,GAAG,KAAK;IAE/BR,MAAM,CAACtC,YAAY,CAAC;IAEpB,IACE,CAAC,CAACwC,YAAY,CAAC,CAAC,IAAIE,iBAAiB,CAAC,CAAC,KACvC4C,oBAAoB,CAACxC,OAAO,KAAKpG,KAAK,EACtC;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA0F,QAAQ,CAAC1F,KAAK,CAAC;MAEf4I,oBAAoB,CAACxC,OAAO,GAAGpG,KAAK;IACtC;IAEA,OAAO,MAAM;MACX;MACA,IAAIyF,eAAe,CAAC,CAAC,KAAK9E,SAAS,IAAIkF,MAAM,CAAC,CAAC,KAAKvC,YAAY,EAAE;QAChEqC,eAAe,CAAChF,SAAS,CAAC;QAC1BsF,eAAe,CAACG,OAAO,GAAG,IAAI;MAChC;;MAEA;MACA;MACA;MACAwC,oBAAoB,CAACxC,OAAO,GAAG,IAAI;IACrC,CAAC;IACD;EACF,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMZ,QAAQ,GAAGzH,iBAAiB,CAAC,MAAa;IAC9C,MAAMwH,YAAY,GAAGE,eAAe,CAAC,CAAC;IAEtC,OAAOxH,UAAU,CACdiH,kBAAkB,CAACK,YAAY,CAAC,GAC7BA,YAAY,GACZe,gBACN,CAAC;EACH,CAAC,CAAC;EAEF,MAAMuC,OAAO,GAAG7J,eAAe,CAAuB8J,CAAC,IAAK;IAC1D,MAAMzE,UAAU,GAAG,EAAE;IAErB,IAAId,KAAgC;IAEpC,IAAIuF,CAAC,CAACC,MAAM,EAAE;MACZxF,KAAK,GAAGvD,KAAK,CAACG,MAAM,CAAC6I,IAAI,CAAEzF,KAAK,IAAKA,KAAK,CAAC7C,GAAG,KAAKoI,CAAC,CAACC,MAAM,CAAC;MAE5D,IAAIxF,KAAK,EAAE9B,IAAI,EAAE;QACf4C,UAAU,CAACxC,IAAI,CAAC0B,KAAK,CAAC9B,IAAI,CAAC;MAC7B;IACF,CAAC,MAAM;MACL8B,KAAK,GAAGvD,KAAK,CAACG,MAAM,CAACH,KAAK,CAACiJ,KAAK,CAAC;MACjC5E,UAAU,CAACxC,IAAI,CACb,GAAGgD,MAAM,CAAC/C,IAAI,CAAC0C,OAAO,CAAC,CAAC+C,MAAM,CAAE9F,IAAI,IAAK8B,KAAK,EAAE9B,IAAI,KAAKA,IAAI,CAC/D,CAAC;IACH;IAEA,IAAI8B,KAAK,IAAI,IAAI,EAAE;MACjB;IACF;IAEA,MAAM2F,qBAAqB,GAAG7E,UAAU,CAAC8E,IAAI,CAC1C1H,IAAI,IAAK+C,OAAO,CAAC/C,IAAI,CAAC,EAAEF,KAAK,CAAC6H,SAAS,IAAI,IAC9C,CAAC;IAED,IAAIxF,eAAe,IAAI,IAAI,IAAIsF,qBAAqB,EAAE;MACpD,MAAMG,UAAU,GAAGC,WAAW,CAAC/F,KAAK,CAAC7C,GAAG,CAAC;MAEzC,IAAI2I,UAAU,IAAI,IAAI,EAAE;QACtB,MAAM,IAAI7H,KAAK,CAAC,yCAAyC+B,KAAK,CAAC7C,GAAG,IAAI,CAAC;MACzE;MAEA,MAAM6I,UAAU,GAAGF,UAAU,CAACE,UAAU;MAExC,MAAMH,SAAS,GAAI,EAAE,CAClBI,MAAM;MACL;MACA,GAAG,CACD5F,eAAe,EACf,GAAGS,UAAU,CAACC,GAAG,CAAE7C,IAAI,IAAK;QAC1B,MAAM;UAAE2H;QAAU,CAAC,GAAG5E,OAAO,CAAC/C,IAAI,CAAC,EAAEF,KAAK,IAAI,CAAC,CAAC;QAChD,OAAO6H,SAAS;MAClB,CAAC,CAAC,CACH,CAAC9E,GAAG,CAAE8E,SAAS,IAAK;QACnB,MAAM9E,GAAG,GACP,OAAO8E,SAAS,KAAK,UAAU,GAC3BA,SAAS,CAAC;UAAE7F,KAAK,EAAEA,KAAY;UAAEgG;QAAW,CAAC,CAAC,GAC9CH,SAAS;QAEf,OAAO9E,GAAG,GACNO,MAAM,CAAC/C,IAAI,CAACwC,GAAG,CAAC,CACbiD,MAAM,CAAEjH,IAAI,IAAKA,IAAI,KAAKwI,CAAC,CAACxI,IAAI,CAAC,CACjCgE,GAAG,CAAEhE,IAAI,IAAKgE,GAAG,GAAGhE,IAAI,CAAC,CAAC,GAC7BK,SAAS;MACf,CAAC,CACH;MACA;MACA;MAAA,CACC4G,MAAM,CAAC,CAACkC,EAAE,EAAEC,CAAC,EAAEC,IAAI,KAAKF,EAAE,IAAIE,IAAI,CAACC,WAAW,CAACH,EAAE,CAAC,KAAKC,CAAC,CAAC;MAE5DN,SAAS,CAAC7G,OAAO,CAAEsH,QAAQ,IAAKA,QAAQ,GAAGf,CAAC,CAAC,CAAC;IAChD;EACF,CAAC,EAAE/C,WAAW,CAAC;EAEf7G,cAAc,CAAC;IAAEc,KAAK;IAAE6I;EAAQ,CAAC,CAAC;EAElChL,KAAK,CAAC4K,SAAS,CAAC,MAAM;IACpBI,OAAO,CAACiB,IAAI,CAAC;MAAExJ,IAAI,EAAE,OAAO;MAAEyJ,IAAI,EAAE;QAAE/J;MAAM;IAAE,CAAC,CAAC;EAClD,CAAC,EAAE,CAAC6I,OAAO,EAAE7I,KAAK,CAAC,CAAC;EAEpB,MAAM;IAAEoJ,SAAS,EAAEY,cAAc;IAAEC;EAAY,CAAC,GAAGpL,iBAAiB,CAAC,CAAC;EAEtE,MAAM;IAAEqL,cAAc;IAAEC;EAAiB,CAAC,GAAG/K,sBAAsB,CAAC,CAAC;EAErE,MAAMgL,QAAQ,GAAG5K,WAAW,CAAC;IAC3BqE,MAAM;IACN2B,QAAQ;IACRE,QAAQ;IACRhF,GAAG,EAAE6C,KAAK,EAAE7C,GAAG;IACf2J,eAAe,EAAEL,cAAc,CAAChC,MAAM;IACtCsC,qBAAqB,EAAEJ,cAAc,CAACK,YAAY;IAClDC,mBAAmB,EAAE;MACnBnG,UAAU;MACVK,cAAc;MACdC;IACF,CAAC;IACDkE;EACF,CAAC,CAAC;EAEF,MAAM4B,YAAY,GAAG/K,eAAe,CAAC;IACnCmE,MAAM;IACNnD,GAAG,EAAE6C,KAAK,EAAE7C,GAAG;IACf8E,QAAQ;IACRE;EACF,CAAC,CAAC;EAEF,MAAMgF,uBAAuB,GAAG7M,KAAK,CAAC2F,GAAG,CAAC5E,sBAAsB,CAAC;EAEjE,MAAM+L,iBAAiB,GAAG5M,iBAAiB,CAAEiK,MAAwB,IAAK;IACxE,IACEjG,OAAO,CAACmF,wBAAwB,KAAK,eAAe,IACpDc,MAAM,CAAC1H,IAAI,KAAK,UAAU,IAC1B0H,MAAM,CAACE,OAAO,IAAI,IAAI,IACtB,MAAM,IAAIF,MAAM,CAACE,OAAO,IACxB,OAAOF,MAAM,CAACE,OAAO,CAACzG,IAAI,KAAK,QAAQ,IACvC,CAAC4C,UAAU,CAACiB,QAAQ,CAAC0C,MAAM,CAACE,OAAO,CAACzG,IAAI,CAAC,EACzC;MACA,MAAMzB,KAAK,GAAG;QACZG,MAAM,EAAE,CACN;UACEsB,IAAI,EAAEuG,MAAM,CAACE,OAAO,CAACzG,IAAI;UACzBsB,MAAM,EACJ,QAAQ,IAAIiF,MAAM,CAACE,OAAO,IAC1B,OAAOF,MAAM,CAACE,OAAO,CAACnF,MAAM,KAAK,QAAQ,IACzCiF,MAAM,CAACE,OAAO,CAACnF,MAAM,KAAK,IAAI,GAC1BiF,MAAM,CAACE,OAAO,CAACnF,MAAM,GACrBpC,SAAS;UACfwC,IAAI,EACF,MAAM,IAAI6E,MAAM,CAACE,OAAO,IACxB,OAAOF,MAAM,CAACE,OAAO,CAAC/E,IAAI,KAAK,QAAQ,GACnC6E,MAAM,CAACE,OAAO,CAAC/E,IAAI,GACnBxC;QACR,CAAC;MAEL,CAAC;MAED+G,iBAAiB,CAAC1H,KAAK,CAAC;IAC1B;IAEA0K,uBAAuB,GAAG1C,MAAM,CAAC;EACnC,CAAC,CAAC;EAEF,MAAMuB,UAAU,GAAGjK,oBAAoB,CAKrC;IACA8K,QAAQ;IACRO,iBAAiB;IACjBnF,QAAQ;IACRxF,KAAK;IACL6I,OAAO;IACPhF;EACF,CAAC,CAAC;EAEF5E,kCAAkC,CAAC;IACjCsK,UAAU;IACVqB,gBAAgB,EAAEZ,cAAc,CAACa;EACnC,CAAC,CAAC;EAEFpL,aAAa,CAAC;IACZ+F,QAAQ;IACRsF,iBAAiB,EAAEZ,cAAc,CAAC1E;EACpC,CAAC,CAAC;EAEF,MAAM8D,WAAW,GAAGvK,cAAc,CAKhC;IACAoB,MAAM,EAAEH,KAAK,CAACG,MAAM;IACpBqE,OAAO;IACP+E,UAAU;IACVtH,aAAa;IACbC,YAAY;IACZkI,QAAQ;IACR5E,QAAQ;IACRE,QAAQ;IACR+E,YAAY;IACZR,WAAW;IACXE,gBAAgB;IAChBtG,MAAM;IACN;IACAgF;EACF,CAAC,CAAC;EAEF,MAAMkC,iBAAiB,GAAGjM,YAAY,CAAE+B,QAAyB,IAAK;IACpE,MAAMmK,YAAY,GAAGhL,KAAK,CAACG,MAAM,CAACH,KAAK,CAACiJ,KAAK,CAAC;IAE9C,IAAI+B,YAAY,IAAI,IAAI,EAAE;MACxB,MAAM,IAAIxJ,KAAK,CAAC,kCAAkCxB,KAAK,CAACiJ,KAAK,GAAG,CAAC;IACnE;IAEA,MAAMgC,OAAO,GACXjJ,MAAM,IAAI,IAAI,GACVA,MAAM,CAAC;MACLhC,KAAK;MACLsJ,WAAW;MACXC,UAAU;MACV1I;IACF,CAAC,CAAC,GACFA,QAAQ;IAEd,oBACEf,IAAA,CAACxB,qBAAqB,CAAC4M,QAAQ;MAACC,KAAK,EAAExK,SAAU;MAAAE,QAAA,eAC/Cf,IAAA,CAACzB,wBAAwB,CAAC6M,QAAQ;QAACC,KAAK,EAAE5B,UAAW;QAAA1I,QAAA,eACnDf,IAAA,CAACP,+BAA+B;UAC9BS,KAAK,EAAEA,KAAM;UACbwF,QAAQ,EAAE+D,UAAU,CAAC/D,QAAS;UAAA3E,QAAA,eAE9Bf,IAAA,CAACX,sBAAsB,CAAC+L,QAAQ;YAACC,KAAK,EAAEH,YAAY,CAACtK,GAAI;YAAAG,QAAA,eACvDf,IAAA,CAACrB,qBAAqB;cAAAoC,QAAA,EAAEoK;YAAO,CAAwB;UAAC,CACzB;QAAC,CACH;MAAC,CACD;IAAC,CACN,CAAC;EAErC,CAAC,CAAC;EAEF,OAAO;IACLjL,KAAK;IACLuJ,UAAU;IACVD,WAAW;IACXyB;EACF,CAAC;AACH","ignoreList":[]}
|
|
@@ -17,10 +17,10 @@ export function useNavigationCache({
|
|
|
17
17
|
router,
|
|
18
18
|
emitter
|
|
19
19
|
}) {
|
|
20
|
-
const parentNavigationHelpers = React.
|
|
20
|
+
const parentNavigationHelpers = React.use(NavigationContext);
|
|
21
21
|
const {
|
|
22
22
|
stackRef
|
|
23
|
-
} = React.
|
|
23
|
+
} = React.use(NavigationBuilderContext);
|
|
24
24
|
|
|
25
25
|
// Cache object which holds navigation objects for each screen
|
|
26
26
|
// We use `React.useMemo` instead of `React.useRef` coz we want to invalidate it when deps change
|
|
@@ -30,21 +30,12 @@ export function useNavigationCache({
|
|
|
30
30
|
}),
|
|
31
31
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
32
32
|
[getState, parentNavigationHelpers, navigation, setOptions, emitter]);
|
|
33
|
-
|
|
33
|
+
const next = routes.reduce((acc, route) => {
|
|
34
34
|
const previous = cache.current[route.key];
|
|
35
35
|
if (previous) {
|
|
36
36
|
// If a cached navigation object already exists, reuse it
|
|
37
37
|
acc[route.key] = previous;
|
|
38
38
|
} else {
|
|
39
|
-
const dispatch = thunk => {
|
|
40
|
-
const action = typeof thunk === 'function' ? thunk(getState()) : thunk;
|
|
41
|
-
if (action != null) {
|
|
42
|
-
navigation.dispatch({
|
|
43
|
-
source: route.key,
|
|
44
|
-
...action
|
|
45
|
-
});
|
|
46
|
-
}
|
|
47
|
-
};
|
|
48
39
|
const withStack = callback => {
|
|
49
40
|
let isStackSet = false;
|
|
50
41
|
try {
|
|
@@ -60,14 +51,25 @@ export function useNavigationCache({
|
|
|
60
51
|
}
|
|
61
52
|
}
|
|
62
53
|
};
|
|
54
|
+
const dispatch = thunk => {
|
|
55
|
+
withStack(() => React.startTransition(() => {
|
|
56
|
+
const action = typeof thunk === 'function' ? thunk(getState()) : thunk;
|
|
57
|
+
if (action != null) {
|
|
58
|
+
navigation.dispatch({
|
|
59
|
+
source: route.key,
|
|
60
|
+
...action
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
}));
|
|
64
|
+
};
|
|
63
65
|
const actions = {
|
|
64
66
|
...router.actionCreators,
|
|
65
67
|
...CommonActions
|
|
66
68
|
};
|
|
67
69
|
const helpers = Object.keys(actions).reduce((acc, name) => {
|
|
68
|
-
acc[name] = (...args) =>
|
|
70
|
+
acc[name] = (...args) =>
|
|
69
71
|
// @ts-expect-error: name is a valid key, but TypeScript is dumb
|
|
70
|
-
dispatch(actions[name](...args))
|
|
72
|
+
dispatch(actions[name](...args));
|
|
71
73
|
return acc;
|
|
72
74
|
}, {});
|
|
73
75
|
|
|
@@ -81,7 +83,7 @@ export function useNavigationCache({
|
|
|
81
83
|
...helpers,
|
|
82
84
|
// FIXME: too much work to fix the types for now
|
|
83
85
|
...emitter.create(route.key),
|
|
84
|
-
dispatch
|
|
86
|
+
dispatch,
|
|
85
87
|
getParent: routeName => {
|
|
86
88
|
if (routeName === route.name) {
|
|
87
89
|
// If the passed route name is the same as the current route's name,
|
|
@@ -104,7 +106,7 @@ export function useNavigationCache({
|
|
|
104
106
|
},
|
|
105
107
|
isFocused: () => {
|
|
106
108
|
const state = rest.getState();
|
|
107
|
-
if (state.routes[state.index]
|
|
109
|
+
if (state.routes[state.index]?.key !== route.key) {
|
|
108
110
|
return false;
|
|
109
111
|
}
|
|
110
112
|
|
|
@@ -116,6 +118,9 @@ export function useNavigationCache({
|
|
|
116
118
|
}
|
|
117
119
|
return acc;
|
|
118
120
|
}, {});
|
|
119
|
-
|
|
121
|
+
React.useInsertionEffect(() => {
|
|
122
|
+
cache.current = next;
|
|
123
|
+
});
|
|
124
|
+
return next;
|
|
120
125
|
}
|
|
121
126
|
//# sourceMappingURL=useNavigationCache.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["CommonActions","React","NavigationBuilderContext","NavigationContext","useNavigationCache","routes","getState","navigation","setOptions","router","emitter","parentNavigationHelpers","
|
|
1
|
+
{"version":3,"names":["CommonActions","React","NavigationBuilderContext","NavigationContext","useNavigationCache","routes","getState","navigation","setOptions","router","emitter","parentNavigationHelpers","use","stackRef","cache","useMemo","current","next","reduce","acc","route","previous","key","withStack","callback","isStackSet","process","env","NODE_ENV","Error","stack","undefined","dispatch","thunk","startTransition","action","source","actions","actionCreators","helpers","Object","keys","name","args","emit","rest","create","getParent","routeName","options","o","isFocused","state","index","useInsertionEffect"],"sourceRoot":"../../src","sources":["useNavigationCache.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -15,11 +15,29 @@ export function useNavigationHelpers({
|
|
|
15
15
|
onAction,
|
|
16
16
|
onUnhandledAction,
|
|
17
17
|
getState,
|
|
18
|
+
state,
|
|
18
19
|
emitter,
|
|
19
|
-
router
|
|
20
|
-
stateRef
|
|
20
|
+
router
|
|
21
21
|
}) {
|
|
22
|
-
const parentNavigationHelpers = React.
|
|
22
|
+
const parentNavigationHelpers = React.use(NavigationContext);
|
|
23
|
+
|
|
24
|
+
// In some cases (e.g. route names change), internal state might have changed
|
|
25
|
+
// But it hasn't been committed yet, so hasn't propagated to any listeners
|
|
26
|
+
// During this time, we need to return the internal state in `getState`
|
|
27
|
+
// Otherwise it can return an inconsistent state during render in children
|
|
28
|
+
// This may affect hooks like `useNavigationState` that need to read the state during render
|
|
29
|
+
// To avoid this, we use a ref for render phase, and immediately clear it on commit
|
|
30
|
+
// The ref won't be cleared if the render is discarded, e.g. when interrupted
|
|
31
|
+
// So we also track the stored state the render was based on
|
|
32
|
+
// Then ignore the ref once the stored state changes due to another dispatch
|
|
33
|
+
const stateRef = React.useRef(null);
|
|
34
|
+
stateRef.current = {
|
|
35
|
+
state,
|
|
36
|
+
base: getState()
|
|
37
|
+
};
|
|
38
|
+
React.useInsertionEffect(() => {
|
|
39
|
+
stateRef.current = null;
|
|
40
|
+
});
|
|
23
41
|
return React.useMemo(() => {
|
|
24
42
|
const dispatch = op => {
|
|
25
43
|
const action = typeof op === 'function' ? op(getState()) : op;
|
|
@@ -52,15 +70,15 @@ export function useNavigationHelpers({
|
|
|
52
70
|
}) !== null || parentNavigationHelpers?.canGoBack() || false;
|
|
53
71
|
},
|
|
54
72
|
getState: () => {
|
|
73
|
+
const current = getState();
|
|
74
|
+
const pending = stateRef.current;
|
|
75
|
+
|
|
55
76
|
// FIXME: Workaround for when the state is read during render
|
|
56
|
-
//
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
// Apart from `useSyncExternalStore`, `getState` should never be called during render
|
|
60
|
-
if (stateRef.current != null) {
|
|
61
|
-
return stateRef.current;
|
|
77
|
+
// Apart from subscriptions, `getState` should never be called during render
|
|
78
|
+
if (pending != null && pending.base === current) {
|
|
79
|
+
return pending.state;
|
|
62
80
|
}
|
|
63
|
-
return
|
|
81
|
+
return current;
|
|
64
82
|
}
|
|
65
83
|
};
|
|
66
84
|
return navigationHelpers;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["CommonActions","React","NavigationContext","PrivateValueStore","useNavigationHelpers","onAction","onUnhandledAction","getState","emitter","router","stateRef","
|
|
1
|
+
{"version":3,"names":["CommonActions","React","NavigationContext","PrivateValueStore","useNavigationHelpers","onAction","onUnhandledAction","getState","state","emitter","router","parentNavigationHelpers","use","stateRef","useRef","current","base","useInsertionEffect","useMemo","dispatch","op","action","handled","actions","actionCreators","helpers","Object","keys","reduce","acc","name","args","navigationHelpers","emit","isFocused","canGoBack","getStateForAction","goBack","routeNames","routeParamList","routeGetIdList","pending"],"sourceRoot":"../../src","sources":["useNavigationHelpers.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -3,6 +3,6 @@
|
|
|
3
3
|
import * as React from 'react';
|
|
4
4
|
import { NavigationIndependentTreeContext } from "./NavigationIndependentTreeContext.js";
|
|
5
5
|
export function useNavigationIndependentTree() {
|
|
6
|
-
return React.
|
|
6
|
+
return React.use(NavigationIndependentTreeContext);
|
|
7
7
|
}
|
|
8
8
|
//# sourceMappingURL=useNavigationIndependentTree.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","NavigationIndependentTreeContext","useNavigationIndependentTree","
|
|
1
|
+
{"version":3,"names":["React","NavigationIndependentTreeContext","useNavigationIndependentTree","use"],"sourceRoot":"../../src","sources":["useNavigationIndependentTree.tsx"],"mappings":";;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAE9B,SAASC,gCAAgC,QAAQ,uCAAoC;AAErF,OAAO,SAASC,4BAA4BA,CAAA,EAAG;EAC7C,OAAOF,KAAK,CAACG,GAAG,CAACF,gCAAgC,CAAC;AACpD","ignoreList":[]}
|
|
@@ -2,8 +2,6 @@
|
|
|
2
2
|
|
|
3
3
|
import * as React from 'react';
|
|
4
4
|
import useLatestCallback from 'use-latest-callback';
|
|
5
|
-
import { useSyncExternalStoreWithSelector } from 'use-sync-external-store/with-selector';
|
|
6
|
-
import { useNavigation } from "./useNavigation.js";
|
|
7
5
|
|
|
8
6
|
/**
|
|
9
7
|
* Hook to get a value from the current navigation state using a selector.
|
|
@@ -15,56 +13,74 @@ import { useNavigation } from "./useNavigation.js";
|
|
|
15
13
|
*/
|
|
16
14
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
17
15
|
export function useNavigationState(...args) {
|
|
18
|
-
|
|
16
|
+
const selector = typeof args[0] === 'string' ? args[1] : args[0];
|
|
17
|
+
if (typeof selector !== 'function') {
|
|
18
|
+
throw new Error(`A selector function must be provided (got ${typeof selector}).`);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
// @ts-expect-error: the public overloads guarantee the selector's type, but
|
|
22
|
+
// the `unknown[]` implementation signature can't express it
|
|
23
|
+
const select = selector;
|
|
24
|
+
let listener;
|
|
19
25
|
if (typeof args[0] === 'string') {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
26
|
+
const name = args[0];
|
|
27
|
+
const listeners = React.use(NamedNavigationStateListenerListContext);
|
|
28
|
+
listener = listeners?.[name];
|
|
29
|
+
if (listener == null) {
|
|
30
|
+
throw new Error(`Couldn't find a navigator for the route '${name}' in any of the parent screens. Is your component inside the correct screen?`);
|
|
31
|
+
}
|
|
25
32
|
} else {
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
if (navigation == null) {
|
|
29
|
-
stateListener = React.use(NavigationStateListenerContext);
|
|
30
|
-
if (stateListener == null) {
|
|
33
|
+
listener = React.use(NavigationStateListenerContext);
|
|
34
|
+
if (listener == null) {
|
|
31
35
|
throw new Error("Couldn't get the navigation state. Is your component inside a navigator?");
|
|
32
36
|
}
|
|
33
37
|
}
|
|
34
|
-
const
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
38
|
+
const {
|
|
39
|
+
getState,
|
|
40
|
+
subscribe
|
|
41
|
+
} = listener;
|
|
42
|
+
const [, forceUpdate] = React.useReducer(count => count + 1, 0);
|
|
43
|
+
const selected = select(getState());
|
|
44
|
+
const selectionRef = React.useRef({
|
|
45
|
+
select,
|
|
46
|
+
selected
|
|
47
|
+
});
|
|
48
|
+
React.useLayoutEffect(() => {
|
|
49
|
+
selectionRef.current = {
|
|
50
|
+
select,
|
|
51
|
+
selected
|
|
52
|
+
};
|
|
53
|
+
});
|
|
54
|
+
React.useEffect(() => {
|
|
55
|
+
const checkForUpdates = () => {
|
|
56
|
+
const selection = selectionRef.current;
|
|
57
|
+
if (!Object.is(selection.selected, selection.select(getState()))) {
|
|
58
|
+
forceUpdate();
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
const unsubscribe = subscribe(checkForUpdates);
|
|
62
|
+
|
|
63
|
+
// The state may have changed between the render and the subscription
|
|
64
|
+
checkForUpdates();
|
|
65
|
+
return unsubscribe;
|
|
66
|
+
}, [getState, subscribe]);
|
|
67
|
+
return selected;
|
|
54
68
|
}
|
|
55
69
|
export function NavigationStateListenerProvider({
|
|
56
70
|
state,
|
|
71
|
+
getState,
|
|
57
72
|
children
|
|
58
73
|
}) {
|
|
59
74
|
const listeners = React.useRef([]);
|
|
60
|
-
const getState = useLatestCallback(() => state);
|
|
61
75
|
const subscribe = useLatestCallback(callback => {
|
|
62
76
|
listeners.current.push(callback);
|
|
63
77
|
return () => {
|
|
64
78
|
listeners.current = listeners.current.filter(cb => cb !== callback);
|
|
65
79
|
};
|
|
66
80
|
});
|
|
67
|
-
|
|
81
|
+
|
|
82
|
+
// Notify subscribers once the new state has committed
|
|
83
|
+
React.useLayoutEffect(() => {
|
|
68
84
|
listeners.current.forEach(callback => callback());
|
|
69
85
|
}, [state]);
|
|
70
86
|
const context = React.useMemo(() => ({
|
|
@@ -76,5 +92,24 @@ export function NavigationStateListenerProvider({
|
|
|
76
92
|
children: children
|
|
77
93
|
});
|
|
78
94
|
}
|
|
95
|
+
export function NamedNavigationStateListenerProvider({
|
|
96
|
+
name,
|
|
97
|
+
children
|
|
98
|
+
}) {
|
|
99
|
+
const listener = React.use(NavigationStateListenerContext);
|
|
100
|
+
if (listener == null) {
|
|
101
|
+
throw new Error("Couldn't find a navigation state listener. This is likely because the navigator doesn't render its content under 'NavigationContent'.");
|
|
102
|
+
}
|
|
103
|
+
const parents = React.use(NamedNavigationStateListenerListContext);
|
|
104
|
+
const listeners = React.useMemo(() => ({
|
|
105
|
+
...parents,
|
|
106
|
+
[name]: listener
|
|
107
|
+
}), [listener, name, parents]);
|
|
108
|
+
return /*#__PURE__*/_jsx(NamedNavigationStateListenerListContext.Provider, {
|
|
109
|
+
value: listeners,
|
|
110
|
+
children: children
|
|
111
|
+
});
|
|
112
|
+
}
|
|
79
113
|
const NavigationStateListenerContext = /*#__PURE__*/React.createContext(undefined);
|
|
114
|
+
export const NamedNavigationStateListenerListContext = /*#__PURE__*/React.createContext(undefined);
|
|
80
115
|
//# sourceMappingURL=useNavigationState.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useLatestCallback","
|
|
1
|
+
{"version":3,"names":["React","useLatestCallback","jsx","_jsx","useNavigationState","args","selector","Error","select","listener","name","listeners","use","NamedNavigationStateListenerListContext","NavigationStateListenerContext","getState","subscribe","forceUpdate","useReducer","count","selected","selectionRef","useRef","useLayoutEffect","current","useEffect","checkForUpdates","selection","Object","is","unsubscribe","NavigationStateListenerProvider","state","children","callback","push","filter","cb","forEach","context","useMemo","Provider","value","NamedNavigationStateListenerProvider","parents","createContext","undefined"],"sourceRoot":"../../src","sources":["useNavigationState.tsx"],"mappings":";;AACA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,OAAOC,iBAAiB,MAAM,qBAAqB;;AAkBnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAPA,SAAAC,GAAA,IAAAC,IAAA;AAoBA,OAAO,SAASC,kBAAkBA,CAAC,GAAGC,IAAe,EAAW;EAC9D,MAAMC,QAAQ,GAAG,OAAOD,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,GAAGA,IAAI,CAAC,CAAC,CAAC,GAAGA,IAAI,CAAC,CAAC,CAAC;EAEhE,IAAI,OAAOC,QAAQ,KAAK,UAAU,EAAE;IAClC,MAAM,IAAIC,KAAK,CACb,6CAA6C,OAAOD,QAAQ,IAC9D,CAAC;EACH;;EAEA;EACA;EACA,MAAME,MAA0D,GAAGF,QAAQ;EAE3E,IAAIG,QAA6C;EAEjD,IAAI,OAAOJ,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;IAC/B,MAAMK,IAAI,GAAGL,IAAI,CAAC,CAAC,CAAC;IACpB,MAAMM,SAAS,GAAGX,KAAK,CAACY,GAAG,CAACC,uCAAuC,CAAC;IAEpEJ,QAAQ,GAAGE,SAAS,GAAGD,IAAI,CAAC;IAE5B,IAAID,QAAQ,IAAI,IAAI,EAAE;MACpB,MAAM,IAAIF,KAAK,CACb,4CAA4CG,IAAI,8EAClD,CAAC;IACH;EACF,CAAC,MAAM;IACLD,QAAQ,GAAGT,KAAK,CAACY,GAAG,CAACE,8BAA8B,CAAC;IAEpD,IAAIL,QAAQ,IAAI,IAAI,EAAE;MACpB,MAAM,IAAIF,KAAK,CACb,0EACF,CAAC;IACH;EACF;EAEA,MAAM;IAAEQ,QAAQ;IAAEC;EAAU,CAAC,GAAGP,QAAQ;EAExC,MAAM,GAAGQ,WAAW,CAAC,GAAGjB,KAAK,CAACkB,UAAU,CAAEC,KAAa,IAAKA,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC;EAEzE,MAAMC,QAAQ,GAAGZ,MAAM,CAACO,QAAQ,CAAC,CAAC,CAAC;EAEnC,MAAMM,YAAY,GAAGrB,KAAK,CAACsB,MAAM,CAAC;IAAEd,MAAM;IAAEY;EAAS,CAAC,CAAC;EAEvDpB,KAAK,CAACuB,eAAe,CAAC,MAAM;IAC1BF,YAAY,CAACG,OAAO,GAAG;MAAEhB,MAAM;MAAEY;IAAS,CAAC;EAC7C,CAAC,CAAC;EAEFpB,KAAK,CAACyB,SAAS,CAAC,MAAM;IACpB,MAAMC,eAAe,GAAGA,CAAA,KAAM;MAC5B,MAAMC,SAAS,GAAGN,YAAY,CAACG,OAAO;MAEtC,IAAI,CAACI,MAAM,CAACC,EAAE,CAACF,SAAS,CAACP,QAAQ,EAAEO,SAAS,CAACnB,MAAM,CAACO,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE;QAChEE,WAAW,CAAC,CAAC;MACf;IACF,CAAC;IAED,MAAMa,WAAW,GAAGd,SAAS,CAACU,eAAe,CAAC;;IAE9C;IACAA,eAAe,CAAC,CAAC;IAEjB,OAAOI,WAAW;EACpB,CAAC,EAAE,CAACf,QAAQ,EAAEC,SAAS,CAAC,CAAC;EAEzB,OAAOI,QAAQ;AACjB;AAEA,OAAO,SAASW,+BAA+BA,CAAC;EAC9CC,KAAK;EACLjB,QAAQ;EACRkB;AAKF,CAAC,EAAE;EACD,MAAMtB,SAAS,GAAGX,KAAK,CAACsB,MAAM,CAAiB,EAAE,CAAC;EAElD,MAAMN,SAAS,GAAGf,iBAAiB,CAAEiC,QAAoB,IAAK;IAC5DvB,SAAS,CAACa,OAAO,CAACW,IAAI,CAACD,QAAQ,CAAC;IAEhC,OAAO,MAAM;MACXvB,SAAS,CAACa,OAAO,GAAGb,SAAS,CAACa,OAAO,CAACY,MAAM,CAAEC,EAAE,IAAKA,EAAE,KAAKH,QAAQ,CAAC;IACvE,CAAC;EACH,CAAC,CAAC;;EAEF;EACAlC,KAAK,CAACuB,eAAe,CAAC,MAAM;IAC1BZ,SAAS,CAACa,OAAO,CAACc,OAAO,CAAEJ,QAAQ,IAAKA,QAAQ,CAAC,CAAC,CAAC;EACrD,CAAC,EAAE,CAACF,KAAK,CAAC,CAAC;EAEX,MAAMO,OAAO,GAAGvC,KAAK,CAACwC,OAAO,CAC3B,OAAO;IACLzB,QAAQ;IACRC;EACF,CAAC,CAAC,EACF,CAACD,QAAQ,EAAEC,SAAS,CACtB,CAAC;EAED,oBACEb,IAAA,CAACW,8BAA8B,CAAC2B,QAAQ;IAACC,KAAK,EAAEH,OAAQ;IAAAN,QAAA,EACrDA;EAAQ,CAC8B,CAAC;AAE9C;AAEA,OAAO,SAASU,oCAAoCA,CAAC;EACnDjC,IAAI;EACJuB;AAIF,CAAC,EAAE;EACD,MAAMxB,QAAQ,GAAGT,KAAK,CAACY,GAAG,CAACE,8BAA8B,CAAC;EAE1D,IAAIL,QAAQ,IAAI,IAAI,EAAE;IACpB,MAAM,IAAIF,KAAK,CACb,uIACF,CAAC;EACH;EAEA,MAAMqC,OAAO,GAAG5C,KAAK,CAACY,GAAG,CAACC,uCAAuC,CAAC;EAElE,MAAMF,SAAS,GAAGX,KAAK,CAACwC,OAAO,CAC7B,OAAO;IACL,GAAGI,OAAO;IACV,CAAClC,IAAI,GAAGD;EACV,CAAC,CAAC,EACF,CAACA,QAAQ,EAAEC,IAAI,EAAEkC,OAAO,CAC1B,CAAC;EAED,oBACEzC,IAAA,CAACU,uCAAuC,CAAC4B,QAAQ;IAACC,KAAK,EAAE/B,SAAU;IAAAsB,QAAA,EAChEA;EAAQ,CACuC,CAAC;AAEvD;AAEA,MAAMnB,8BAA8B,gBAAGd,KAAK,CAAC6C,aAAa,CAExDC,SAAS,CAAC;AAEZ,OAAO,MAAMjC,uCAAuC,gBAAGb,KAAK,CAAC6C,aAAa,CAExEC,SAAS,CAAC","ignoreList":[]}
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import * as React from 'react';
|
|
4
|
+
import { ConsumedParamsContext } from "./ConsumedParamsContext.js";
|
|
5
|
+
import { getLoaderForStateChange } from "./DataLoading.js";
|
|
4
6
|
import { NavigationBuilderContext } from "./NavigationBuilderContext.js";
|
|
7
|
+
import { StaticTreeContext } from "./StaticTreeContext.js";
|
|
5
8
|
import { shouldPreventRemove, useOnPreventRemove } from "./useOnPreventRemove.js";
|
|
6
9
|
/**
|
|
7
10
|
* Hook to handle actions for a navigator, including state updates and bubbling.
|
|
@@ -26,13 +29,20 @@ export function useOnAction({
|
|
|
26
29
|
onAction: onActionParent,
|
|
27
30
|
onRouteFocus: onRouteFocusParent,
|
|
28
31
|
addListener: addListenerParent,
|
|
29
|
-
onDispatchAction
|
|
30
|
-
|
|
32
|
+
onDispatchAction,
|
|
33
|
+
flushUpdates
|
|
34
|
+
} = React.use(NavigationBuilderContext);
|
|
35
|
+
const tree = React.use(StaticTreeContext);
|
|
36
|
+
const consumedParams = React.use(ConsumedParamsContext);
|
|
31
37
|
const routerConfigOptionsRef = React.useRef(routerConfigOptions);
|
|
32
|
-
React.
|
|
38
|
+
React.useInsertionEffect(() => {
|
|
33
39
|
routerConfigOptionsRef.current = routerConfigOptions;
|
|
34
40
|
});
|
|
35
41
|
const onAction = React.useCallback((action, visitedNavigators = new Set()) => {
|
|
42
|
+
// Apply any pending state updates scheduled during render before handling the action
|
|
43
|
+
// Otherwise the action will be handled with an outdated state,
|
|
44
|
+
// and the pending updates will overwrite the changes from the action
|
|
45
|
+
flushUpdates();
|
|
36
46
|
const state = getState();
|
|
37
47
|
|
|
38
48
|
// Since actions can bubble both up and down, they could come to the same navigator again
|
|
@@ -47,14 +57,34 @@ export function useOnAction({
|
|
|
47
57
|
// If a target is specified and set to current navigator, the action shouldn't bubble
|
|
48
58
|
// So instead of `null`, we use the state object for such cases to signal that action was handled
|
|
49
59
|
result = result === null && action.target === state.key ? state : result;
|
|
60
|
+
if (result !== null && result.stale !== false) {
|
|
61
|
+
// Some actions (e.g. `RESET`) may return a stale state from the router
|
|
62
|
+
// We rehydrate it before storing so the stored state is always usable
|
|
63
|
+
// Otherwise anything reading the state before the next render
|
|
64
|
+
// (e.g. another dispatch immediately after) would get an outdated state
|
|
65
|
+
result = router.getRehydratedState(result, routerConfigOptionsRef.current);
|
|
66
|
+
}
|
|
50
67
|
if (result !== null) {
|
|
51
|
-
onDispatchAction(action, state === result);
|
|
52
68
|
if (state !== result) {
|
|
53
69
|
const isPrevented = shouldPreventRemove(emitter, beforeRemoveListeners, state.routes, result.routes, action);
|
|
54
70
|
if (isPrevented) {
|
|
71
|
+
onDispatchAction(action, true);
|
|
55
72
|
return true;
|
|
56
73
|
}
|
|
74
|
+
if (getState() !== state) {
|
|
75
|
+
// Listeners for 'beforeRemove' may dispatch actions that change the state
|
|
76
|
+
// Then the result we have is outdated and would overwrite those changes
|
|
77
|
+
// So we handle the action again to calculate the result with the latest state
|
|
78
|
+
return onAction(action, new Set());
|
|
79
|
+
}
|
|
80
|
+
onDispatchAction(action, false);
|
|
81
|
+
if (tree) {
|
|
82
|
+
const loader = getLoaderForStateChange(tree, result, state, consumedParams);
|
|
83
|
+
loader?.();
|
|
84
|
+
}
|
|
57
85
|
setState(result);
|
|
86
|
+
} else {
|
|
87
|
+
onDispatchAction(action, true);
|
|
58
88
|
}
|
|
59
89
|
if (onRouteFocusParent !== undefined) {
|
|
60
90
|
// Some actions such as `NAVIGATE` also want to bring the navigated route to focus in the whole tree
|
|
@@ -77,19 +107,19 @@ export function useOnAction({
|
|
|
77
107
|
// If the action wasn't handled by current navigator or a parent navigator, let children handle it
|
|
78
108
|
for (let i = actionListeners.length - 1; i >= 0; i--) {
|
|
79
109
|
const listener = actionListeners[i];
|
|
80
|
-
if (listener(action, visitedNavigators)) {
|
|
110
|
+
if (listener?.(action, visitedNavigators)) {
|
|
81
111
|
return true;
|
|
82
112
|
}
|
|
83
113
|
}
|
|
84
114
|
}
|
|
85
115
|
return false;
|
|
86
|
-
}, [actionListeners, beforeRemoveListeners, emitter, getState, key, onActionParent, onDispatchAction, onRouteFocusParent, router, setState]);
|
|
116
|
+
}, [actionListeners, beforeRemoveListeners, consumedParams, emitter, flushUpdates, getState, key, onActionParent, onDispatchAction, onRouteFocusParent, router, setState, tree]);
|
|
87
117
|
useOnPreventRemove({
|
|
88
118
|
getState,
|
|
89
119
|
emitter,
|
|
90
120
|
beforeRemoveListeners
|
|
91
121
|
});
|
|
92
|
-
React.
|
|
122
|
+
React.useInsertionEffect(() => addListenerParent?.('action', onAction), [addListenerParent, onAction]);
|
|
93
123
|
return onAction;
|
|
94
124
|
}
|
|
95
125
|
//# sourceMappingURL=useOnAction.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","NavigationBuilderContext","shouldPreventRemove","useOnPreventRemove","useOnAction","router","getState","setState","key","actionListeners","beforeRemoveListeners","routerConfigOptions","emitter","onAction","onActionParent","onRouteFocus","onRouteFocusParent","addListener","addListenerParent","onDispatchAction","
|
|
1
|
+
{"version":3,"names":["React","ConsumedParamsContext","getLoaderForStateChange","NavigationBuilderContext","StaticTreeContext","shouldPreventRemove","useOnPreventRemove","useOnAction","router","getState","setState","key","actionListeners","beforeRemoveListeners","routerConfigOptions","emitter","onAction","onActionParent","onRouteFocus","onRouteFocusParent","addListener","addListenerParent","onDispatchAction","flushUpdates","use","tree","consumedParams","routerConfigOptionsRef","useRef","useInsertionEffect","current","useCallback","action","visitedNavigators","Set","state","has","add","target","result","getStateForAction","stale","getRehydratedState","isPrevented","routes","loader","undefined","shouldFocus","shouldActionChangeFocus","i","length","listener"],"sourceRoot":"../../src","sources":["useOnAction.tsx"],"mappings":"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","ignoreList":[]}
|