@react-navigation/core 7.22.1 → 7.24.0

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 (95) hide show
  1. package/lib/module/BaseNavigationContainer.js +50 -22
  2. package/lib/module/BaseNavigationContainer.js.map +1 -1
  3. package/lib/module/NavigationBuilderContext.js +7 -11
  4. package/lib/module/NavigationBuilderContext.js.map +1 -1
  5. package/lib/module/NavigationIndependentTree.js +41 -10
  6. package/lib/module/NavigationIndependentTree.js.map +1 -1
  7. package/lib/module/NavigationMetaContext.js +3 -3
  8. package/lib/module/NavigationProvider.js +2 -2
  9. package/lib/module/NavigationProvider.js.map +1 -1
  10. package/lib/module/NavigationStateContext.js.map +1 -1
  11. package/lib/module/PreventRemoveProvider.js +3 -4
  12. package/lib/module/PreventRemoveProvider.js.map +1 -1
  13. package/lib/module/SceneView.js +18 -16
  14. package/lib/module/SceneView.js.map +1 -1
  15. package/lib/module/StaticNavigation.js +53 -18
  16. package/lib/module/StaticNavigation.js.map +1 -1
  17. package/lib/module/isRecordEqual.js +1 -1
  18. package/lib/module/isRecordEqual.js.map +1 -1
  19. package/lib/module/useDescriptors.js +40 -15
  20. package/lib/module/useDescriptors.js.map +1 -1
  21. package/lib/module/useFocusedListenersChildrenAdapter.js +2 -2
  22. package/lib/module/useFocusedListenersChildrenAdapter.js.map +1 -1
  23. package/lib/module/useNavigationBuilder.js +3 -2
  24. package/lib/module/useNavigationBuilder.js.map +1 -1
  25. package/lib/module/useNavigationCache.js +14 -26
  26. package/lib/module/useNavigationCache.js.map +1 -1
  27. package/lib/module/useNavigationHelpers.js +17 -7
  28. package/lib/module/useNavigationHelpers.js.map +1 -1
  29. package/lib/module/useNavigationState.js +1 -1
  30. package/lib/module/useNavigationState.js.map +1 -1
  31. package/lib/module/useOnAction.js +2 -2
  32. package/lib/module/useOnAction.js.map +1 -1
  33. package/lib/module/useOnGetState.js +2 -2
  34. package/lib/module/useOnGetState.js.map +1 -1
  35. package/lib/module/useOnPreventRemove.js +2 -2
  36. package/lib/module/useOnPreventRemove.js.map +1 -1
  37. package/lib/module/useOnRouteFocus.js +2 -2
  38. package/lib/module/useOnRouteFocus.js.map +1 -1
  39. package/lib/module/useOptionsGetters.js +4 -8
  40. package/lib/module/useOptionsGetters.js.map +1 -1
  41. package/lib/module/usePreventRemove.js +1 -2
  42. package/lib/module/usePreventRemove.js.map +1 -1
  43. package/lib/module/useRegisterNavigator.js +1 -2
  44. package/lib/module/useRegisterNavigator.js.map +1 -1
  45. package/lib/module/useScheduleUpdate.js +2 -2
  46. package/lib/module/useScheduleUpdate.js.map +1 -1
  47. package/lib/typescript/src/BaseNavigationContainer.d.ts.map +1 -1
  48. package/lib/typescript/src/NavigationBuilderContext.d.ts +11 -7
  49. package/lib/typescript/src/NavigationBuilderContext.d.ts.map +1 -1
  50. package/lib/typescript/src/NavigationIndependentTree.d.ts.map +1 -1
  51. package/lib/typescript/src/NavigationMetaContext.d.ts +3 -3
  52. package/lib/typescript/src/NavigationProvider.d.ts.map +1 -1
  53. package/lib/typescript/src/NavigationStateContext.d.ts +0 -1
  54. package/lib/typescript/src/NavigationStateContext.d.ts.map +1 -1
  55. package/lib/typescript/src/PreventRemoveProvider.d.ts.map +1 -1
  56. package/lib/typescript/src/SceneView.d.ts.map +1 -1
  57. package/lib/typescript/src/StaticNavigation.d.ts.map +1 -1
  58. package/lib/typescript/src/isRecordEqual.d.ts.map +1 -1
  59. package/lib/typescript/src/useDescriptors.d.ts.map +1 -1
  60. package/lib/typescript/src/useNavigationBuilder.d.ts.map +1 -1
  61. package/lib/typescript/src/useNavigationCache.d.ts.map +1 -1
  62. package/lib/typescript/src/useNavigationHelpers.d.ts.map +1 -1
  63. package/lib/typescript/src/useNavigationState.d.ts +5 -0
  64. package/lib/typescript/src/useNavigationState.d.ts.map +1 -1
  65. package/lib/typescript/src/useOnRouteFocus.d.ts.map +1 -1
  66. package/lib/typescript/src/useOptionsGetters.d.ts +2 -0
  67. package/lib/typescript/src/useOptionsGetters.d.ts.map +1 -1
  68. package/lib/typescript/src/usePreventRemove.d.ts.map +1 -1
  69. package/lib/typescript/src/useRegisterNavigator.d.ts.map +1 -1
  70. package/lib/typescript/src/useScheduleUpdate.d.ts.map +1 -1
  71. package/package.json +3 -4
  72. package/src/BaseNavigationContainer.tsx +73 -33
  73. package/src/NavigationBuilderContext.tsx +27 -17
  74. package/src/NavigationIndependentTree.tsx +41 -13
  75. package/src/NavigationMetaContext.tsx +3 -3
  76. package/src/NavigationProvider.tsx +11 -8
  77. package/src/NavigationStateContext.tsx +0 -4
  78. package/src/PreventRemoveProvider.tsx +4 -10
  79. package/src/SceneView.tsx +18 -25
  80. package/src/StaticNavigation.tsx +71 -17
  81. package/src/isRecordEqual.tsx +3 -1
  82. package/src/useDescriptors.tsx +99 -27
  83. package/src/useFocusedListenersChildrenAdapter.tsx +2 -2
  84. package/src/useNavigationBuilder.tsx +3 -4
  85. package/src/useNavigationCache.tsx +13 -30
  86. package/src/useNavigationHelpers.tsx +18 -6
  87. package/src/useNavigationState.tsx +1 -1
  88. package/src/useOnAction.tsx +2 -2
  89. package/src/useOnGetState.tsx +2 -2
  90. package/src/useOnPreventRemove.tsx +2 -2
  91. package/src/useOnRouteFocus.tsx +2 -4
  92. package/src/useOptionsGetters.tsx +9 -6
  93. package/src/usePreventRemove.tsx +1 -2
  94. package/src/useRegisterNavigator.tsx +2 -2
  95. package/src/useScheduleUpdate.tsx +2 -4
@@ -1,4 +1,3 @@
1
- import { nanoid } from 'nanoid/non-secure';
2
1
  import * as React from 'react';
3
2
 
4
3
  import { SingleNavigatorContext } from './EnsureSingleNavigator';
@@ -8,7 +7,8 @@ import { SingleNavigatorContext } from './EnsureSingleNavigator';
8
7
  * This is used to prevent multiple navigators under a single container or screen.
9
8
  */
10
9
  export function useRegisterNavigator() {
11
- const [key] = React.useState(() => nanoid());
10
+ const key = React.useId();
11
+
12
12
  const container = React.useContext(SingleNavigatorContext);
13
13
 
14
14
  if (container === undefined) {
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
2
 
3
- import { NavigationBuilderContext } from './NavigationBuilderContext';
3
+ import { useNavigationBuilderContext } from './NavigationBuilderContext';
4
4
  import { useClientLayoutEffect } from './useClientLayoutEffect';
5
5
 
6
6
  /**
@@ -12,9 +12,7 @@ import { useClientLayoutEffect } from './useClientLayoutEffect';
12
12
  * This lets nested updates be applied from the root down without clobbering each other.
13
13
  */
14
14
  export function useScheduleUpdate(callback: () => void) {
15
- const { scheduleUpdate, flushUpdates } = React.useContext(
16
- NavigationBuilderContext
17
- );
15
+ const { scheduleUpdate, flushUpdates } = useNavigationBuilderContext();
18
16
 
19
17
  React.useInsertionEffect(() => {
20
18
  scheduleUpdate(callback);