@react-navigation/core 7.11.0 → 7.12.1

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.
Files changed (28) hide show
  1. package/lib/module/useClientLayoutEffect.js +9 -0
  2. package/lib/module/useClientLayoutEffect.js.map +1 -0
  3. package/lib/module/useNavigationBuilder.js +8 -4
  4. package/lib/module/useNavigationBuilder.js.map +1 -1
  5. package/lib/module/useNavigationState.js +35 -7
  6. package/lib/module/useNavigationState.js.map +1 -1
  7. package/lib/module/useScheduleUpdate.js +2 -2
  8. package/lib/module/useScheduleUpdate.js.map +1 -1
  9. package/lib/typescript/src/useClientLayoutEffect.d.ts +6 -0
  10. package/lib/typescript/src/useClientLayoutEffect.d.ts.map +1 -0
  11. package/lib/typescript/src/useNavigationBuilder.d.ts.map +1 -1
  12. package/lib/typescript/src/useNavigationState.d.ts +5 -0
  13. package/lib/typescript/src/useNavigationState.d.ts.map +1 -1
  14. package/package.json +2 -2
  15. package/src/useClientLayoutEffect.tsx +10 -0
  16. package/src/useNavigationBuilder.tsx +6 -3
  17. package/src/useNavigationState.tsx +58 -14
  18. package/src/useScheduleUpdate.tsx +2 -2
  19. package/lib/module/useIsomorphicLayoutEffect.js +0 -9
  20. package/lib/module/useIsomorphicLayoutEffect.js.map +0 -1
  21. package/lib/module/useIsomorphicLayoutEffect.native.js +0 -5
  22. package/lib/module/useIsomorphicLayoutEffect.native.js.map +0 -1
  23. package/lib/typescript/src/useIsomorphicLayoutEffect.d.ts +0 -6
  24. package/lib/typescript/src/useIsomorphicLayoutEffect.d.ts.map +0 -1
  25. package/lib/typescript/src/useIsomorphicLayoutEffect.native.d.ts +0 -3
  26. package/lib/typescript/src/useIsomorphicLayoutEffect.native.d.ts.map +0 -1
  27. package/src/useIsomorphicLayoutEffect.native.tsx +0 -3
  28. package/src/useIsomorphicLayoutEffect.tsx +0 -7
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+
3
+ import * as React from 'react';
4
+
5
+ /**
6
+ * Use `useEffect` during SSR and `useLayoutEffect` in the Browser & React Native to avoid warnings.
7
+ */
8
+ export const useClientLayoutEffect = typeof document !== 'undefined' || typeof navigator !== 'undefined' && navigator.product === 'ReactNative' ? React.useLayoutEffect : React.useEffect;
9
+ //# sourceMappingURL=useClientLayoutEffect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useClientLayoutEffect","document","navigator","product","useLayoutEffect","useEffect"],"sourceRoot":"../../src","sources":["useClientLayoutEffect.tsx"],"mappings":";;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;;AAE9B;AACA;AACA;AACA,OAAO,MAAMC,qBAAqB,GAChC,OAAOC,QAAQ,KAAK,WAAW,IAC9B,OAAOC,SAAS,KAAK,WAAW,IAAIA,SAAS,CAACC,OAAO,KAAK,aAAc,GACrEJ,KAAK,CAACK,eAAe,GACrBL,KAAK,CAACM,SAAS","ignoreList":[]}
@@ -15,16 +15,17 @@ import { PreventRemoveProvider } from "./PreventRemoveProvider.js";
15
15
  import { Screen } from "./Screen.js";
16
16
  import { PrivateValueStore } from "./types.js";
17
17
  import { useChildListeners } from "./useChildListeners.js";
18
+ import { useClientLayoutEffect } from "./useClientLayoutEffect.js";
18
19
  import { useComponent } from "./useComponent.js";
19
20
  import { useCurrentRender } from "./useCurrentRender.js";
20
21
  import { useDescriptors } from "./useDescriptors.js";
21
22
  import { useEventEmitter } from "./useEventEmitter.js";
22
23
  import { useFocusedListenersChildrenAdapter } from "./useFocusedListenersChildrenAdapter.js";
23
24
  import { useFocusEvents } from "./useFocusEvents.js";
24
- import { useIsomorphicLayoutEffect } from './useIsomorphicLayoutEffect';
25
25
  import { useKeyedChildListeners } from "./useKeyedChildListeners.js";
26
26
  import { useLazyValue } from "./useLazyValue.js";
27
27
  import { useNavigationHelpers } from "./useNavigationHelpers.js";
28
+ import { NavigationStateListenerProvider } from "./useNavigationState.js";
28
29
  import { useOnAction } from "./useOnAction.js";
29
30
  import { useOnGetState } from "./useOnGetState.js";
30
31
  import { useOnRouteFocus } from "./useOnRouteFocus.js";
@@ -355,7 +356,7 @@ export function useNavigationBuilder(createRouter, options) {
355
356
  // To avoid this, we use a ref for render phase, and immediately clear it on commit
356
357
  const stateRef = React.useRef(state);
357
358
  stateRef.current = state;
358
- useIsomorphicLayoutEffect(() => {
359
+ useClientLayoutEffect(() => {
359
360
  stateRef.current = null;
360
361
  });
361
362
  const getState = useLatestCallback(() => {
@@ -486,8 +487,11 @@ export function useNavigationBuilder(createRouter, options) {
486
487
  }) : children;
487
488
  return /*#__PURE__*/_jsx(NavigationHelpersContext.Provider, {
488
489
  value: navigation,
489
- children: /*#__PURE__*/_jsx(PreventRemoveProvider, {
490
- children: element
490
+ children: /*#__PURE__*/_jsx(NavigationStateListenerProvider, {
491
+ state: state,
492
+ children: /*#__PURE__*/_jsx(PreventRemoveProvider, {
493
+ children: element
494
+ })
491
495
  })
492
496
  });
493
497
  });
@@ -1 +1 @@
1
- {"version":3,"names":["CommonActions","React","isValidElementType","useLatestCallback","deepFreeze","Group","isArrayEqual","isRecordEqual","NavigationHelpersContext","NavigationRouteContext","NavigationStateContext","PreventRemoveProvider","Screen","PrivateValueStore","useChildListeners","useComponent","useCurrentRender","useDescriptors","useEventEmitter","useFocusedListenersChildrenAdapter","useFocusEvents","useIsomorphicLayoutEffect","useKeyedChildListeners","useLazyValue","useNavigationHelpers","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","useNavigationBuilder","createRouter","navigatorKey","route","useContext","screenListeners","UNSTABLE_router","rest","routeConfigs","router","initialRouteName","every","original","overrides","screens","routeNames","map","routeKeyList","curr","join","routeParamList","initialParams","routeGetIdList","Object","assign","getId","length","isStateValid","useCallback","state","isStateInitialized","stale","currentState","getState","getCurrentState","setState","setCurrentState","setKey","getKey","getIsInitial","stateCleanedUp","useRef","current","initializedState","isFirstStateInitialization","useMemo","initialRouteParamList","initialParamsFromParams","params","initial","screen","getInitialState","stateFromParams","index","routes","path","getRehydratedState","previousRouteKeyListRef","useEffect","previousRouteKeyList","nextState","getStateForRouteNamesChange","routeKeyChanges","filter","previousNestedParamsRef","previousParams","action","reset","navigate","merge","pop","updatedState","getStateForAction","shouldUpdate","stateRef","emitter","e","target","find","navigation","descriptors","listeners","concat","cb","i","self","lastIndexOf","listener","emit","data","childListeners","addListener","keyedListeners","addKeyedListener","onAction","actionListeners","beforeRemoveListeners","beforeRemove","routerConfigOptions","onRouteFocus","id","focusedListeners","focus","getStateListeners","describe","NavigationContent","element","Provider","value"],"sourceRoot":"../../src","sources":["useNavigationBuilder.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["CommonActions","React","isValidElementType","useLatestCallback","deepFreeze","Group","isArrayEqual","isRecordEqual","NavigationHelpersContext","NavigationRouteContext","NavigationStateContext","PreventRemoveProvider","Screen","PrivateValueStore","useChildListeners","useClientLayoutEffect","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","useNavigationBuilder","createRouter","navigatorKey","route","useContext","screenListeners","UNSTABLE_router","rest","routeConfigs","router","initialRouteName","every","original","overrides","screens","routeNames","map","routeKeyList","curr","join","routeParamList","initialParams","routeGetIdList","Object","assign","getId","length","isStateValid","useCallback","state","isStateInitialized","stale","currentState","getState","getCurrentState","setState","setCurrentState","setKey","getKey","getIsInitial","stateCleanedUp","useRef","current","initializedState","isFirstStateInitialization","useMemo","initialRouteParamList","initialParamsFromParams","params","initial","screen","getInitialState","stateFromParams","index","routes","path","getRehydratedState","previousRouteKeyListRef","useEffect","previousRouteKeyList","nextState","getStateForRouteNamesChange","routeKeyChanges","filter","previousNestedParamsRef","previousParams","action","reset","navigate","merge","pop","updatedState","getStateForAction","shouldUpdate","stateRef","emitter","e","target","find","navigation","descriptors","listeners","concat","cb","i","self","lastIndexOf","listener","emit","data","childListeners","addListener","keyedListeners","addKeyedListener","onAction","actionListeners","beforeRemoveListeners","beforeRemove","routerConfigOptions","onRouteFocus","id","focusedListeners","focus","getStateListeners","describe","NavigationContent","element","Provider","value"],"sourceRoot":"../../src","sources":["useNavigationBuilder.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,20 +1,48 @@
1
1
  "use strict";
2
2
 
3
3
  import * as React from 'react';
4
+ import useLatestCallback from 'use-latest-callback';
4
5
  import { useSyncExternalStoreWithSelector } from 'use-sync-external-store/with-selector';
5
- import { useNavigation } from "./useNavigation.js";
6
+ import { useClientLayoutEffect } from "./useClientLayoutEffect.js";
7
+ import { jsx as _jsx } from "react/jsx-runtime";
6
8
  /**
7
9
  * Hook to get a value from the current navigation state using a selector.
8
10
  *
9
11
  * @param selector Selector function to get a value from the state.
10
12
  */
11
13
  export function useNavigationState(selector) {
12
- const navigation = useNavigation();
13
- const subscribe = React.useCallback(callback => {
14
- const unsubscribe = navigation.addListener('state', callback);
15
- return unsubscribe;
16
- }, [navigation]);
17
- const value = useSyncExternalStoreWithSelector(subscribe, navigation.getState, navigation.getState, selector);
14
+ const stateListener = React.useContext(NavigationStateListenerContext);
15
+ if (stateListener == null) {
16
+ throw new Error("Couldn't get the navigation state. Is your component inside a navigator?");
17
+ }
18
+ const value = useSyncExternalStoreWithSelector(stateListener.subscribe,
19
+ // @ts-expect-error: this is unsafe, but needed to make the generic work
20
+ stateListener.getState, stateListener.getState, selector);
18
21
  return value;
19
22
  }
23
+ export function NavigationStateListenerProvider({
24
+ state,
25
+ children
26
+ }) {
27
+ const listeners = React.useRef([]);
28
+ const getState = useLatestCallback(() => state);
29
+ const subscribe = useLatestCallback(callback => {
30
+ listeners.current.push(callback);
31
+ return () => {
32
+ listeners.current = listeners.current.filter(cb => cb !== callback);
33
+ };
34
+ });
35
+ useClientLayoutEffect(() => {
36
+ listeners.current.forEach(callback => callback());
37
+ }, [state]);
38
+ const context = React.useMemo(() => ({
39
+ getState,
40
+ subscribe
41
+ }), [getState, subscribe]);
42
+ return /*#__PURE__*/_jsx(NavigationStateListenerContext.Provider, {
43
+ value: context,
44
+ children: children
45
+ });
46
+ }
47
+ const NavigationStateListenerContext = /*#__PURE__*/React.createContext(undefined);
20
48
  //# sourceMappingURL=useNavigationState.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","useSyncExternalStoreWithSelector","useNavigation","useNavigationState","selector","navigation","subscribe","useCallback","callback","unsubscribe","addListener","value","getState"],"sourceRoot":"../../src","sources":["useNavigationState.tsx"],"mappings":";;AACA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,SAASC,gCAAgC,QAAQ,uCAAuC;AAGxF,SAASC,aAAa,QAAQ,oBAAiB;AAM/C;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,kBAAkBA,CAChCC,QAAgC,EAC7B;EACH,MAAMC,UAAU,GAAGH,aAAa,CAA4B,CAAC;EAE7D,MAAMI,SAAS,GAAGN,KAAK,CAACO,WAAW,CAChCC,QAAoB,IAAK;IACxB,MAAMC,WAAW,GAAGJ,UAAU,CAACK,WAAW,CAAC,OAAO,EAAEF,QAAQ,CAAC;IAE7D,OAAOC,WAAW;EACpB,CAAC,EACD,CAACJ,UAAU,CACb,CAAC;EAED,MAAMM,KAAK,GAAGV,gCAAgC,CAC5CK,SAAS,EACTD,UAAU,CAACO,QAAQ,EACnBP,UAAU,CAACO,QAAQ,EACnBR,QACF,CAAC;EAED,OAAOO,KAAK;AACd","ignoreList":[]}
1
+ {"version":3,"names":["React","useLatestCallback","useSyncExternalStoreWithSelector","useClientLayoutEffect","jsx","_jsx","useNavigationState","selector","stateListener","useContext","NavigationStateListenerContext","Error","value","subscribe","getState","NavigationStateListenerProvider","state","children","listeners","useRef","callback","current","push","filter","cb","forEach","context","useMemo","Provider","createContext","undefined"],"sourceRoot":"../../src","sources":["useNavigationState.tsx"],"mappings":";;AACA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,OAAOC,iBAAiB,MAAM,qBAAqB;AACnD,SAASC,gCAAgC,QAAQ,uCAAuC;AAExF,SAASC,qBAAqB,QAAQ,4BAAyB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAMhE;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,kBAAkBA,CAChCC,QAAgC,EAC7B;EACH,MAAMC,aAAa,GAAGR,KAAK,CAACS,UAAU,CAACC,8BAA8B,CAAC;EAEtE,IAAIF,aAAa,IAAI,IAAI,EAAE;IACzB,MAAM,IAAIG,KAAK,CACb,0EACF,CAAC;EACH;EAEA,MAAMC,KAAK,GAAGV,gCAAgC,CAC5CM,aAAa,CAACK,SAAS;EACvB;EACAL,aAAa,CAACM,QAAQ,EACtBN,aAAa,CAACM,QAAQ,EACtBP,QACF,CAAC;EAED,OAAOK,KAAK;AACd;AAEA,OAAO,SAASG,+BAA+BA,CAAC;EAC9CC,KAAK;EACLC;AAIF,CAAC,EAAE;EACD,MAAMC,SAAS,GAAGlB,KAAK,CAACmB,MAAM,CAAiB,EAAE,CAAC;EAElD,MAAML,QAAQ,GAAGb,iBAAiB,CAAC,MAAMe,KAAK,CAAC;EAE/C,MAAMH,SAAS,GAAGZ,iBAAiB,CAAEmB,QAAoB,IAAK;IAC5DF,SAAS,CAACG,OAAO,CAACC,IAAI,CAACF,QAAQ,CAAC;IAEhC,OAAO,MAAM;MACXF,SAAS,CAACG,OAAO,GAAGH,SAAS,CAACG,OAAO,CAACE,MAAM,CAAEC,EAAE,IAAKA,EAAE,KAAKJ,QAAQ,CAAC;IACvE,CAAC;EACH,CAAC,CAAC;EAEFjB,qBAAqB,CAAC,MAAM;IAC1Be,SAAS,CAACG,OAAO,CAACI,OAAO,CAAEL,QAAQ,IAAKA,QAAQ,CAAC,CAAC,CAAC;EACrD,CAAC,EAAE,CAACJ,KAAK,CAAC,CAAC;EAEX,MAAMU,OAAO,GAAG1B,KAAK,CAAC2B,OAAO,CAC3B,OAAO;IACLb,QAAQ;IACRD;EACF,CAAC,CAAC,EACF,CAACC,QAAQ,EAAED,SAAS,CACtB,CAAC;EAED,oBACER,IAAA,CAACK,8BAA8B,CAACkB,QAAQ;IAAChB,KAAK,EAAEc,OAAQ;IAAAT,QAAA,EACrDA;EAAQ,CAC8B,CAAC;AAE9C;AAEA,MAAMP,8BAA8B,gBAAGV,KAAK,CAAC6B,aAAa,CAMxDC,SAAS,CAAC","ignoreList":[]}
@@ -2,7 +2,7 @@
2
2
 
3
3
  import * as React from 'react';
4
4
  import { NavigationBuilderContext } from "./NavigationBuilderContext.js";
5
- import { useIsomorphicLayoutEffect } from './useIsomorphicLayoutEffect';
5
+ import { useClientLayoutEffect } from "./useClientLayoutEffect.js";
6
6
 
7
7
  /**
8
8
  * When screen config changes, we want to update the navigator in the same update phase.
@@ -20,6 +20,6 @@ export function useScheduleUpdate(callback) {
20
20
  // FIXME: This is potentially unsafe
21
21
  // However, since we are using sync store, it might be fine
22
22
  scheduleUpdate(callback);
23
- useIsomorphicLayoutEffect(flushUpdates);
23
+ useClientLayoutEffect(flushUpdates);
24
24
  }
25
25
  //# sourceMappingURL=useScheduleUpdate.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","NavigationBuilderContext","useIsomorphicLayoutEffect","useScheduleUpdate","callback","scheduleUpdate","flushUpdates","useContext"],"sourceRoot":"../../src","sources":["useScheduleUpdate.tsx"],"mappings":";;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAE9B,SAASC,wBAAwB,QAAQ,+BAA4B;AACrE,SAASC,yBAAyB,QAAQ,6BAA6B;;AAEvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,iBAAiBA,CAACC,QAAoB,EAAE;EACtD,MAAM;IAAEC,cAAc;IAAEC;EAAa,CAAC,GAAGN,KAAK,CAACO,UAAU,CACvDN,wBACF,CAAC;;EAED;EACA;EACAI,cAAc,CAACD,QAAQ,CAAC;EAExBF,yBAAyB,CAACI,YAAY,CAAC;AACzC","ignoreList":[]}
1
+ {"version":3,"names":["React","NavigationBuilderContext","useClientLayoutEffect","useScheduleUpdate","callback","scheduleUpdate","flushUpdates","useContext"],"sourceRoot":"../../src","sources":["useScheduleUpdate.tsx"],"mappings":";;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAE9B,SAASC,wBAAwB,QAAQ,+BAA4B;AACrE,SAASC,qBAAqB,QAAQ,4BAAyB;;AAE/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,iBAAiBA,CAACC,QAAoB,EAAE;EACtD,MAAM;IAAEC,cAAc;IAAEC;EAAa,CAAC,GAAGN,KAAK,CAACO,UAAU,CACvDN,wBACF,CAAC;;EAED;EACA;EACAI,cAAc,CAACD,QAAQ,CAAC;EAExBF,qBAAqB,CAACI,YAAY,CAAC;AACrC","ignoreList":[]}
@@ -0,0 +1,6 @@
1
+ import * as React from 'react';
2
+ /**
3
+ * Use `useEffect` during SSR and `useLayoutEffect` in the Browser & React Native to avoid warnings.
4
+ */
5
+ export declare const useClientLayoutEffect: typeof React.useEffect;
6
+ //# sourceMappingURL=useClientLayoutEffect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useClientLayoutEffect.d.ts","sourceRoot":"","sources":["../../../src/useClientLayoutEffect.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B;;GAEG;AACH,eAAO,MAAM,qBAAqB,wBAIb,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"useNavigationBuilder.d.ts","sourceRoot":"","sources":["../../../src/useNavigationBuilder.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,YAAY,EAIjB,KAAK,aAAa,EACnB,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAa/B,OAAO,EACL,KAAK,uBAAuB,EAE5B,KAAK,YAAY,EAEjB,iBAAiB,EAElB,MAAM,SAAS,CAAC;AAkPjB;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,SAAS,eAAe,EAC7B,aAAa,SAAS,oBAAoB,EAC1C,aAAa,SAAS,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,KAAK,IAAI,CAAC,EAC5D,aAAa,SAAS,EAAE,EACxB,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAEpC,YAAY,EAAE,aAAa,CAAC,KAAK,EAAE,gBAAgB,EAAE,aAAa,CAAC,EACnE,OAAO,EAAE,uBAAuB,CAC9B,aAAa,EACb,MAAM,GAAG,SAAS,EAClB,KAAK,EACL,aAAa,EACb,QAAQ,EACR,GAAG,CACJ,GACC,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6gBhB"}
1
+ {"version":3,"file":"useNavigationBuilder.d.ts","sourceRoot":"","sources":["../../../src/useNavigationBuilder.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,YAAY,EAIjB,KAAK,aAAa,EACnB,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAa/B,OAAO,EACL,KAAK,uBAAuB,EAE5B,KAAK,YAAY,EAEjB,iBAAiB,EAElB,MAAM,SAAS,CAAC;AAmPjB;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,SAAS,eAAe,EAC7B,aAAa,SAAS,oBAAoB,EAC1C,aAAa,SAAS,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,KAAK,IAAI,CAAC,EAC5D,aAAa,SAAS,EAAE,EACxB,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAEpC,YAAY,EAAE,aAAa,CAAC,KAAK,EAAE,gBAAgB,EAAE,aAAa,CAAC,EACnE,OAAO,EAAE,uBAAuB,CAC9B,aAAa,EACb,MAAM,GAAG,SAAS,EAClB,KAAK,EACL,aAAa,EACb,QAAQ,EACR,GAAG,CACJ,GACC,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+gBhB"}
@@ -1,4 +1,5 @@
1
1
  import type { NavigationState, ParamListBase } from '@react-navigation/routers';
2
+ import * as React from 'react';
2
3
  type Selector<ParamList extends ParamListBase, T> = (state: NavigationState<ParamList>) => T;
3
4
  /**
4
5
  * Hook to get a value from the current navigation state using a selector.
@@ -6,5 +7,9 @@ type Selector<ParamList extends ParamListBase, T> = (state: NavigationState<Para
6
7
  * @param selector Selector function to get a value from the state.
7
8
  */
8
9
  export declare function useNavigationState<ParamList extends ParamListBase, T>(selector: Selector<ParamList, T>): T;
10
+ export declare function NavigationStateListenerProvider({ state, children, }: {
11
+ state: NavigationState<ParamListBase>;
12
+ children: React.ReactNode;
13
+ }): import("react/jsx-runtime").JSX.Element;
9
14
  export {};
10
15
  //# sourceMappingURL=useNavigationState.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useNavigationState.d.ts","sourceRoot":"","sources":["../../../src/useNavigationState.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAOhF,KAAK,QAAQ,CAAC,SAAS,SAAS,aAAa,EAAE,CAAC,IAAI,CAClD,KAAK,EAAE,eAAe,CAAC,SAAS,CAAC,KAC9B,CAAC,CAAC;AAEP;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,SAAS,aAAa,EAAE,CAAC,EACnE,QAAQ,EAAE,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,GAC/B,CAAC,CAoBH"}
1
+ {"version":3,"file":"useNavigationState.d.ts","sourceRoot":"","sources":["../../../src/useNavigationState.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAChF,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAM/B,KAAK,QAAQ,CAAC,SAAS,SAAS,aAAa,EAAE,CAAC,IAAI,CAClD,KAAK,EAAE,eAAe,CAAC,SAAS,CAAC,KAC9B,CAAC,CAAC;AAEP;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,SAAS,aAAa,EAAE,CAAC,EACnE,QAAQ,EAAE,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,GAC/B,CAAC,CAkBH;AAED,wBAAgB,+BAA+B,CAAC,EAC9C,KAAK,EACL,QAAQ,GACT,EAAE;IACD,KAAK,EAAE,eAAe,CAAC,aAAa,CAAC,CAAC;IACtC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,2CA8BA"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@react-navigation/core",
3
3
  "description": "Core utilities for building navigators",
4
- "version": "7.11.0",
4
+ "version": "7.12.1",
5
5
  "keywords": [
6
6
  "react",
7
7
  "react-native",
@@ -82,5 +82,5 @@
82
82
  ]
83
83
  ]
84
84
  },
85
- "gitHead": "a4fc85ea5ddadd6320b634c0ef1f1acc9893e77e"
85
+ "gitHead": "c059915c187967137f33b8931e6badcb0c604492"
86
86
  }
@@ -0,0 +1,10 @@
1
+ import * as React from 'react';
2
+
3
+ /**
4
+ * Use `useEffect` during SSR and `useLayoutEffect` in the Browser & React Native to avoid warnings.
5
+ */
6
+ export const useClientLayoutEffect =
7
+ typeof document !== 'undefined' ||
8
+ (typeof navigator !== 'undefined' && navigator.product === 'ReactNative')
9
+ ? React.useLayoutEffect
10
+ : React.useEffect;
@@ -32,16 +32,17 @@ import {
32
32
  type RouteConfig,
33
33
  } from './types';
34
34
  import { useChildListeners } from './useChildListeners';
35
+ import { useClientLayoutEffect } from './useClientLayoutEffect';
35
36
  import { useComponent } from './useComponent';
36
37
  import { useCurrentRender } from './useCurrentRender';
37
38
  import { type ScreenConfigWithParent, useDescriptors } from './useDescriptors';
38
39
  import { useEventEmitter } from './useEventEmitter';
39
40
  import { useFocusedListenersChildrenAdapter } from './useFocusedListenersChildrenAdapter';
40
41
  import { useFocusEvents } from './useFocusEvents';
41
- import { useIsomorphicLayoutEffect } from './useIsomorphicLayoutEffect';
42
42
  import { useKeyedChildListeners } from './useKeyedChildListeners';
43
43
  import { useLazyValue } from './useLazyValue';
44
44
  import { useNavigationHelpers } from './useNavigationHelpers';
45
+ import { NavigationStateListenerProvider } from './useNavigationState';
45
46
  import { useOnAction } from './useOnAction';
46
47
  import { useOnGetState } from './useOnGetState';
47
48
  import { useOnRouteFocus } from './useOnRouteFocus';
@@ -644,7 +645,7 @@ export function useNavigationBuilder<
644
645
 
645
646
  stateRef.current = state;
646
647
 
647
- useIsomorphicLayoutEffect(() => {
648
+ useClientLayoutEffect(() => {
648
649
  stateRef.current = null;
649
650
  });
650
651
 
@@ -808,7 +809,9 @@ export function useNavigationBuilder<
808
809
 
809
810
  return (
810
811
  <NavigationHelpersContext.Provider value={navigation}>
811
- <PreventRemoveProvider>{element}</PreventRemoveProvider>
812
+ <NavigationStateListenerProvider state={state}>
813
+ <PreventRemoveProvider>{element}</PreventRemoveProvider>
814
+ </NavigationStateListenerProvider>
812
815
  </NavigationHelpersContext.Provider>
813
816
  );
814
817
  });
@@ -1,9 +1,9 @@
1
1
  import type { NavigationState, ParamListBase } from '@react-navigation/routers';
2
2
  import * as React from 'react';
3
+ import useLatestCallback from 'use-latest-callback';
3
4
  import { useSyncExternalStoreWithSelector } from 'use-sync-external-store/with-selector';
4
5
 
5
- import type { NavigationProp } from './types';
6
- import { useNavigation } from './useNavigation';
6
+ import { useClientLayoutEffect } from './useClientLayoutEffect';
7
7
 
8
8
  type Selector<ParamList extends ParamListBase, T> = (
9
9
  state: NavigationState<ParamList>
@@ -17,23 +17,67 @@ type Selector<ParamList extends ParamListBase, T> = (
17
17
  export function useNavigationState<ParamList extends ParamListBase, T>(
18
18
  selector: Selector<ParamList, T>
19
19
  ): T {
20
- const navigation = useNavigation<NavigationProp<ParamList>>();
20
+ const stateListener = React.useContext(NavigationStateListenerContext);
21
21
 
22
- const subscribe = React.useCallback(
23
- (callback: () => void) => {
24
- const unsubscribe = navigation.addListener('state', callback);
25
-
26
- return unsubscribe;
27
- },
28
- [navigation]
29
- );
22
+ if (stateListener == null) {
23
+ throw new Error(
24
+ "Couldn't get the navigation state. Is your component inside a navigator?"
25
+ );
26
+ }
30
27
 
31
28
  const value = useSyncExternalStoreWithSelector(
32
- subscribe,
33
- navigation.getState,
34
- navigation.getState,
29
+ stateListener.subscribe,
30
+ // @ts-expect-error: this is unsafe, but needed to make the generic work
31
+ stateListener.getState,
32
+ stateListener.getState,
35
33
  selector
36
34
  );
37
35
 
38
36
  return value;
39
37
  }
38
+
39
+ export function NavigationStateListenerProvider({
40
+ state,
41
+ children,
42
+ }: {
43
+ state: NavigationState<ParamListBase>;
44
+ children: React.ReactNode;
45
+ }) {
46
+ const listeners = React.useRef<(() => void)[]>([]);
47
+
48
+ const getState = useLatestCallback(() => state);
49
+
50
+ const subscribe = useLatestCallback((callback: () => void) => {
51
+ listeners.current.push(callback);
52
+
53
+ return () => {
54
+ listeners.current = listeners.current.filter((cb) => cb !== callback);
55
+ };
56
+ });
57
+
58
+ useClientLayoutEffect(() => {
59
+ listeners.current.forEach((callback) => callback());
60
+ }, [state]);
61
+
62
+ const context = React.useMemo(
63
+ () => ({
64
+ getState,
65
+ subscribe,
66
+ }),
67
+ [getState, subscribe]
68
+ );
69
+
70
+ return (
71
+ <NavigationStateListenerContext.Provider value={context}>
72
+ {children}
73
+ </NavigationStateListenerContext.Provider>
74
+ );
75
+ }
76
+
77
+ const NavigationStateListenerContext = React.createContext<
78
+ | {
79
+ getState: () => NavigationState<ParamListBase>;
80
+ subscribe: (callback: () => void) => () => void;
81
+ }
82
+ | undefined
83
+ >(undefined);
@@ -1,7 +1,7 @@
1
1
  import * as React from 'react';
2
2
 
3
3
  import { NavigationBuilderContext } from './NavigationBuilderContext';
4
- import { useIsomorphicLayoutEffect } from './useIsomorphicLayoutEffect';
4
+ import { useClientLayoutEffect } from './useClientLayoutEffect';
5
5
 
6
6
  /**
7
7
  * When screen config changes, we want to update the navigator in the same update phase.
@@ -19,5 +19,5 @@ export function useScheduleUpdate(callback: () => void) {
19
19
  // However, since we are using sync store, it might be fine
20
20
  scheduleUpdate(callback);
21
21
 
22
- useIsomorphicLayoutEffect(flushUpdates);
22
+ useClientLayoutEffect(flushUpdates);
23
23
  }
@@ -1,9 +0,0 @@
1
- "use strict";
2
-
3
- import { useEffect, useLayoutEffect } from 'react';
4
-
5
- /**
6
- * Use `useEffect` during SSR and `useLayoutEffect` in the browser to avoid warnings.
7
- */
8
- export const useIsomorphicLayoutEffect = typeof document !== 'undefined' ? useLayoutEffect : useEffect;
9
- //# sourceMappingURL=useIsomorphicLayoutEffect.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["useEffect","useLayoutEffect","useIsomorphicLayoutEffect","document"],"sourceRoot":"../../src","sources":["useIsomorphicLayoutEffect.tsx"],"mappings":";;AAAA,SAASA,SAAS,EAAEC,eAAe,QAAQ,OAAO;;AAElD;AACA;AACA;AACA,OAAO,MAAMC,yBAAyB,GACpC,OAAOC,QAAQ,KAAK,WAAW,GAAGF,eAAe,GAAGD,SAAS","ignoreList":[]}
@@ -1,5 +0,0 @@
1
- "use strict";
2
-
3
- import { useLayoutEffect } from 'react';
4
- export const useIsomorphicLayoutEffect = useLayoutEffect;
5
- //# sourceMappingURL=useIsomorphicLayoutEffect.native.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["useLayoutEffect","useIsomorphicLayoutEffect"],"sourceRoot":"../../src","sources":["useIsomorphicLayoutEffect.native.tsx"],"mappings":";;AAAA,SAASA,eAAe,QAAQ,OAAO;AAEvC,OAAO,MAAMC,yBAAyB,GAAGD,eAAe","ignoreList":[]}
@@ -1,6 +0,0 @@
1
- import { useEffect } from 'react';
2
- /**
3
- * Use `useEffect` during SSR and `useLayoutEffect` in the browser to avoid warnings.
4
- */
5
- export declare const useIsomorphicLayoutEffect: typeof useEffect;
6
- //# sourceMappingURL=useIsomorphicLayoutEffect.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useIsomorphicLayoutEffect.d.ts","sourceRoot":"","sources":["../../../src/useIsomorphicLayoutEffect.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAmB,MAAM,OAAO,CAAC;AAEnD;;GAEG;AACH,eAAO,MAAM,yBAAyB,kBACyB,CAAC"}
@@ -1,3 +0,0 @@
1
- import { useLayoutEffect } from 'react';
2
- export declare const useIsomorphicLayoutEffect: typeof useLayoutEffect;
3
- //# sourceMappingURL=useIsomorphicLayoutEffect.native.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useIsomorphicLayoutEffect.native.d.ts","sourceRoot":"","sources":["../../../src/useIsomorphicLayoutEffect.native.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,OAAO,CAAC;AAExC,eAAO,MAAM,yBAAyB,wBAAkB,CAAC"}
@@ -1,3 +0,0 @@
1
- import { useLayoutEffect } from 'react';
2
-
3
- export const useIsomorphicLayoutEffect = useLayoutEffect;
@@ -1,7 +0,0 @@
1
- import { useEffect, useLayoutEffect } from 'react';
2
-
3
- /**
4
- * Use `useEffect` during SSR and `useLayoutEffect` in the browser to avoid warnings.
5
- */
6
- export const useIsomorphicLayoutEffect =
7
- typeof document !== 'undefined' ? useLayoutEffect : useEffect;