@react-navigation/native 8.0.0-alpha.2 → 8.0.0-alpha.21

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 (365) hide show
  1. package/android/build.gradle +96 -15
  2. package/android/src/main/java/org/reactnavigation/MaterialSymbolModule.kt +58 -58
  3. package/android/src/main/java/org/reactnavigation/MaterialSymbolTypeface.kt +81 -4
  4. package/android/src/main/java/org/reactnavigation/MaterialSymbolView.kt +52 -7
  5. package/android/src/main/java/org/reactnavigation/MaterialSymbolViewManager.kt +14 -7
  6. package/android/src/main/java/org/reactnavigation/ReactNavigationPackage.kt +14 -15
  7. package/assets/fonts/MaterialSymbolsOutlined_100.ttf +0 -0
  8. package/assets/fonts/MaterialSymbolsOutlined_200.ttf +0 -0
  9. package/assets/fonts/MaterialSymbolsOutlined_300.ttf +0 -0
  10. package/{android/build/intermediates/assets/debug/mergeDebugAssets/fonts/MaterialSymbolsOutlined.ttf → assets/fonts/MaterialSymbolsOutlined_400.ttf} +0 -0
  11. package/assets/fonts/MaterialSymbolsOutlined_500.ttf +0 -0
  12. package/assets/fonts/MaterialSymbolsOutlined_600.ttf +0 -0
  13. package/assets/fonts/MaterialSymbolsOutlined_700.ttf +0 -0
  14. package/assets/fonts/MaterialSymbolsRounded_100.ttf +0 -0
  15. package/assets/fonts/MaterialSymbolsRounded_200.ttf +0 -0
  16. package/assets/fonts/MaterialSymbolsRounded_300.ttf +0 -0
  17. package/assets/fonts/{MaterialSymbolsRounded.ttf → MaterialSymbolsRounded_400.ttf} +0 -0
  18. package/assets/fonts/MaterialSymbolsRounded_500.ttf +0 -0
  19. package/assets/fonts/MaterialSymbolsRounded_600.ttf +0 -0
  20. package/assets/fonts/MaterialSymbolsRounded_700.ttf +0 -0
  21. package/assets/fonts/MaterialSymbolsSharp_100.ttf +0 -0
  22. package/assets/fonts/MaterialSymbolsSharp_200.ttf +0 -0
  23. package/assets/fonts/MaterialSymbolsSharp_300.ttf +0 -0
  24. package/assets/fonts/{MaterialSymbolsSharp.ttf → MaterialSymbolsSharp_400.ttf} +0 -0
  25. package/assets/fonts/MaterialSymbolsSharp_500.ttf +0 -0
  26. package/assets/fonts/MaterialSymbolsSharp_600.ttf +0 -0
  27. package/assets/fonts/MaterialSymbolsSharp_700.ttf +0 -0
  28. package/ios/ReactNavigationCornerInsetView.h +14 -0
  29. package/ios/ReactNavigationCornerInsetView.mm +182 -0
  30. package/ios/ReactNavigationCornerInsetView.swift +193 -0
  31. package/ios/ReactNavigationCornerInsetViewComponentDescriptor.h +23 -0
  32. package/ios/ReactNavigationCornerInsetViewShadowNode.h +27 -0
  33. package/ios/ReactNavigationCornerInsetViewShadowNode.mm +42 -0
  34. package/ios/ReactNavigationCornerInsetViewState.h +19 -0
  35. package/ios/ReactNavigationSFSymbolView.mm +21 -0
  36. package/ios/ReactNavigationSFSymbolView.swift +257 -7
  37. package/lib/module/NavigationContainer.js +16 -11
  38. package/lib/module/NavigationContainer.js.map +1 -1
  39. package/lib/module/ServerContainer.js +5 -4
  40. package/lib/module/ServerContainer.js.map +1 -1
  41. package/lib/module/ServerContext.js.map +1 -1
  42. package/lib/module/__stubs__/createStackNavigator.js +1 -3
  43. package/lib/module/__stubs__/createStackNavigator.js.map +1 -1
  44. package/lib/module/createStaticNavigation.js +5 -4
  45. package/lib/module/createStaticNavigation.js.map +1 -1
  46. package/lib/module/index.js +3 -1
  47. package/lib/module/index.js.map +1 -1
  48. package/lib/module/native/CornerInset.ios.js +66 -0
  49. package/lib/module/native/CornerInset.ios.js.map +1 -0
  50. package/lib/module/native/CornerInset.js +17 -0
  51. package/lib/module/native/CornerInset.js.map +1 -0
  52. package/lib/module/native/MaterialSymbol.android.js +8 -15
  53. package/lib/module/native/MaterialSymbol.android.js.map +1 -1
  54. package/lib/module/native/MaterialSymbolData.js +0 -9
  55. package/lib/module/native/MaterialSymbolData.js.map +1 -1
  56. package/lib/module/native/MaterialSymbolViewNativeComponent.ts +6 -2
  57. package/lib/module/native/ReactNavigationCornerInsetViewNativeComponent.ts +32 -0
  58. package/lib/module/native/SFSymbol.ios.js +24 -1
  59. package/lib/module/native/SFSymbol.ios.js.map +1 -1
  60. package/lib/module/native/SFSymbolViewNativeComponent.ts +15 -1
  61. package/lib/module/native/constants.js +14 -0
  62. package/lib/module/native/constants.js.map +1 -0
  63. package/lib/module/theming/DarkTheme.js +4 -4
  64. package/lib/module/theming/{DefaultTheme.js → LightTheme.js} +5 -5
  65. package/lib/module/theming/LightTheme.js.map +1 -0
  66. package/lib/module/theming/MaterialTheme.android.js +29 -0
  67. package/lib/module/theming/MaterialTheme.android.js.map +1 -0
  68. package/lib/module/theming/MaterialTheme.js +18 -0
  69. package/lib/module/theming/MaterialTheme.js.map +1 -0
  70. package/lib/module/useBackButton.js.map +1 -1
  71. package/lib/module/useDocumentTitle.js.map +1 -1
  72. package/lib/module/useLinkBuilder.js +4 -4
  73. package/lib/module/useLinkBuilder.js.map +1 -1
  74. package/lib/module/useLinkProps.js +5 -26
  75. package/lib/module/useLinkProps.js.map +1 -1
  76. package/lib/module/useLinkTo.js +1 -1
  77. package/lib/module/useLinkTo.js.map +1 -1
  78. package/lib/module/useLinking.js +40 -4
  79. package/lib/module/useLinking.js.map +1 -1
  80. package/lib/module/useLinking.native.js +20 -3
  81. package/lib/module/useLinking.native.js.map +1 -1
  82. package/lib/module/useLocale.js +1 -1
  83. package/lib/module/useLocale.js.map +1 -1
  84. package/lib/module/useRoutePath.js +1 -1
  85. package/lib/module/useRoutePath.js.map +1 -1
  86. package/lib/module/useScrollToTop.js +1 -1
  87. package/lib/module/useScrollToTop.js.map +1 -1
  88. package/lib/typescript/src/NavigationContainer.d.ts +12 -5
  89. package/lib/typescript/src/NavigationContainer.d.ts.map +1 -1
  90. package/lib/typescript/src/ServerContainer.d.ts +6 -3
  91. package/lib/typescript/src/ServerContainer.d.ts.map +1 -1
  92. package/lib/typescript/src/ServerContext.d.ts +1 -1
  93. package/lib/typescript/src/ServerContext.d.ts.map +1 -1
  94. package/lib/typescript/src/__stubs__/createStackNavigator.d.ts +5 -8
  95. package/lib/typescript/src/__stubs__/createStackNavigator.d.ts.map +1 -1
  96. package/lib/typescript/src/createStaticNavigation.d.ts +5 -5
  97. package/lib/typescript/src/createStaticNavigation.d.ts.map +1 -1
  98. package/lib/typescript/src/index.d.ts +3 -1
  99. package/lib/typescript/src/index.d.ts.map +1 -1
  100. package/lib/typescript/src/native/CornerInset.d.ts +28 -0
  101. package/lib/typescript/src/native/CornerInset.d.ts.map +1 -0
  102. package/lib/typescript/src/native/CornerInset.ios.d.ts +8 -0
  103. package/lib/typescript/src/native/CornerInset.ios.d.ts.map +1 -0
  104. package/lib/typescript/src/native/MaterialSymbol.android.d.ts +2 -2
  105. package/lib/typescript/src/native/MaterialSymbol.android.d.ts.map +1 -1
  106. package/lib/typescript/src/native/MaterialSymbolData.d.ts +0 -5
  107. package/lib/typescript/src/native/MaterialSymbolData.d.ts.map +1 -1
  108. package/lib/typescript/src/native/MaterialSymbolViewNativeComponent.d.ts +3 -2
  109. package/lib/typescript/src/native/MaterialSymbolViewNativeComponent.d.ts.map +1 -1
  110. package/lib/typescript/src/native/NativeMaterialSymbolModule.d.ts +1 -1
  111. package/lib/typescript/src/native/NativeMaterialSymbolModule.d.ts.map +1 -1
  112. package/lib/typescript/src/native/ReactNavigationCornerInsetViewNativeComponent.d.ts +14 -0
  113. package/lib/typescript/src/native/ReactNavigationCornerInsetViewNativeComponent.d.ts.map +1 -0
  114. package/lib/typescript/src/native/SFSymbol.ios.d.ts +1 -1
  115. package/lib/typescript/src/native/SFSymbol.ios.d.ts.map +1 -1
  116. package/lib/typescript/src/native/SFSymbolViewNativeComponent.d.ts +15 -1
  117. package/lib/typescript/src/native/SFSymbolViewNativeComponent.d.ts.map +1 -1
  118. package/lib/typescript/src/native/constants.d.ts +12 -0
  119. package/lib/typescript/src/native/constants.d.ts.map +1 -0
  120. package/lib/typescript/src/native/types.d.ts +143 -7
  121. package/lib/typescript/src/native/types.d.ts.map +1 -1
  122. package/lib/typescript/src/theming/DarkTheme.d.ts +4 -4
  123. package/lib/typescript/src/theming/{DefaultTheme.d.ts → LightTheme.d.ts} +5 -5
  124. package/lib/typescript/src/theming/LightTheme.d.ts.map +1 -0
  125. package/lib/typescript/src/theming/MaterialTheme.android.d.ts +127 -0
  126. package/lib/typescript/src/theming/MaterialTheme.android.d.ts.map +1 -0
  127. package/lib/typescript/src/theming/MaterialTheme.d.ts +114 -0
  128. package/lib/typescript/src/theming/MaterialTheme.d.ts.map +1 -0
  129. package/lib/typescript/src/types.d.ts +13 -13
  130. package/lib/typescript/src/types.d.ts.map +1 -1
  131. package/lib/typescript/src/useBackButton.d.ts +1 -1
  132. package/lib/typescript/src/useBackButton.d.ts.map +1 -1
  133. package/lib/typescript/src/useDocumentTitle.d.ts +1 -1
  134. package/lib/typescript/src/useDocumentTitle.d.ts.map +1 -1
  135. package/lib/typescript/src/useLinkBuilder.d.ts +56 -66
  136. package/lib/typescript/src/useLinkBuilder.d.ts.map +1 -1
  137. package/lib/typescript/src/useLinkProps.d.ts.map +1 -1
  138. package/lib/typescript/src/useLinking.d.ts +11 -13
  139. package/lib/typescript/src/useLinking.d.ts.map +1 -1
  140. package/lib/typescript/src/useLinking.native.d.ts +21 -23
  141. package/lib/typescript/src/useLinking.native.d.ts.map +1 -1
  142. package/package.json +43 -26
  143. package/src/NavigationContainer.tsx +41 -32
  144. package/src/ServerContainer.tsx +3 -5
  145. package/src/ServerContext.tsx +6 -4
  146. package/src/__stubs__/createStackNavigator.tsx +6 -12
  147. package/src/createStaticNavigation.tsx +13 -17
  148. package/src/index.tsx +7 -1
  149. package/src/native/CornerInset.ios.tsx +85 -0
  150. package/src/native/CornerInset.tsx +40 -0
  151. package/src/native/MaterialSymbol.android.tsx +8 -19
  152. package/src/native/MaterialSymbolData.tsx +0 -6
  153. package/src/native/MaterialSymbolViewNativeComponent.ts +6 -2
  154. package/src/native/NativeMaterialSymbolModule.ts +3 -3
  155. package/src/native/ReactNavigationCornerInsetViewNativeComponent.ts +32 -0
  156. package/src/native/SFSymbol.ios.tsx +24 -1
  157. package/src/native/SFSymbolViewNativeComponent.ts +15 -1
  158. package/src/native/constants.tsx +11 -0
  159. package/src/native/types.tsx +182 -7
  160. package/src/theming/DarkTheme.tsx +4 -4
  161. package/src/theming/{DefaultTheme.tsx → LightTheme.tsx} +4 -4
  162. package/src/theming/MaterialTheme.android.tsx +30 -0
  163. package/src/theming/MaterialTheme.tsx +19 -0
  164. package/src/types.tsx +38 -36
  165. package/src/useBackButton.tsx +2 -2
  166. package/src/useDocumentTitle.tsx +2 -2
  167. package/src/useLinkBuilder.tsx +11 -5
  168. package/src/useLinkProps.tsx +8 -41
  169. package/src/useLinkTo.tsx +1 -1
  170. package/src/useLinking.native.tsx +41 -20
  171. package/src/useLinking.tsx +68 -9
  172. package/src/useLocale.tsx +1 -1
  173. package/src/useRoutePath.tsx +1 -1
  174. package/src/useScrollToTop.tsx +1 -1
  175. package/android/build/.transforms/586a73aab4c351d3f13dc604ca6964e8/results.bin +0 -1
  176. package/android/build/.transforms/586a73aab4c351d3f13dc604ca6964e8/transformed/classes/classes_dex/classes.dex +0 -0
  177. package/android/build/.transforms/fb9c4b42fa16b6541a5819cb4bf06272/results.bin +0 -1
  178. package/android/build/.transforms/fb9c4b42fa16b6541a5819cb4bf06272/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/facebook/fbreact/specs/NativeMaterialSymbolModuleSpec.dex +0 -0
  179. package/android/build/.transforms/fb9c4b42fa16b6541a5819cb4bf06272/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/facebook/react/viewmanagers/ReactNavigationMaterialSymbolViewManagerDelegate.dex +0 -0
  180. package/android/build/.transforms/fb9c4b42fa16b6541a5819cb4bf06272/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/facebook/react/viewmanagers/ReactNavigationMaterialSymbolViewManagerInterface.dex +0 -0
  181. package/android/build/.transforms/fb9c4b42fa16b6541a5819cb4bf06272/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/facebook/react/viewmanagers/ReactNavigationSFSymbolViewManagerDelegate.dex +0 -0
  182. package/android/build/.transforms/fb9c4b42fa16b6541a5819cb4bf06272/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/facebook/react/viewmanagers/ReactNavigationSFSymbolViewManagerInterface.dex +0 -0
  183. package/android/build/.transforms/fb9c4b42fa16b6541a5819cb4bf06272/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/org/reactnavigation/BuildConfig.dex +0 -0
  184. package/android/build/.transforms/fb9c4b42fa16b6541a5819cb4bf06272/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/org/reactnavigation/MaterialSymbolModule$Companion.dex +0 -0
  185. package/android/build/.transforms/fb9c4b42fa16b6541a5819cb4bf06272/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/org/reactnavigation/MaterialSymbolModule$WhenMappings.dex +0 -0
  186. package/android/build/.transforms/fb9c4b42fa16b6541a5819cb4bf06272/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/org/reactnavigation/MaterialSymbolModule$getImageSource$future$1$1$1.dex +0 -0
  187. package/android/build/.transforms/fb9c4b42fa16b6541a5819cb4bf06272/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/org/reactnavigation/MaterialSymbolModule.dex +0 -0
  188. package/android/build/.transforms/fb9c4b42fa16b6541a5819cb4bf06272/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/org/reactnavigation/MaterialSymbolTypeface.dex +0 -0
  189. package/android/build/.transforms/fb9c4b42fa16b6541a5819cb4bf06272/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/org/reactnavigation/MaterialSymbolView.dex +0 -0
  190. package/android/build/.transforms/fb9c4b42fa16b6541a5819cb4bf06272/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/org/reactnavigation/MaterialSymbolViewManager$Companion.dex +0 -0
  191. package/android/build/.transforms/fb9c4b42fa16b6541a5819cb4bf06272/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/org/reactnavigation/MaterialSymbolViewManager.dex +0 -0
  192. package/android/build/.transforms/fb9c4b42fa16b6541a5819cb4bf06272/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/org/reactnavigation/ReactNavigationPackage.dex +0 -0
  193. package/android/build/.transforms/fb9c4b42fa16b6541a5819cb4bf06272/transformed/bundleLibRuntimeToDirDebug/desugar_graph.bin +0 -0
  194. package/android/build/generated/source/buildConfig/debug/org/reactnavigation/BuildConfig.java +0 -10
  195. package/android/build/generated/source/codegen/java/com/facebook/fbreact/specs/NativeMaterialSymbolModuleSpec.java +0 -38
  196. package/android/build/generated/source/codegen/java/com/facebook/react/viewmanagers/ReactNavigationMaterialSymbolViewManagerDelegate.java +0 -42
  197. package/android/build/generated/source/codegen/java/com/facebook/react/viewmanagers/ReactNavigationMaterialSymbolViewManagerInterface.java +0 -21
  198. package/android/build/generated/source/codegen/java/com/facebook/react/viewmanagers/ReactNavigationSFSymbolViewManagerDelegate.java +0 -39
  199. package/android/build/generated/source/codegen/java/com/facebook/react/viewmanagers/ReactNavigationSFSymbolViewManagerInterface.java +0 -20
  200. package/android/build/generated/source/codegen/jni/CMakeLists.txt +0 -28
  201. package/android/build/generated/source/codegen/jni/ReactNavigationSpec-generated.cpp +0 -32
  202. package/android/build/generated/source/codegen/jni/ReactNavigationSpec.h +0 -31
  203. package/android/build/generated/source/codegen/jni/react/renderer/components/ReactNavigationSpec/ComponentDescriptors.cpp +0 -23
  204. package/android/build/generated/source/codegen/jni/react/renderer/components/ReactNavigationSpec/ComponentDescriptors.h +0 -25
  205. package/android/build/generated/source/codegen/jni/react/renderer/components/ReactNavigationSpec/EventEmitters.cpp +0 -17
  206. package/android/build/generated/source/codegen/jni/react/renderer/components/ReactNavigationSpec/EventEmitters.h +0 -30
  207. package/android/build/generated/source/codegen/jni/react/renderer/components/ReactNavigationSpec/Props.cpp +0 -101
  208. package/android/build/generated/source/codegen/jni/react/renderer/components/ReactNavigationSpec/Props.h +0 -55
  209. package/android/build/generated/source/codegen/jni/react/renderer/components/ReactNavigationSpec/ReactNavigationSpecJSI-generated.cpp +0 -31
  210. package/android/build/generated/source/codegen/jni/react/renderer/components/ReactNavigationSpec/ReactNavigationSpecJSI.h +0 -71
  211. package/android/build/generated/source/codegen/jni/react/renderer/components/ReactNavigationSpec/ShadowNodes.cpp +0 -18
  212. package/android/build/generated/source/codegen/jni/react/renderer/components/ReactNavigationSpec/ShadowNodes.h +0 -43
  213. package/android/build/generated/source/codegen/jni/react/renderer/components/ReactNavigationSpec/States.cpp +0 -16
  214. package/android/build/generated/source/codegen/jni/react/renderer/components/ReactNavigationSpec/States.h +0 -22
  215. package/android/build/generated/source/codegen/schema.json +0 -1
  216. package/android/build/intermediates/aapt_friendly_merged_manifests/debug/processDebugManifest/aapt/AndroidManifest.xml +0 -7
  217. package/android/build/intermediates/aapt_friendly_merged_manifests/debug/processDebugManifest/aapt/output-metadata.json +0 -18
  218. package/android/build/intermediates/aar_metadata/debug/writeDebugAarMetadata/aar-metadata.properties +0 -6
  219. package/android/build/intermediates/annotation_processor_list/debug/javaPreCompileDebug/annotationProcessors.json +0 -1
  220. package/android/build/intermediates/assets/debug/mergeDebugAssets/fonts/MaterialSymbolsRounded.ttf +0 -0
  221. package/android/build/intermediates/assets/debug/mergeDebugAssets/fonts/MaterialSymbolsSharp.ttf +0 -0
  222. package/android/build/intermediates/compile_library_classes_jar/debug/bundleLibCompileToJarDebug/classes.jar +0 -0
  223. package/android/build/intermediates/compile_r_class_jar/debug/generateDebugRFile/R.jar +0 -0
  224. package/android/build/intermediates/compile_symbol_list/debug/generateDebugRFile/R.txt +0 -0
  225. package/android/build/intermediates/incremental/debug/packageDebugResources/compile-file-map.properties +0 -1
  226. package/android/build/intermediates/incremental/debug/packageDebugResources/merger.xml +0 -2
  227. package/android/build/intermediates/incremental/mergeDebugAssets/merger.xml +0 -2
  228. package/android/build/intermediates/incremental/mergeDebugJniLibFolders/merger.xml +0 -2
  229. package/android/build/intermediates/incremental/mergeDebugShaders/merger.xml +0 -2
  230. package/android/build/intermediates/java_res/debug/processDebugJavaRes/out/META-INF/react-navigation_native_debug.kotlin_module +0 -0
  231. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/facebook/fbreact/specs/NativeMaterialSymbolModuleSpec.class +0 -0
  232. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/facebook/react/viewmanagers/ReactNavigationMaterialSymbolViewManagerDelegate.class +0 -0
  233. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/facebook/react/viewmanagers/ReactNavigationMaterialSymbolViewManagerInterface.class +0 -0
  234. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/facebook/react/viewmanagers/ReactNavigationSFSymbolViewManagerDelegate.class +0 -0
  235. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/facebook/react/viewmanagers/ReactNavigationSFSymbolViewManagerInterface.class +0 -0
  236. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/org/reactnavigation/BuildConfig.class +0 -0
  237. package/android/build/intermediates/local_only_symbol_list/debug/parseDebugLocalResources/R-def.txt +0 -2
  238. package/android/build/intermediates/manifest_merge_blame_file/debug/processDebugManifest/manifest-merger-blame-debug-report.txt +0 -7
  239. package/android/build/intermediates/merged_manifest/debug/processDebugManifest/AndroidManifest.xml +0 -7
  240. package/android/build/intermediates/navigation_json/debug/extractDeepLinksDebug/navigation.json +0 -1
  241. package/android/build/intermediates/nested_resources_validation_report/debug/generateDebugResources/nestedResourcesValidationReport.txt +0 -1
  242. package/android/build/intermediates/react-navigation/fonts/MaterialSymbolsOutlined.ttf +0 -0
  243. package/android/build/intermediates/react-navigation/fonts/MaterialSymbolsRounded.ttf +0 -0
  244. package/android/build/intermediates/react-navigation/fonts/MaterialSymbolsSharp.ttf +0 -0
  245. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/META-INF/react-navigation_native_debug.kotlin_module +0 -0
  246. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/facebook/fbreact/specs/NativeMaterialSymbolModuleSpec.class +0 -0
  247. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/facebook/react/viewmanagers/ReactNavigationMaterialSymbolViewManagerDelegate.class +0 -0
  248. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/facebook/react/viewmanagers/ReactNavigationMaterialSymbolViewManagerInterface.class +0 -0
  249. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/facebook/react/viewmanagers/ReactNavigationSFSymbolViewManagerDelegate.class +0 -0
  250. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/facebook/react/viewmanagers/ReactNavigationSFSymbolViewManagerInterface.class +0 -0
  251. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/org/reactnavigation/BuildConfig.class +0 -0
  252. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/org/reactnavigation/MaterialSymbolModule$Companion.class +0 -0
  253. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/org/reactnavigation/MaterialSymbolModule$WhenMappings.class +0 -0
  254. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/org/reactnavigation/MaterialSymbolModule$getImageSource$future$1$1$1.class +0 -0
  255. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/org/reactnavigation/MaterialSymbolModule.class +0 -0
  256. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/org/reactnavigation/MaterialSymbolTypeface.class +0 -0
  257. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/org/reactnavigation/MaterialSymbolView.class +0 -0
  258. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/org/reactnavigation/MaterialSymbolViewManager$Companion.class +0 -0
  259. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/org/reactnavigation/MaterialSymbolViewManager.class +0 -0
  260. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/org/reactnavigation/ReactNavigationPackage.class +0 -0
  261. package/android/build/intermediates/runtime_library_classes_jar/debug/bundleLibRuntimeToJarDebug/classes.jar +0 -0
  262. package/android/build/intermediates/symbol_list_with_package_name/debug/generateDebugRFile/package-aware-r.txt +0 -1
  263. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab +0 -0
  264. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream +0 -0
  265. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream.len +0 -0
  266. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.len +0 -0
  267. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.values.at +0 -0
  268. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i +0 -0
  269. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i.len +0 -0
  270. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab +0 -0
  271. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream +0 -0
  272. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream.len +0 -0
  273. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.len +0 -0
  274. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.values.at +0 -0
  275. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i +0 -0
  276. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i.len +0 -0
  277. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab +0 -0
  278. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream +0 -0
  279. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream.len +0 -0
  280. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.len +0 -0
  281. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.values.at +0 -0
  282. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i +0 -0
  283. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i.len +0 -0
  284. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab +0 -0
  285. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.keystream +0 -0
  286. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.keystream.len +0 -0
  287. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.len +0 -0
  288. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.values.at +0 -0
  289. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab_i +0 -0
  290. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab_i.len +0 -0
  291. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab +0 -0
  292. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream +0 -0
  293. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream.len +0 -0
  294. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.len +0 -0
  295. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.values.at +0 -0
  296. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i +0 -0
  297. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i.len +0 -0
  298. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab +0 -0
  299. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream +0 -0
  300. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream.len +0 -0
  301. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.len +0 -0
  302. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values.at +0 -0
  303. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i +0 -0
  304. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i.len +0 -0
  305. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab +0 -0
  306. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream +0 -0
  307. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream.len +0 -0
  308. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.len +0 -0
  309. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.values.at +0 -0
  310. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i +0 -0
  311. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i.len +0 -0
  312. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab +0 -0
  313. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream +0 -0
  314. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream.len +0 -0
  315. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.len +0 -0
  316. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.values.at +0 -0
  317. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i +0 -0
  318. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i.len +0 -0
  319. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab +0 -0
  320. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream +0 -0
  321. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream.len +0 -0
  322. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.len +0 -0
  323. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.values.at +0 -0
  324. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i +0 -0
  325. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i.len +0 -0
  326. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/counters.tab +0 -2
  327. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab +0 -0
  328. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream +0 -0
  329. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream.len +0 -0
  330. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.len +0 -0
  331. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.values.at +0 -0
  332. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i +0 -0
  333. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i.len +0 -0
  334. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab +0 -0
  335. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream +0 -0
  336. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream.len +0 -0
  337. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.len +0 -0
  338. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.values.at +0 -0
  339. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i +0 -0
  340. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i.len +0 -0
  341. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab +0 -0
  342. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream +0 -0
  343. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream.len +0 -0
  344. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.len +0 -0
  345. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.values.at +0 -0
  346. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i +0 -0
  347. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i.len +0 -0
  348. package/android/build/kotlin/compileDebugKotlin/cacheable/last-build.bin +0 -0
  349. package/android/build/kotlin/compileDebugKotlin/classpath-snapshot/shrunk-classpath-snapshot.bin +0 -0
  350. package/android/build/outputs/logs/manifest-merger-debug-report.txt +0 -16
  351. package/android/build/tmp/compileDebugJavaWithJavac/previous-compilation-data.bin +0 -0
  352. package/android/build/tmp/kotlin-classes/debug/META-INF/react-navigation_native_debug.kotlin_module +0 -0
  353. package/android/build/tmp/kotlin-classes/debug/org/reactnavigation/MaterialSymbolModule$Companion.class +0 -0
  354. package/android/build/tmp/kotlin-classes/debug/org/reactnavigation/MaterialSymbolModule$WhenMappings.class +0 -0
  355. package/android/build/tmp/kotlin-classes/debug/org/reactnavigation/MaterialSymbolModule$getImageSource$future$1$1$1.class +0 -0
  356. package/android/build/tmp/kotlin-classes/debug/org/reactnavigation/MaterialSymbolModule.class +0 -0
  357. package/android/build/tmp/kotlin-classes/debug/org/reactnavigation/MaterialSymbolTypeface.class +0 -0
  358. package/android/build/tmp/kotlin-classes/debug/org/reactnavigation/MaterialSymbolView.class +0 -0
  359. package/android/build/tmp/kotlin-classes/debug/org/reactnavigation/MaterialSymbolViewManager$Companion.class +0 -0
  360. package/android/build/tmp/kotlin-classes/debug/org/reactnavigation/MaterialSymbolViewManager.class +0 -0
  361. package/android/build/tmp/kotlin-classes/debug/org/reactnavigation/ReactNavigationPackage.class +0 -0
  362. package/android/gradle.properties +0 -5
  363. package/assets/fonts/MaterialSymbolsOutlined.ttf +0 -0
  364. package/lib/module/theming/DefaultTheme.js.map +0 -1
  365. package/lib/typescript/src/theming/DefaultTheme.d.ts.map +0 -1
@@ -14,12 +14,10 @@ import type { Thenable } from './useThenable';
14
14
 
15
15
  type ResultState = ReturnType<typeof getStateFromPathDefault>;
16
16
 
17
- type Options = LinkingOptions<ParamListBase>;
18
-
19
17
  const linkingHandlers = new Set<symbol>();
20
18
 
21
- export function useLinking(
22
- ref: React.RefObject<NavigationContainerRef<ParamListBase> | null>,
19
+ export function useLinking<ParamList extends ParamListBase>(
20
+ ref: React.RefObject<NavigationContainerRef<ParamList> | null>,
23
21
  {
24
22
  enabled = true,
25
23
  prefixes = ['*'],
@@ -45,7 +43,7 @@ export function useLinking(
45
43
  },
46
44
  getStateFromPath = getStateFromPathDefault,
47
45
  getActionFromState = getActionFromStateDefault,
48
- }: Options
46
+ }: LinkingOptions<ParamListBase>
49
47
  ) {
50
48
  const independent = useNavigationIndependentTree();
51
49
 
@@ -58,28 +56,39 @@ export function useLinking(
58
56
  return undefined;
59
57
  }
60
58
 
61
- if (enabled !== false && linkingHandlers.size) {
62
- console.error(
63
- [
64
- 'Looks like you have configured linking in multiple places. This is likely an error since deep links should only be handled in one place to avoid conflicts. Make sure that:',
65
- "- You don't have multiple NavigationContainers in the app each with 'linking' enabled",
66
- '- Only a single instance of the root component is rendered',
67
- Platform.OS === 'android'
68
- ? "- You have set 'android:launchMode=singleTask' in the '<activity />' section of the 'AndroidManifest.xml' file to avoid launching multiple instances"
69
- : '',
70
- ]
71
- .join('\n')
72
- .trim()
73
- );
74
- }
75
-
76
59
  const handler = Symbol();
77
60
 
78
61
  if (enabled !== false) {
79
62
  linkingHandlers.add(handler);
80
63
  }
81
64
 
65
+ // In some cases, the effect cleanup may get called out of order
66
+ // This may result in multiple linking handlers being registered
67
+ // For example, when changing the wallpaper on Android
68
+ // Showing the error in a delay avoids false positives
69
+ const timer = setTimeout(() => {
70
+ if (
71
+ enabled !== false &&
72
+ linkingHandlers.size &&
73
+ !(linkingHandlers.size === 1 && linkingHandlers.has(handler))
74
+ ) {
75
+ console.error(
76
+ [
77
+ 'Looks like you have configured linking in multiple places. This is likely an error since deep links should only be handled in one place to avoid conflicts. Make sure that:',
78
+ "- You don't have multiple NavigationContainers in the app each with 'linking' enabled",
79
+ '- Only a single instance of the root component is rendered',
80
+ Platform.OS === 'android'
81
+ ? "- You have set 'android:launchMode=singleTask' in the '<activity />' section of the 'AndroidManifest.xml' file to avoid launching multiple instances"
82
+ : '',
83
+ ]
84
+ .join('\n')
85
+ .trim()
86
+ );
87
+ }
88
+ }, 1000);
89
+
82
90
  return () => {
91
+ clearTimeout(timer);
83
92
  linkingHandlers.delete(handler);
84
93
  };
85
94
  }, [enabled, independent]);
@@ -162,6 +171,18 @@ export function useLinking(
162
171
  const navigation = ref.current;
163
172
  const state = navigation ? getStateFromURL(url) : undefined;
164
173
 
174
+ if (navigation) {
175
+ REACT_NAVIGATION_DEVTOOLS.get(navigation)?.listeners.forEach(
176
+ (listener) => {
177
+ listener({
178
+ type: 'link',
179
+ url,
180
+ state,
181
+ });
182
+ }
183
+ );
184
+ }
185
+
165
186
  if (navigation && state) {
166
187
  const action = getActionFromStateRef.current(state, configRef.current);
167
188
 
@@ -18,15 +18,20 @@ import type { Thenable } from './useThenable';
18
18
 
19
19
  type ResultState = ReturnType<typeof getStateFromPathDefault>;
20
20
 
21
+ const getRoutesUntilIndex = (state: NavigationState) =>
22
+ state.routes.slice(0, state.index + 1);
23
+
21
24
  /**
22
25
  * Calculate total history length including both navigator history and route history
23
26
  */
24
27
  const getTotalHistoryLength = (state: NavigationState): number => {
28
+ const routes = getRoutesUntilIndex(state);
29
+
25
30
  const baseHistoryLength = state.history
26
31
  ? state.history.length
27
- : state.routes.length;
32
+ : routes.length;
28
33
 
29
- const routeHistoryLength = state.routes.reduce((acc, r) => {
34
+ const routeHistoryLength = routes.reduce((acc, r) => {
30
35
  return acc + (r.history ? r.history.length : 0);
31
36
  }, 0);
32
37
 
@@ -74,6 +79,39 @@ const findMatchingState = <T extends NavigationState>(
74
79
  return findMatchingState(aChildState, bChildState);
75
80
  };
76
81
 
82
+ /**
83
+ * Check if the state change is popping the last route or history entry.
84
+ */
85
+ const isPoppingLastEntry = (
86
+ current: NavigationState,
87
+ record: NavigationState
88
+ ): boolean => {
89
+ const currentRoute = current.routes[current.index];
90
+ const recordRoute = record.routes[record.index];
91
+ const currentRouteHistory = currentRoute.history;
92
+ const recordRouteHistory = recordRoute.history ?? [];
93
+
94
+ if (currentRouteHistory?.length) {
95
+ return (
96
+ currentRoute.key === recordRoute.key &&
97
+ currentRouteHistory.length === recordRouteHistory.length + 1
98
+ );
99
+ }
100
+
101
+ if (current.history && record.history) {
102
+ return current.history.length === record.history.length + 1;
103
+ }
104
+
105
+ const currentRoutes = getRoutesUntilIndex(current);
106
+ const recordRoutes = getRoutesUntilIndex(record);
107
+
108
+ if (currentRoutes.length === recordRoutes.length + 1) {
109
+ return recordRoutes.every((route, i) => route.key === currentRoutes[i].key);
110
+ }
111
+
112
+ return false;
113
+ };
114
+
77
115
  /**
78
116
  * Run async function in series as it's called.
79
117
  */
@@ -88,17 +126,15 @@ export const series = (cb: () => Promise<void>) => {
88
126
 
89
127
  const linkingHandlers = new Set<symbol>();
90
128
 
91
- type Options = LinkingOptions<ParamListBase>;
92
-
93
- export function useLinking(
94
- ref: React.RefObject<NavigationContainerRef<ParamListBase> | null>,
129
+ export function useLinking<ParamList extends ParamListBase>(
130
+ ref: React.RefObject<NavigationContainerRef<ParamList> | null>,
95
131
  {
96
132
  enabled = true,
97
133
  config,
98
134
  getStateFromPath = getStateFromPathDefault,
99
135
  getPathFromState = getPathFromStateDefault,
100
136
  getActionFromState = getActionFromStateDefault,
101
- }: Options
137
+ }: LinkingOptions<ParamList>
102
138
  ) {
103
139
  const independent = useNavigationIndependentTree();
104
140
 
@@ -164,7 +200,7 @@ export function useLinking(
164
200
  [ref]
165
201
  );
166
202
 
167
- const server = React.useContext(ServerContext);
203
+ const server = React.use(ServerContext);
168
204
 
169
205
  const getInitialState = React.useCallback(() => {
170
206
  let value: ResultState | undefined;
@@ -221,7 +257,27 @@ export function useLinking(
221
257
  const record = history.get(index);
222
258
 
223
259
  if (record?.path === path && record?.state) {
224
- navigation.resetRoot(record.state);
260
+ const currentState = navigation.getRootState();
261
+
262
+ const [currentFocused, recordFocused] = findMatchingState(
263
+ currentState,
264
+ record.state
265
+ );
266
+
267
+ if (
268
+ previousIndex - index === 1 &&
269
+ currentFocused &&
270
+ recordFocused &&
271
+ isPoppingLastEntry(currentFocused, recordFocused)
272
+ ) {
273
+ // If we detect that the state change is popping the last entry
274
+ // Dispatch a back action instead of resetting to the state
275
+ // This makes sure changes to history state since the entry was added don't get lost
276
+ navigation.goBack();
277
+ } else {
278
+ navigation.resetRoot(record.state);
279
+ }
280
+
225
281
  return;
226
282
  }
227
283
 
@@ -337,6 +393,7 @@ export function useLinking(
337
393
  }
338
394
 
339
395
  history.replace({ path, state });
396
+ previousIndexRef.current = history.index;
340
397
  }
341
398
  }
342
399
 
@@ -422,6 +479,8 @@ export function useLinking(
422
479
  // This would happen if the user did a reset/conditionally changed navigators
423
480
  history.replace({ path, state });
424
481
  }
482
+
483
+ previousIndexRef.current = history.index;
425
484
  };
426
485
 
427
486
  // We debounce onStateChange coz we don't want multiple state changes to be handled at one time
package/src/useLocale.tsx CHANGED
@@ -6,7 +6,7 @@ import { LocaleDirContext } from './LocaleDirContext';
6
6
  * Hook to access the text direction specified in the `NavigationContainer`.
7
7
  */
8
8
  export function useLocale() {
9
- const direction = React.useContext(LocaleDirContext);
9
+ const direction = React.use(LocaleDirContext);
10
10
 
11
11
  if (direction === undefined) {
12
12
  throw new Error(
@@ -9,7 +9,7 @@ import { LinkingContext } from './LinkingContext';
9
9
  * @returns Path for the current route.
10
10
  */
11
11
  export function useRoutePath() {
12
- const { options } = React.useContext(LinkingContext);
12
+ const { options } = React.use(LinkingContext);
13
13
  const state = useStateForPath();
14
14
 
15
15
  if (state === undefined) {
@@ -51,7 +51,7 @@ function getScrollableNode(ref: React.RefObject<ScrollableWrapper>) {
51
51
  }
52
52
 
53
53
  export function useScrollToTop(ref: React.RefObject<ScrollableWrapper>) {
54
- const navigation = React.useContext(NavigationContext);
54
+ const navigation = React.use(NavigationContext);
55
55
  const route = useRoute();
56
56
 
57
57
  if (navigation === undefined) {
@@ -1 +0,0 @@
1
- o/bundleLibRuntimeToDirDebug
@@ -1,10 +0,0 @@
1
- /**
2
- * Automatically generated file. DO NOT MODIFY
3
- */
4
- package org.reactnavigation;
5
-
6
- public final class BuildConfig {
7
- public static final boolean DEBUG = Boolean.parseBoolean("true");
8
- public static final String LIBRARY_PACKAGE_NAME = "org.reactnavigation";
9
- public static final String BUILD_TYPE = "debug";
10
- }
@@ -1,38 +0,0 @@
1
-
2
- /**
3
- * This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
4
- *
5
- * Do not edit this file as changes may cause incorrect behavior and will be lost
6
- * once the code is regenerated.
7
- *
8
- * @generated by codegen project: GenerateModuleJavaSpec.js
9
- *
10
- * @nolint
11
- */
12
-
13
- package com.facebook.fbreact.specs;
14
-
15
- import com.facebook.proguard.annotations.DoNotStrip;
16
- import com.facebook.react.bridge.ReactApplicationContext;
17
- import com.facebook.react.bridge.ReactContextBaseJavaModule;
18
- import com.facebook.react.bridge.ReactMethod;
19
- import com.facebook.react.bridge.ReadableMap;
20
- import com.facebook.react.turbomodule.core.interfaces.TurboModule;
21
- import javax.annotation.Nonnull;
22
-
23
- public abstract class NativeMaterialSymbolModuleSpec extends ReactContextBaseJavaModule implements TurboModule {
24
- public static final String NAME = "ReactNavigationMaterialSymbolModule";
25
-
26
- public NativeMaterialSymbolModuleSpec(ReactApplicationContext reactContext) {
27
- super(reactContext);
28
- }
29
-
30
- @Override
31
- public @Nonnull String getName() {
32
- return NAME;
33
- }
34
-
35
- @ReactMethod(isBlockingSynchronousMethod = true)
36
- @DoNotStrip
37
- public abstract String getImageSource(String name, String variant, double size, ReadableMap color, String hash);
38
- }
@@ -1,42 +0,0 @@
1
- /**
2
- * This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
3
- *
4
- * Do not edit this file as changes may cause incorrect behavior and will be lost
5
- * once the code is regenerated.
6
- *
7
- * @generated by codegen project: GeneratePropsJavaDelegate.js
8
- */
9
-
10
- package com.facebook.react.viewmanagers;
11
-
12
- import android.view.View;
13
- import androidx.annotation.Nullable;
14
- import com.facebook.react.bridge.ColorPropConverter;
15
- import com.facebook.react.uimanager.BaseViewManager;
16
- import com.facebook.react.uimanager.BaseViewManagerDelegate;
17
- import com.facebook.react.uimanager.LayoutShadowNode;
18
-
19
- public class ReactNavigationMaterialSymbolViewManagerDelegate<T extends View, U extends BaseViewManager<T, ? extends LayoutShadowNode> & ReactNavigationMaterialSymbolViewManagerInterface<T>> extends BaseViewManagerDelegate<T, U> {
20
- public ReactNavigationMaterialSymbolViewManagerDelegate(U viewManager) {
21
- super(viewManager);
22
- }
23
- @Override
24
- public void setProperty(T view, String propName, @Nullable Object value) {
25
- switch (propName) {
26
- case "name":
27
- mViewManager.setName(view, value == null ? null : (String) value);
28
- break;
29
- case "variant":
30
- mViewManager.setVariant(view, value == null ? null : (String) value);
31
- break;
32
- case "size":
33
- mViewManager.setSize(view, value == null ? Float.NaN : ((Double) value).floatValue());
34
- break;
35
- case "color":
36
- mViewManager.setColor(view, ColorPropConverter.getColor(value, view.getContext()));
37
- break;
38
- default:
39
- super.setProperty(view, propName, value);
40
- }
41
- }
42
- }
@@ -1,21 +0,0 @@
1
- /**
2
- * This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
3
- *
4
- * Do not edit this file as changes may cause incorrect behavior and will be lost
5
- * once the code is regenerated.
6
- *
7
- * @generated by codegen project: GeneratePropsJavaInterface.js
8
- */
9
-
10
- package com.facebook.react.viewmanagers;
11
-
12
- import android.view.View;
13
- import androidx.annotation.Nullable;
14
- import com.facebook.react.uimanager.ViewManagerWithGeneratedInterface;
15
-
16
- public interface ReactNavigationMaterialSymbolViewManagerInterface<T extends View> extends ViewManagerWithGeneratedInterface {
17
- void setName(T view, @Nullable String value);
18
- void setVariant(T view, @Nullable String value);
19
- void setSize(T view, float value);
20
- void setColor(T view, @Nullable Integer value);
21
- }
@@ -1,39 +0,0 @@
1
- /**
2
- * This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
3
- *
4
- * Do not edit this file as changes may cause incorrect behavior and will be lost
5
- * once the code is regenerated.
6
- *
7
- * @generated by codegen project: GeneratePropsJavaDelegate.js
8
- */
9
-
10
- package com.facebook.react.viewmanagers;
11
-
12
- import android.view.View;
13
- import androidx.annotation.Nullable;
14
- import com.facebook.react.bridge.ColorPropConverter;
15
- import com.facebook.react.uimanager.BaseViewManager;
16
- import com.facebook.react.uimanager.BaseViewManagerDelegate;
17
- import com.facebook.react.uimanager.LayoutShadowNode;
18
-
19
- public class ReactNavigationSFSymbolViewManagerDelegate<T extends View, U extends BaseViewManager<T, ? extends LayoutShadowNode> & ReactNavigationSFSymbolViewManagerInterface<T>> extends BaseViewManagerDelegate<T, U> {
20
- public ReactNavigationSFSymbolViewManagerDelegate(U viewManager) {
21
- super(viewManager);
22
- }
23
- @Override
24
- public void setProperty(T view, String propName, @Nullable Object value) {
25
- switch (propName) {
26
- case "name":
27
- mViewManager.setName(view, value == null ? null : (String) value);
28
- break;
29
- case "size":
30
- mViewManager.setSize(view, value == null ? Float.NaN : ((Double) value).floatValue());
31
- break;
32
- case "color":
33
- mViewManager.setColor(view, ColorPropConverter.getColor(value, view.getContext()));
34
- break;
35
- default:
36
- super.setProperty(view, propName, value);
37
- }
38
- }
39
- }
@@ -1,20 +0,0 @@
1
- /**
2
- * This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
3
- *
4
- * Do not edit this file as changes may cause incorrect behavior and will be lost
5
- * once the code is regenerated.
6
- *
7
- * @generated by codegen project: GeneratePropsJavaInterface.js
8
- */
9
-
10
- package com.facebook.react.viewmanagers;
11
-
12
- import android.view.View;
13
- import androidx.annotation.Nullable;
14
- import com.facebook.react.uimanager.ViewManagerWithGeneratedInterface;
15
-
16
- public interface ReactNavigationSFSymbolViewManagerInterface<T extends View> extends ViewManagerWithGeneratedInterface {
17
- void setName(T view, @Nullable String value);
18
- void setSize(T view, float value);
19
- void setColor(T view, @Nullable Integer value);
20
- }
@@ -1,28 +0,0 @@
1
- # Copyright (c) Meta Platforms, Inc. and affiliates.
2
- #
3
- # This source code is licensed under the MIT license found in the
4
- # LICENSE file in the root directory of this source tree.
5
-
6
- cmake_minimum_required(VERSION 3.13)
7
- set(CMAKE_VERBOSE_MAKEFILE on)
8
-
9
- file(GLOB react_codegen_SRCS CONFIGURE_DEPENDS *.cpp react/renderer/components/ReactNavigationSpec/*.cpp)
10
-
11
- add_library(
12
- react_codegen_ReactNavigationSpec
13
- OBJECT
14
- ${react_codegen_SRCS}
15
- )
16
-
17
- target_include_directories(react_codegen_ReactNavigationSpec PUBLIC . react/renderer/components/ReactNavigationSpec)
18
-
19
- target_link_libraries(
20
- react_codegen_ReactNavigationSpec
21
- fbjni
22
- jsi
23
- # We need to link different libraries based on whether we are building rncore or not, that's necessary
24
- # because we want to break a circular dependency between react_codegen_rncore and reactnative
25
- reactnative
26
- )
27
-
28
- target_compile_reactnative_options(react_codegen_ReactNavigationSpec PRIVATE)
@@ -1,32 +0,0 @@
1
-
2
- /**
3
- * This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
4
- *
5
- * Do not edit this file as changes may cause incorrect behavior and will be lost
6
- * once the code is regenerated.
7
- *
8
- * @generated by codegen project: GenerateModuleJniCpp.js
9
- */
10
-
11
- #include "ReactNavigationSpec.h"
12
-
13
- namespace facebook::react {
14
-
15
- static facebook::jsi::Value __hostFunction_NativeMaterialSymbolModuleSpecJSI_getImageSource(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
16
- static jmethodID cachedMethodId = nullptr;
17
- return static_cast<JavaTurboModule &>(turboModule).invokeJavaMethod(rt, StringKind, "getImageSource", "(Ljava/lang/String;Ljava/lang/String;DLcom/facebook/react/bridge/ReadableMap;Ljava/lang/String;)Ljava/lang/String;", args, count, cachedMethodId);
18
- }
19
-
20
- NativeMaterialSymbolModuleSpecJSI::NativeMaterialSymbolModuleSpecJSI(const JavaTurboModule::InitParams &params)
21
- : JavaTurboModule(params) {
22
- methodMap_["getImageSource"] = MethodMetadata {5, __hostFunction_NativeMaterialSymbolModuleSpecJSI_getImageSource};
23
- }
24
-
25
- std::shared_ptr<TurboModule> ReactNavigationSpec_ModuleProvider(const std::string &moduleName, const JavaTurboModule::InitParams &params) {
26
- if (moduleName == "ReactNavigationMaterialSymbolModule") {
27
- return std::make_shared<NativeMaterialSymbolModuleSpecJSI>(params);
28
- }
29
- return nullptr;
30
- }
31
-
32
- } // namespace facebook::react
@@ -1,31 +0,0 @@
1
-
2
- /**
3
- * This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
4
- *
5
- * Do not edit this file as changes may cause incorrect behavior and will be lost
6
- * once the code is regenerated.
7
- *
8
- * @generated by codegen project: GenerateModuleJniH.js
9
- */
10
-
11
- #pragma once
12
-
13
- #include <ReactCommon/JavaTurboModule.h>
14
- #include <ReactCommon/TurboModule.h>
15
- #include <jsi/jsi.h>
16
-
17
- namespace facebook::react {
18
-
19
- /**
20
- * JNI C++ class for module 'NativeMaterialSymbolModule'
21
- */
22
- class JSI_EXPORT NativeMaterialSymbolModuleSpecJSI : public JavaTurboModule {
23
- public:
24
- NativeMaterialSymbolModuleSpecJSI(const JavaTurboModule::InitParams &params);
25
- };
26
-
27
-
28
- JSI_EXPORT
29
- std::shared_ptr<TurboModule> ReactNavigationSpec_ModuleProvider(const std::string &moduleName, const JavaTurboModule::InitParams &params);
30
-
31
- } // namespace facebook::react
@@ -1,23 +0,0 @@
1
-
2
- /**
3
- * This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
4
- *
5
- * Do not edit this file as changes may cause incorrect behavior and will be lost
6
- * once the code is regenerated.
7
- *
8
- * @generated by codegen project: GenerateComponentDescriptorCpp.js
9
- */
10
-
11
- #include <react/renderer/components/ReactNavigationSpec/ComponentDescriptors.h>
12
- #include <react/renderer/core/ConcreteComponentDescriptor.h>
13
- #include <react/renderer/componentregistry/ComponentDescriptorProviderRegistry.h>
14
-
15
- namespace facebook::react {
16
-
17
- void ReactNavigationSpec_registerComponentDescriptorsFromCodegen(
18
- std::shared_ptr<const ComponentDescriptorProviderRegistry> registry) {
19
- registry->add(concreteComponentDescriptorProvider<ReactNavigationMaterialSymbolViewComponentDescriptor>());
20
- registry->add(concreteComponentDescriptorProvider<ReactNavigationSFSymbolViewComponentDescriptor>());
21
- }
22
-
23
- } // namespace facebook::react
@@ -1,25 +0,0 @@
1
-
2
- /**
3
- * This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
4
- *
5
- * Do not edit this file as changes may cause incorrect behavior and will be lost
6
- * once the code is regenerated.
7
- *
8
- * @generated by codegen project: GenerateComponentDescriptorH.js
9
- */
10
-
11
- #pragma once
12
-
13
- #include <react/renderer/components/ReactNavigationSpec/ShadowNodes.h>
14
- #include <react/renderer/core/ConcreteComponentDescriptor.h>
15
- #include <react/renderer/componentregistry/ComponentDescriptorProviderRegistry.h>
16
-
17
- namespace facebook::react {
18
-
19
- using ReactNavigationMaterialSymbolViewComponentDescriptor = ConcreteComponentDescriptor<ReactNavigationMaterialSymbolViewShadowNode>;
20
- using ReactNavigationSFSymbolViewComponentDescriptor = ConcreteComponentDescriptor<ReactNavigationSFSymbolViewShadowNode>;
21
-
22
- void ReactNavigationSpec_registerComponentDescriptorsFromCodegen(
23
- std::shared_ptr<const ComponentDescriptorProviderRegistry> registry);
24
-
25
- } // namespace facebook::react
@@ -1,17 +0,0 @@
1
-
2
- /**
3
- * This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
4
- *
5
- * Do not edit this file as changes may cause incorrect behavior and will be lost
6
- * once the code is regenerated.
7
- *
8
- * @generated by codegen project: GenerateEventEmitterCpp.js
9
- */
10
-
11
- #include <react/renderer/components/ReactNavigationSpec/EventEmitters.h>
12
-
13
-
14
- namespace facebook::react {
15
-
16
-
17
- } // namespace facebook::react