expo-router 7.0.0-canary-20260114-d8e19f5 → 7.0.0-canary-20260119-70f7c28

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 (239) hide show
  1. package/android/build.gradle +2 -2
  2. package/build/ExpoRoot.d.ts.map +1 -1
  3. package/build/ExpoRoot.js +2 -0
  4. package/build/ExpoRoot.js.map +1 -1
  5. package/build/global.d.ts +29 -0
  6. package/build/global.d.ts.map +1 -0
  7. package/build/global.js +3 -0
  8. package/build/global.js.map +1 -0
  9. package/build/index.d.ts +1 -0
  10. package/build/index.d.ts.map +1 -1
  11. package/build/index.js +1 -0
  12. package/build/index.js.map +1 -1
  13. package/build/layouts/Stack.d.ts.map +1 -1
  14. package/build/layouts/Stack.js +3 -0
  15. package/build/layouts/Stack.js.map +1 -1
  16. package/build/layouts/Stack.web.js +1 -0
  17. package/build/layouts/Stack.web.js.map +1 -1
  18. package/build/layouts/StackClient.d.ts +13 -14
  19. package/build/layouts/StackClient.d.ts.map +1 -1
  20. package/build/layouts/StackClient.js +3 -2
  21. package/build/layouts/StackClient.js.map +1 -1
  22. package/build/layouts/stack-utils/StackHeaderComponent.d.ts +12 -23
  23. package/build/layouts/stack-utils/StackHeaderComponent.d.ts.map +1 -1
  24. package/build/layouts/stack-utils/StackHeaderComponent.js +15 -55
  25. package/build/layouts/stack-utils/StackHeaderComponent.js.map +1 -1
  26. package/build/layouts/stack-utils/StackScreen.d.ts +5 -0
  27. package/build/layouts/stack-utils/StackScreen.d.ts.map +1 -1
  28. package/build/layouts/stack-utils/StackScreen.js +34 -7
  29. package/build/layouts/stack-utils/StackScreen.js.map +1 -1
  30. package/build/layouts/stack-utils/StackSearchBar.d.ts +28 -0
  31. package/build/layouts/stack-utils/StackSearchBar.d.ts.map +1 -1
  32. package/build/layouts/stack-utils/StackSearchBar.js +29 -0
  33. package/build/layouts/stack-utils/StackSearchBar.js.map +1 -1
  34. package/build/layouts/stack-utils/common-primitives.d.ts +6 -6
  35. package/build/layouts/stack-utils/common-primitives.d.ts.map +1 -1
  36. package/build/layouts/stack-utils/common-primitives.js +4 -4
  37. package/build/layouts/stack-utils/common-primitives.js.map +1 -1
  38. package/build/layouts/stack-utils/index.d.ts +4 -23
  39. package/build/layouts/stack-utils/index.d.ts.map +1 -1
  40. package/build/layouts/stack-utils/index.js +18 -35
  41. package/build/layouts/stack-utils/index.js.map +1 -1
  42. package/build/layouts/stack-utils/screen/StackScreenBackButton.d.ts +68 -0
  43. package/build/layouts/stack-utils/screen/StackScreenBackButton.d.ts.map +1 -0
  44. package/build/layouts/stack-utils/screen/StackScreenBackButton.js +58 -0
  45. package/build/layouts/stack-utils/screen/StackScreenBackButton.js.map +1 -0
  46. package/build/layouts/stack-utils/screen/StackScreenTitle.d.ts +58 -0
  47. package/build/layouts/stack-utils/screen/StackScreenTitle.d.ts.map +1 -0
  48. package/build/layouts/stack-utils/screen/StackScreenTitle.js +75 -0
  49. package/build/layouts/stack-utils/screen/StackScreenTitle.js.map +1 -0
  50. package/build/layouts/stack-utils/screen/index.d.ts +3 -0
  51. package/build/layouts/stack-utils/screen/index.d.ts.map +1 -0
  52. package/build/layouts/stack-utils/screen/index.js +10 -0
  53. package/build/layouts/stack-utils/screen/index.js.map +1 -0
  54. package/build/layouts/stack-utils/shared.js +3 -3
  55. package/build/layouts/stack-utils/shared.js.map +1 -1
  56. package/build/layouts/stack-utils/toolbar/StackToolbar.d.ts +3 -0
  57. package/build/layouts/stack-utils/toolbar/StackToolbar.d.ts.map +1 -0
  58. package/build/layouts/stack-utils/toolbar/StackToolbar.js +24 -0
  59. package/build/layouts/stack-utils/toolbar/StackToolbar.js.map +1 -0
  60. package/build/layouts/stack-utils/toolbar/StackToolbarButton.d.ts +144 -0
  61. package/build/layouts/stack-utils/toolbar/StackToolbarButton.d.ts.map +1 -0
  62. package/build/layouts/stack-utils/toolbar/StackToolbarButton.js +68 -0
  63. package/build/layouts/stack-utils/toolbar/StackToolbarButton.js.map +1 -0
  64. package/build/layouts/stack-utils/toolbar/StackToolbarClient.d.ts +104 -0
  65. package/build/layouts/stack-utils/toolbar/StackToolbarClient.d.ts.map +1 -0
  66. package/build/layouts/stack-utils/toolbar/StackToolbarClient.js +214 -0
  67. package/build/layouts/stack-utils/toolbar/StackToolbarClient.js.map +1 -0
  68. package/build/layouts/stack-utils/{StackHeaderMenu.d.ts → toolbar/StackToolbarMenu.d.ts} +58 -106
  69. package/build/layouts/stack-utils/toolbar/StackToolbarMenu.d.ts.map +1 -0
  70. package/build/layouts/stack-utils/toolbar/StackToolbarMenu.js +190 -0
  71. package/build/layouts/stack-utils/toolbar/StackToolbarMenu.js.map +1 -0
  72. package/build/layouts/stack-utils/toolbar/StackToolbarSearchBarSlot.d.ts +48 -0
  73. package/build/layouts/stack-utils/toolbar/StackToolbarSearchBarSlot.d.ts.map +1 -0
  74. package/build/layouts/stack-utils/toolbar/StackToolbarSearchBarSlot.js +44 -0
  75. package/build/layouts/stack-utils/toolbar/StackToolbarSearchBarSlot.js.map +1 -0
  76. package/build/layouts/stack-utils/toolbar/StackToolbarSpacer.d.ts +80 -0
  77. package/build/layouts/stack-utils/toolbar/StackToolbarSpacer.d.ts.map +1 -0
  78. package/build/layouts/stack-utils/toolbar/StackToolbarSpacer.js +77 -0
  79. package/build/layouts/stack-utils/toolbar/StackToolbarSpacer.js.map +1 -0
  80. package/build/layouts/stack-utils/{StackHeaderView.d.ts → toolbar/StackToolbarView.d.ts} +21 -17
  81. package/build/layouts/stack-utils/toolbar/StackToolbarView.d.ts.map +1 -0
  82. package/build/layouts/stack-utils/toolbar/StackToolbarView.js +61 -0
  83. package/build/layouts/stack-utils/toolbar/StackToolbarView.js.map +1 -0
  84. package/build/layouts/stack-utils/toolbar/bottom-toolbar-native-elements.d.ts +93 -0
  85. package/build/layouts/stack-utils/toolbar/bottom-toolbar-native-elements.d.ts.map +1 -0
  86. package/build/layouts/stack-utils/toolbar/bottom-toolbar-native-elements.js +89 -0
  87. package/build/layouts/stack-utils/toolbar/bottom-toolbar-native-elements.js.map +1 -0
  88. package/build/layouts/stack-utils/toolbar/context.d.ts +9 -0
  89. package/build/layouts/stack-utils/toolbar/context.d.ts.map +1 -0
  90. package/build/layouts/stack-utils/toolbar/context.js +16 -0
  91. package/build/layouts/stack-utils/toolbar/context.js.map +1 -0
  92. package/build/layouts/stack-utils/toolbar/index.d.ts +10 -0
  93. package/build/layouts/stack-utils/toolbar/index.d.ts.map +1 -0
  94. package/build/layouts/stack-utils/toolbar/index.js +23 -0
  95. package/build/layouts/stack-utils/toolbar/index.js.map +1 -0
  96. package/build/link/LinkWithPreview.d.ts.map +1 -1
  97. package/build/link/LinkWithPreview.js +8 -5
  98. package/build/link/LinkWithPreview.js.map +1 -1
  99. package/build/link/NativeMenuContext.d.ts +5 -0
  100. package/build/link/NativeMenuContext.d.ts.map +1 -0
  101. package/build/link/NativeMenuContext.js +9 -0
  102. package/build/link/NativeMenuContext.js.map +1 -0
  103. package/build/link/elements.d.ts +41 -0
  104. package/build/link/elements.d.ts.map +1 -1
  105. package/build/link/elements.js +3 -2
  106. package/build/link/elements.js.map +1 -1
  107. package/build/link/preview/native.d.ts +2 -0
  108. package/build/link/preview/native.d.ts.map +1 -1
  109. package/build/link/preview/native.js +3 -1
  110. package/build/link/preview/native.js.map +1 -1
  111. package/build/native-tabs/NativeBottomTabsNavigator.d.ts +1 -1
  112. package/build/native-tabs/NativeBottomTabsNavigator.d.ts.map +1 -1
  113. package/build/native-tabs/NativeBottomTabsNavigator.js +2 -1
  114. package/build/native-tabs/NativeBottomTabsNavigator.js.map +1 -1
  115. package/build/native-tabs/NativeTabTrigger.d.ts.map +1 -1
  116. package/build/native-tabs/NativeTabTrigger.js +6 -4
  117. package/build/native-tabs/NativeTabTrigger.js.map +1 -1
  118. package/build/native-tabs/NativeTabsView.d.ts.map +1 -1
  119. package/build/native-tabs/NativeTabsView.js +0 -3
  120. package/build/native-tabs/NativeTabsView.js.map +1 -1
  121. package/build/native-tabs/common/elements.d.ts +10 -0
  122. package/build/native-tabs/common/elements.d.ts.map +1 -1
  123. package/build/native-tabs/common/elements.js.map +1 -1
  124. package/build/native-tabs/types.d.ts +6 -0
  125. package/build/native-tabs/types.d.ts.map +1 -1
  126. package/build/native-tabs/types.js.map +1 -1
  127. package/build/native-tabs/utils/icon.d.ts +2 -0
  128. package/build/native-tabs/utils/icon.d.ts.map +1 -1
  129. package/build/native-tabs/utils/icon.js +3 -0
  130. package/build/native-tabs/utils/icon.js.map +1 -1
  131. package/build/navigationEvents/index.d.ts +7 -24
  132. package/build/navigationEvents/index.d.ts.map +1 -1
  133. package/build/navigationEvents/index.js +47 -12
  134. package/build/navigationEvents/index.js.map +1 -1
  135. package/build/navigationEvents/types.d.ts +23 -0
  136. package/build/navigationEvents/types.d.ts.map +1 -0
  137. package/build/navigationEvents/types.js +3 -0
  138. package/build/navigationEvents/types.js.map +1 -0
  139. package/build/navigationEvents/utils.d.ts +9 -0
  140. package/build/navigationEvents/utils.d.ts.map +1 -0
  141. package/build/navigationEvents/utils.js +25 -0
  142. package/build/navigationEvents/utils.js.map +1 -0
  143. package/build/primitives/types.d.ts +6 -6
  144. package/build/primitives/types.d.ts.map +1 -1
  145. package/build/primitives/types.js.map +1 -1
  146. package/build/screensFeatureFlags.d.ts +2 -0
  147. package/build/screensFeatureFlags.d.ts.map +1 -0
  148. package/build/screensFeatureFlags.js +20 -0
  149. package/build/screensFeatureFlags.js.map +1 -0
  150. package/build/toolbar/native.types.d.ts +0 -14
  151. package/build/toolbar/native.types.d.ts.map +1 -1
  152. package/build/toolbar/native.types.js.map +1 -1
  153. package/build/ui/TabRouter.d.ts +14 -2
  154. package/build/ui/TabRouter.d.ts.map +1 -1
  155. package/build/ui/TabRouter.js +34 -4
  156. package/build/ui/TabRouter.js.map +1 -1
  157. package/build/useScreens.d.ts.map +1 -1
  158. package/build/useScreens.js +30 -15
  159. package/build/useScreens.js.map +1 -1
  160. package/expo-module.config.json +1 -1
  161. package/ios/LinkPreview/LinkPreviewNativeActionView.swift +18 -2
  162. package/ios/LinkPreview/LinkPreviewNativeModule.swift +3 -0
  163. package/ios/LinkPreview/LinkPreviewNativeNavigation.swift +2 -2
  164. package/ios/LinkPreview/LinkZoomTransition.swift +2 -2
  165. package/ios/Toolbar/RouterToolbarHostView.swift +68 -43
  166. package/ios/Toolbar/RouterToolbarItemView.swift +89 -21
  167. package/local-maven-repo/expo/modules/router/expo.modules.router/{7.0.0-canary-20260114-d8e19f5/expo.modules.router-7.0.0-canary-20260114-d8e19f5.module → 7.0.0-canary-20260119-70f7c28/expo.modules.router-7.0.0-canary-20260119-70f7c28.module} +7 -7
  168. package/local-maven-repo/expo/modules/router/expo.modules.router/7.0.0-canary-20260119-70f7c28/expo.modules.router-7.0.0-canary-20260119-70f7c28.module.md5 +1 -0
  169. package/local-maven-repo/expo/modules/router/expo.modules.router/7.0.0-canary-20260119-70f7c28/expo.modules.router-7.0.0-canary-20260119-70f7c28.module.sha1 +1 -0
  170. package/local-maven-repo/expo/modules/router/expo.modules.router/7.0.0-canary-20260119-70f7c28/expo.modules.router-7.0.0-canary-20260119-70f7c28.module.sha256 +1 -0
  171. package/local-maven-repo/expo/modules/router/expo.modules.router/7.0.0-canary-20260119-70f7c28/expo.modules.router-7.0.0-canary-20260119-70f7c28.module.sha512 +1 -0
  172. package/local-maven-repo/expo/modules/router/expo.modules.router/{7.0.0-canary-20260114-d8e19f5/expo.modules.router-7.0.0-canary-20260114-d8e19f5.pom → 7.0.0-canary-20260119-70f7c28/expo.modules.router-7.0.0-canary-20260119-70f7c28.pom} +1 -1
  173. package/local-maven-repo/expo/modules/router/expo.modules.router/7.0.0-canary-20260119-70f7c28/expo.modules.router-7.0.0-canary-20260119-70f7c28.pom.md5 +1 -0
  174. package/local-maven-repo/expo/modules/router/expo.modules.router/7.0.0-canary-20260119-70f7c28/expo.modules.router-7.0.0-canary-20260119-70f7c28.pom.sha1 +1 -0
  175. package/local-maven-repo/expo/modules/router/expo.modules.router/7.0.0-canary-20260119-70f7c28/expo.modules.router-7.0.0-canary-20260119-70f7c28.pom.sha256 +1 -0
  176. package/local-maven-repo/expo/modules/router/expo.modules.router/7.0.0-canary-20260119-70f7c28/expo.modules.router-7.0.0-canary-20260119-70f7c28.pom.sha512 +1 -0
  177. package/local-maven-repo/expo/modules/router/expo.modules.router/maven-metadata.xml +4 -4
  178. package/local-maven-repo/expo/modules/router/expo.modules.router/maven-metadata.xml.md5 +1 -1
  179. package/local-maven-repo/expo/modules/router/expo.modules.router/maven-metadata.xml.sha1 +1 -1
  180. package/local-maven-repo/expo/modules/router/expo.modules.router/maven-metadata.xml.sha256 +1 -1
  181. package/local-maven-repo/expo/modules/router/expo.modules.router/maven-metadata.xml.sha512 +1 -1
  182. package/package.json +11 -13
  183. package/plugin/build/index.js +1 -1
  184. package/plugin/options.json +5 -0
  185. package/plugin/src/index.ts +1 -1
  186. package/build/layouts/stack-utils/StackHeaderBackButton.d.ts +0 -14
  187. package/build/layouts/stack-utils/StackHeaderBackButton.d.ts.map +0 -1
  188. package/build/layouts/stack-utils/StackHeaderBackButton.js +0 -19
  189. package/build/layouts/stack-utils/StackHeaderBackButton.js.map +0 -1
  190. package/build/layouts/stack-utils/StackHeaderButton.d.ts +0 -114
  191. package/build/layouts/stack-utils/StackHeaderButton.d.ts.map +0 -1
  192. package/build/layouts/stack-utils/StackHeaderButton.js +0 -49
  193. package/build/layouts/stack-utils/StackHeaderButton.js.map +0 -1
  194. package/build/layouts/stack-utils/StackHeaderLeftRight.d.ts +0 -119
  195. package/build/layouts/stack-utils/StackHeaderLeftRight.d.ts.map +0 -1
  196. package/build/layouts/stack-utils/StackHeaderLeftRight.js +0 -206
  197. package/build/layouts/stack-utils/StackHeaderLeftRight.js.map +0 -1
  198. package/build/layouts/stack-utils/StackHeaderMenu.d.ts.map +0 -1
  199. package/build/layouts/stack-utils/StackHeaderMenu.js +0 -214
  200. package/build/layouts/stack-utils/StackHeaderMenu.js.map +0 -1
  201. package/build/layouts/stack-utils/StackHeaderSpacer.d.ts +0 -46
  202. package/build/layouts/stack-utils/StackHeaderSpacer.d.ts.map +0 -1
  203. package/build/layouts/stack-utils/StackHeaderSpacer.js +0 -44
  204. package/build/layouts/stack-utils/StackHeaderSpacer.js.map +0 -1
  205. package/build/layouts/stack-utils/StackHeaderTitle.d.ts +0 -22
  206. package/build/layouts/stack-utils/StackHeaderTitle.d.ts.map +0 -1
  207. package/build/layouts/stack-utils/StackHeaderTitle.js +0 -36
  208. package/build/layouts/stack-utils/StackHeaderTitle.js.map +0 -1
  209. package/build/layouts/stack-utils/StackHeaderView.d.ts.map +0 -1
  210. package/build/layouts/stack-utils/StackHeaderView.js +0 -56
  211. package/build/layouts/stack-utils/StackHeaderView.js.map +0 -1
  212. package/build/toolbar/elements.d.ts +0 -417
  213. package/build/toolbar/elements.d.ts.map +0 -1
  214. package/build/toolbar/elements.js +0 -188
  215. package/build/toolbar/elements.js.map +0 -1
  216. package/build/toolbar/index.d.ts +0 -42
  217. package/build/toolbar/index.d.ts.map +0 -1
  218. package/build/toolbar/index.js +0 -49
  219. package/build/toolbar/index.js.map +0 -1
  220. package/local-maven-repo/expo/modules/router/expo.modules.router/7.0.0-canary-20260114-d8e19f5/expo.modules.router-7.0.0-canary-20260114-d8e19f5.module.md5 +0 -1
  221. package/local-maven-repo/expo/modules/router/expo.modules.router/7.0.0-canary-20260114-d8e19f5/expo.modules.router-7.0.0-canary-20260114-d8e19f5.module.sha1 +0 -1
  222. package/local-maven-repo/expo/modules/router/expo.modules.router/7.0.0-canary-20260114-d8e19f5/expo.modules.router-7.0.0-canary-20260114-d8e19f5.module.sha256 +0 -1
  223. package/local-maven-repo/expo/modules/router/expo.modules.router/7.0.0-canary-20260114-d8e19f5/expo.modules.router-7.0.0-canary-20260114-d8e19f5.module.sha512 +0 -1
  224. package/local-maven-repo/expo/modules/router/expo.modules.router/7.0.0-canary-20260114-d8e19f5/expo.modules.router-7.0.0-canary-20260114-d8e19f5.pom.md5 +0 -1
  225. package/local-maven-repo/expo/modules/router/expo.modules.router/7.0.0-canary-20260114-d8e19f5/expo.modules.router-7.0.0-canary-20260114-d8e19f5.pom.sha1 +0 -1
  226. package/local-maven-repo/expo/modules/router/expo.modules.router/7.0.0-canary-20260114-d8e19f5/expo.modules.router-7.0.0-canary-20260114-d8e19f5.pom.sha256 +0 -1
  227. package/local-maven-repo/expo/modules/router/expo.modules.router/7.0.0-canary-20260114-d8e19f5/expo.modules.router-7.0.0-canary-20260114-d8e19f5.pom.sha512 +0 -1
  228. package/unstable-toolbar.d.ts +0 -1
  229. package/unstable-toolbar.js +0 -1
  230. /package/local-maven-repo/expo/modules/router/expo.modules.router/{7.0.0-canary-20260114-d8e19f5/expo.modules.router-7.0.0-canary-20260114-d8e19f5-sources.jar → 7.0.0-canary-20260119-70f7c28/expo.modules.router-7.0.0-canary-20260119-70f7c28-sources.jar} +0 -0
  231. /package/local-maven-repo/expo/modules/router/expo.modules.router/{7.0.0-canary-20260114-d8e19f5/expo.modules.router-7.0.0-canary-20260114-d8e19f5-sources.jar.md5 → 7.0.0-canary-20260119-70f7c28/expo.modules.router-7.0.0-canary-20260119-70f7c28-sources.jar.md5} +0 -0
  232. /package/local-maven-repo/expo/modules/router/expo.modules.router/{7.0.0-canary-20260114-d8e19f5/expo.modules.router-7.0.0-canary-20260114-d8e19f5-sources.jar.sha1 → 7.0.0-canary-20260119-70f7c28/expo.modules.router-7.0.0-canary-20260119-70f7c28-sources.jar.sha1} +0 -0
  233. /package/local-maven-repo/expo/modules/router/expo.modules.router/{7.0.0-canary-20260114-d8e19f5/expo.modules.router-7.0.0-canary-20260114-d8e19f5-sources.jar.sha256 → 7.0.0-canary-20260119-70f7c28/expo.modules.router-7.0.0-canary-20260119-70f7c28-sources.jar.sha256} +0 -0
  234. /package/local-maven-repo/expo/modules/router/expo.modules.router/{7.0.0-canary-20260114-d8e19f5/expo.modules.router-7.0.0-canary-20260114-d8e19f5-sources.jar.sha512 → 7.0.0-canary-20260119-70f7c28/expo.modules.router-7.0.0-canary-20260119-70f7c28-sources.jar.sha512} +0 -0
  235. /package/local-maven-repo/expo/modules/router/expo.modules.router/{7.0.0-canary-20260114-d8e19f5/expo.modules.router-7.0.0-canary-20260114-d8e19f5.aar → 7.0.0-canary-20260119-70f7c28/expo.modules.router-7.0.0-canary-20260119-70f7c28.aar} +0 -0
  236. /package/local-maven-repo/expo/modules/router/expo.modules.router/{7.0.0-canary-20260114-d8e19f5/expo.modules.router-7.0.0-canary-20260114-d8e19f5.aar.md5 → 7.0.0-canary-20260119-70f7c28/expo.modules.router-7.0.0-canary-20260119-70f7c28.aar.md5} +0 -0
  237. /package/local-maven-repo/expo/modules/router/expo.modules.router/{7.0.0-canary-20260114-d8e19f5/expo.modules.router-7.0.0-canary-20260114-d8e19f5.aar.sha1 → 7.0.0-canary-20260119-70f7c28/expo.modules.router-7.0.0-canary-20260119-70f7c28.aar.sha1} +0 -0
  238. /package/local-maven-repo/expo/modules/router/expo.modules.router/{7.0.0-canary-20260114-d8e19f5/expo.modules.router-7.0.0-canary-20260114-d8e19f5.aar.sha256 → 7.0.0-canary-20260119-70f7c28/expo.modules.router-7.0.0-canary-20260119-70f7c28.aar.sha256} +0 -0
  239. /package/local-maven-repo/expo/modules/router/expo.modules.router/{7.0.0-canary-20260114-d8e19f5/expo.modules.router-7.0.0-canary-20260114-d8e19f5.aar.sha512 → 7.0.0-canary-20260119-70f7c28/expo.modules.router-7.0.0-canary-20260119-70f7c28.aar.sha512} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"icon.js","sourceRoot":"","sources":["../../../src/native-tabs/utils/icon.ts"],"names":[],"mappings":"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","sourcesContent":["import { useEffect, useMemo, useState } from 'react';\nimport type { ColorValue, ImageSourcePropType } from 'react-native';\nimport type {\n BottomTabsScreenProps,\n PlatformIconAndroid,\n PlatformIconIOS,\n} from 'react-native-screens';\nimport type { SFSymbol } from 'sf-symbols-typescript';\n\nimport { isChildOfType } from '../../utils/children';\nimport { NativeTabsTriggerPromiseIcon, NativeTabsTriggerVectorIcon } from '../common/elements';\nimport type { NativeTabOptions, NativeTabsProps } from '../types';\n\nexport function convertIconColorPropToObject(iconColor: NativeTabsProps['iconColor']): {\n default?: ColorValue;\n selected?: ColorValue;\n} {\n if (iconColor) {\n if (typeof iconColor === 'object' && ('default' in iconColor || 'selected' in iconColor)) {\n return iconColor;\n }\n return {\n default: iconColor as ColorValue,\n };\n }\n return {};\n}\n\ntype AwaitedIcon =\n | {\n sf?: SFSymbol;\n drawable?: string;\n }\n | {\n src?: ImageSourcePropType;\n };\n\nexport function useAwaitedScreensIcon(icon: NativeTabOptions['icon']) {\n const src = icon && typeof icon === 'object' && 'src' in icon ? icon.src : undefined;\n const [awaitedIcon, setAwaitedIcon] = useState<AwaitedIcon | undefined>(undefined);\n\n useEffect(() => {\n const loadIcon = async () => {\n if (src && src instanceof Promise) {\n const awaitedSrc = await src;\n if (awaitedSrc) {\n const currentAwaitedIcon = { src: awaitedSrc };\n setAwaitedIcon(currentAwaitedIcon);\n }\n }\n };\n loadIcon();\n // Checking `src` rather then icon here, to avoid unnecessary re-renders\n // The icon object can be recreated, while src should stay the same\n // In this case as we control `VectorIcon`, it will only change if `family` or `name` props change\n // So we should be safe with promise resolving\n }, [src]);\n\n return useMemo(() => (isAwaitedIcon(icon) ? icon : awaitedIcon), [awaitedIcon, icon]);\n}\n\nfunction isAwaitedIcon(icon: NativeTabOptions['icon']): icon is AwaitedIcon {\n return !icon || !('src' in icon && icon.src instanceof Promise);\n}\n\nexport function convertOptionsIconToRNScreensPropsIcon(\n icon: AwaitedIcon | undefined\n): BottomTabsScreenProps['icon'] {\n if (!icon) {\n return undefined;\n }\n return {\n ios: convertOptionsIconToIOSPropsIcon(icon),\n android: convertOptionsIconToAndroidPropsIcon(icon),\n };\n}\n\nexport function convertOptionsIconToIOSPropsIcon(\n icon: AwaitedIcon | undefined\n): PlatformIconIOS | undefined {\n if (icon && 'sf' in icon && icon.sf) {\n return {\n type: 'sfSymbol',\n name: icon.sf,\n };\n }\n if (icon && 'src' in icon && icon.src) {\n return { type: 'templateSource', templateSource: icon.src };\n }\n return undefined;\n}\n\nexport function convertOptionsIconToAndroidPropsIcon(\n icon: AwaitedIcon\n): PlatformIconAndroid | undefined {\n if (icon && 'drawable' in icon && icon.drawable) {\n return {\n type: 'drawableResource',\n name: icon.drawable,\n };\n }\n if (icon && 'src' in icon && icon.src) {\n return { type: 'imageSource', imageSource: icon.src };\n }\n return undefined;\n}\n\nexport function convertComponentSrcToImageSource(src: React.ReactElement) {\n if (isChildOfType(src, NativeTabsTriggerVectorIcon)) {\n const props = src.props;\n return { src: props.family.getImageSource(props.name, 24, 'white') };\n } else if (isChildOfType(src, NativeTabsTriggerPromiseIcon)) {\n return { src: src.props.loader() };\n } else {\n console.warn('Only VectorIcon is supported as a React element in Icon.src');\n }\n return undefined;\n}\n"]}
1
+ {"version":3,"file":"icon.js","sourceRoot":"","sources":["../../../src/native-tabs/utils/icon.ts"],"names":[],"mappings":"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","sourcesContent":["import { useEffect, useMemo, useState } from 'react';\nimport type { ColorValue, ImageSourcePropType } from 'react-native';\nimport type {\n BottomTabsScreenProps,\n PlatformIconAndroid,\n PlatformIconIOS,\n} from 'react-native-screens';\nimport type { SFSymbol } from 'sf-symbols-typescript';\n\nimport { isChildOfType } from '../../utils/children';\nimport { NativeTabsTriggerPromiseIcon, NativeTabsTriggerVectorIcon } from '../common/elements';\nimport type { NativeTabOptions, NativeTabsProps } from '../types';\n\nexport function convertIconColorPropToObject(iconColor: NativeTabsProps['iconColor']): {\n default?: ColorValue;\n selected?: ColorValue;\n} {\n if (iconColor) {\n if (typeof iconColor === 'object' && ('default' in iconColor || 'selected' in iconColor)) {\n return iconColor;\n }\n return {\n default: iconColor as ColorValue,\n };\n }\n return {};\n}\n\ntype AwaitedIcon =\n | {\n sf?: SFSymbol;\n drawable?: string;\n }\n | {\n src?: ImageSourcePropType;\n renderingMode?: 'template' | 'original';\n };\n\nexport function useAwaitedScreensIcon(icon: NativeTabOptions['icon']) {\n const src = icon && typeof icon === 'object' && 'src' in icon ? icon.src : undefined;\n const [awaitedIcon, setAwaitedIcon] = useState<AwaitedIcon | undefined>(undefined);\n\n useEffect(() => {\n const loadIcon = async () => {\n if (src && src instanceof Promise) {\n const awaitedSrc = await src;\n if (awaitedSrc) {\n const currentAwaitedIcon = { src: awaitedSrc };\n setAwaitedIcon(currentAwaitedIcon);\n }\n }\n };\n loadIcon();\n // Checking `src` rather then icon here, to avoid unnecessary re-renders\n // The icon object can be recreated, while src should stay the same\n // In this case as we control `VectorIcon`, it will only change if `family` or `name` props change\n // So we should be safe with promise resolving\n }, [src]);\n\n return useMemo(() => (isAwaitedIcon(icon) ? icon : awaitedIcon), [awaitedIcon, icon]);\n}\n\nfunction isAwaitedIcon(icon: NativeTabOptions['icon']): icon is AwaitedIcon {\n return !icon || !('src' in icon && icon.src instanceof Promise);\n}\n\nexport function convertOptionsIconToRNScreensPropsIcon(\n icon: AwaitedIcon | undefined\n): BottomTabsScreenProps['icon'] {\n if (!icon) {\n return undefined;\n }\n return {\n ios: convertOptionsIconToIOSPropsIcon(icon),\n android: convertOptionsIconToAndroidPropsIcon(icon),\n };\n}\n\nexport function convertOptionsIconToIOSPropsIcon(\n icon: AwaitedIcon | undefined\n): PlatformIconIOS | undefined {\n if (icon && 'sf' in icon && icon.sf) {\n return {\n type: 'sfSymbol',\n name: icon.sf,\n };\n }\n if (icon && 'src' in icon && icon.src) {\n if (icon.renderingMode === 'original') {\n return { type: 'imageSource', imageSource: icon.src };\n }\n return { type: 'templateSource', templateSource: icon.src };\n }\n return undefined;\n}\n\nexport function convertOptionsIconToAndroidPropsIcon(\n icon: AwaitedIcon\n): PlatformIconAndroid | undefined {\n if (icon && 'drawable' in icon && icon.drawable) {\n return {\n type: 'drawableResource',\n name: icon.drawable,\n };\n }\n if (icon && 'src' in icon && icon.src) {\n return { type: 'imageSource', imageSource: icon.src };\n }\n return undefined;\n}\n\nexport function convertComponentSrcToImageSource(src: React.ReactElement) {\n if (isChildOfType(src, NativeTabsTriggerVectorIcon)) {\n const props = src.props;\n return { src: props.family.getImageSource(props.name, 24, 'white') };\n } else if (isChildOfType(src, NativeTabsTriggerPromiseIcon)) {\n return { src: src.props.loader() };\n } else {\n console.warn('Only VectorIcon is supported as a React element in Icon.src');\n }\n return undefined;\n}\n"]}
@@ -1,24 +1,5 @@
1
- interface BasePageEvent {
2
- pathname: string;
3
- screenId: string;
4
- }
5
- /**
6
- * The rendering of the page started
7
- *
8
- * This can happen if screen is to be focused for the first time or when the screen is preloaded
9
- */
10
- export interface PageWillRender extends BasePageEvent {
11
- type: 'pageWillRender';
12
- }
13
- export interface PageFocusedEvent extends BasePageEvent {
14
- type: 'pageFocused';
15
- }
16
- export interface PageBlurredEvent extends BasePageEvent {
17
- type: 'pageBlurred';
18
- }
19
- export interface PageRemoved extends BasePageEvent {
20
- type: 'pageRemoved';
21
- }
1
+ import { PageWillRender, PageFocusedEvent, PageBlurredEvent, PageRemoved } from './types';
2
+ export { PageWillRender, PageFocusedEvent, PageBlurredEvent, PageRemoved };
22
3
  export type AnalyticsEvent = PageWillRender | PageFocusedEvent | PageBlurredEvent | PageRemoved;
23
4
  type EventTypeName = AnalyticsEvent['type'];
24
5
  type Payload<T extends EventTypeName> = Omit<Extract<AnalyticsEvent, {
@@ -29,8 +10,10 @@ export declare function emit<EventType extends EventTypeName>(type: EventType, e
29
10
  export declare const unstable_navigationEvents: {
30
11
  addListener: typeof addListener;
31
12
  emit: typeof emit;
32
- hasAnyListener(): boolean;
33
- markInitialRender(): void;
13
+ enable: () => void;
14
+ isEnabled: () => boolean;
15
+ saveCurrentPathname: () => void;
16
+ readonly currentPathname: string | undefined;
17
+ readonly currentParams: Record<string, string> | undefined;
34
18
  };
35
- export {};
36
19
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/navigationEvents/index.ts"],"names":[],"mappings":"AAAA,UAAU,aAAa;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;GAIG;AACH,MAAM,WAAW,cAAe,SAAQ,aAAa;IACnD,IAAI,EAAE,gBAAgB,CAAC;CACxB;AAED,MAAM,WAAW,gBAAiB,SAAQ,aAAa;IACrD,IAAI,EAAE,aAAa,CAAC;CACrB;AAED,MAAM,WAAW,gBAAiB,SAAQ,aAAa;IACrD,IAAI,EAAE,aAAa,CAAC;CACrB;AAED,MAAM,WAAW,WAAY,SAAQ,aAAa;IAChD,IAAI,EAAE,aAAa,CAAC;CACrB;AAED,MAAM,MAAM,cAAc,GAAG,cAAc,GAAG,gBAAgB,GAAG,gBAAgB,GAAG,WAAW,CAAC;AAYhG,KAAK,aAAa,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;AAC5C,KAAK,OAAO,CAAC,CAAC,SAAS,aAAa,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE;IAAE,IAAI,EAAE,CAAC,CAAA;CAAE,CAAC,EAAE,MAAM,CAAC,CAAC;AAM3F,iBAAS,WAAW,CAAC,SAAS,SAAS,aAAa,EAClD,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,SAAS,CAAC,KAAK,IAAI,cAuB9C;AAED,wBAAgB,IAAI,CAAC,SAAS,SAAS,aAAa,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,SAAS,CAAC,QAO/F;AAED,eAAO,MAAM,yBAAyB;;;;;CASrC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/navigationEvents/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE1F,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,WAAW,EAAE,CAAC;AAE3E,MAAM,MAAM,cAAc,GAAG,cAAc,GAAG,gBAAgB,GAAG,gBAAgB,GAAG,WAAW,CAAC;AAShG,KAAK,aAAa,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;AAC5C,KAAK,OAAO,CAAC,CAAC,SAAS,aAAa,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE;IAAE,IAAI,EAAE,CAAC,CAAA;CAAE,CAAC,EAAE,MAAM,CAAC,CAAC;AAM3F,iBAAS,WAAW,CAAC,SAAS,SAAS,aAAa,EAClD,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,SAAS,CAAC,KAAK,IAAI,cAe9C;AAED,wBAAgB,IAAI,CAAC,SAAS,SAAS,aAAa,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,SAAS,CAAC,QAO/F;AAQD,eAAO,MAAM,yBAAyB;;;;;;;;CAsBrC,CAAC"}
@@ -8,18 +8,11 @@ const availableEvents = [
8
8
  'pageBlurred',
9
9
  'pageRemoved',
10
10
  ];
11
- let isAfterInitialRender = false;
12
- let hasListener = false;
13
11
  const subscribers = {};
14
12
  function addListener(eventType, callback) {
15
- if (isAfterInitialRender) {
16
- console.warn('[expo-router] unstable_analytics.addListener was called after the initial render. Analytics listeners should be added in the global scope before first render of your app, preferably in a root _layout.tsx');
17
- return () => { };
18
- }
19
13
  if (!availableEvents.includes(eventType)) {
20
14
  throw new Error(`Unsupported event type: ${eventType}`);
21
15
  }
22
- hasListener = true;
23
16
  if (!subscribers[eventType]) {
24
17
  subscribers[eventType] = new Set();
25
18
  }
@@ -29,7 +22,6 @@ function addListener(eventType, callback) {
29
22
  if (subscribers[eventType].size === 0) {
30
23
  delete subscribers[eventType];
31
24
  }
32
- hasListener = Object.keys(subscribers).length > 0;
33
25
  };
34
26
  }
35
27
  function emit(type, event) {
@@ -40,14 +32,57 @@ function emit(type, event) {
40
32
  }
41
33
  }
42
34
  }
35
+ let enabled = false;
36
+ let currentPathname = undefined;
37
+ let currentParams = undefined;
38
+ let currentPathnameListener = undefined;
43
39
  exports.unstable_navigationEvents = {
44
40
  addListener,
45
41
  emit,
46
- hasAnyListener() {
47
- return hasListener;
42
+ enable: () => {
43
+ enabled = true;
44
+ },
45
+ isEnabled: () => {
46
+ return enabled;
47
+ },
48
+ saveCurrentPathname: () => {
49
+ if (!enabled || currentPathnameListener)
50
+ return;
51
+ currentPathnameListener = addListener('pageFocused', (event) => {
52
+ currentPathname = event.pathname;
53
+ currentParams = event.params;
54
+ });
48
55
  },
49
- markInitialRender() {
50
- isAfterInitialRender = true;
56
+ get currentPathname() {
57
+ return currentPathname;
58
+ },
59
+ get currentParams() {
60
+ return currentParams;
51
61
  },
52
62
  };
63
+ if (globalThis.expo) {
64
+ globalThis.expo.router = globalThis.expo.router || {};
65
+ if (!('navigationEvents' in globalThis.expo.router)) {
66
+ Object.defineProperties(globalThis.expo.router, {
67
+ navigationEvents: {
68
+ get() {
69
+ return exports.unstable_navigationEvents;
70
+ },
71
+ enumerable: true,
72
+ },
73
+ currentPathname: {
74
+ get() {
75
+ return currentPathname;
76
+ },
77
+ enumerable: true,
78
+ },
79
+ currentParams: {
80
+ get() {
81
+ return currentParams;
82
+ },
83
+ enumerable: true,
84
+ },
85
+ });
86
+ }
87
+ }
53
88
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/navigationEvents/index.ts"],"names":[],"mappings":";;;AAwEA,oBAOC;AAnDD,MAAM,eAAe,GAA6B;IAChD,gBAAgB;IAChB,aAAa;IACb,aAAa;IACb,aAAa;CACd,CAAC;AAEF,IAAI,oBAAoB,GAAG,KAAK,CAAC;AACjC,IAAI,WAAW,GAAG,KAAK,CAAC;AAKxB,MAAM,WAAW,GAEb,EAAE,CAAC;AAEP,SAAS,WAAW,CAClB,SAAoB,EACpB,QAA6C;IAE7C,IAAI,oBAAoB,EAAE,CAAC;QACzB,OAAO,CAAC,IAAI,CACV,6MAA6M,CAC9M,CAAC;QACF,OAAO,GAAG,EAAE,GAAE,CAAC,CAAC;IAClB,CAAC;IACD,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACzC,MAAM,IAAI,KAAK,CAAC,2BAA2B,SAAS,EAAE,CAAC,CAAC;IAC1D,CAAC;IACD,WAAW,GAAG,IAAI,CAAC;IACnB,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC;QAC5B,WAAW,CAAC,SAAS,CAAC,GAAG,IAAI,GAAG,EAAqC,CAAC;IACxE,CAAC;IACD,WAAW,CAAC,SAAS,CAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACtC,OAAO,GAAG,EAAE;QACV,WAAW,CAAC,SAAS,CAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACzC,IAAI,WAAW,CAAC,SAAS,CAAE,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YACvC,OAAO,WAAW,CAAC,SAAS,CAAC,CAAC;QAChC,CAAC;QACD,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IACpD,CAAC,CAAC;AACJ,CAAC;AAED,SAAgB,IAAI,CAAkC,IAAe,EAAE,KAAyB;IAC9F,MAAM,mBAAmB,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAC9C,IAAI,mBAAmB,EAAE,CAAC;QACxB,KAAK,MAAM,QAAQ,IAAI,mBAAmB,EAAE,CAAC;YAC3C,QAAQ,CAAC,KAAK,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;AACH,CAAC;AAEY,QAAA,yBAAyB,GAAG;IACvC,WAAW;IACX,IAAI;IACJ,cAAc;QACZ,OAAO,WAAW,CAAC;IACrB,CAAC;IACD,iBAAiB;QACf,oBAAoB,GAAG,IAAI,CAAC;IAC9B,CAAC;CACF,CAAC","sourcesContent":["interface BasePageEvent {\n pathname: string;\n screenId: string;\n}\n\n/**\n * The rendering of the page started\n *\n * This can happen if screen is to be focused for the first time or when the screen is preloaded\n */\nexport interface PageWillRender extends BasePageEvent {\n type: 'pageWillRender';\n}\n\nexport interface PageFocusedEvent extends BasePageEvent {\n type: 'pageFocused';\n}\n\nexport interface PageBlurredEvent extends BasePageEvent {\n type: 'pageBlurred';\n}\n\nexport interface PageRemoved extends BasePageEvent {\n type: 'pageRemoved';\n}\n\nexport type AnalyticsEvent = PageWillRender | PageFocusedEvent | PageBlurredEvent | PageRemoved;\n\nconst availableEvents: AnalyticsEvent['type'][] = [\n 'pageWillRender',\n 'pageFocused',\n 'pageBlurred',\n 'pageRemoved',\n];\n\nlet isAfterInitialRender = false;\nlet hasListener = false;\n\ntype EventTypeName = AnalyticsEvent['type'];\ntype Payload<T extends EventTypeName> = Omit<Extract<AnalyticsEvent, { type: T }>, 'type'>;\n\nconst subscribers: {\n [K in EventTypeName]?: Set<(event: Payload<K>) => void>;\n} = {};\n\nfunction addListener<EventType extends EventTypeName>(\n eventType: EventType,\n callback: (event: Payload<EventType>) => void\n) {\n if (isAfterInitialRender) {\n console.warn(\n '[expo-router] unstable_analytics.addListener was called after the initial render. Analytics listeners should be added in the global scope before first render of your app, preferably in a root _layout.tsx'\n );\n return () => {};\n }\n if (!availableEvents.includes(eventType)) {\n throw new Error(`Unsupported event type: ${eventType}`);\n }\n hasListener = true;\n if (!subscribers[eventType]) {\n subscribers[eventType] = new Set() as (typeof subscribers)[EventType];\n }\n subscribers[eventType]!.add(callback);\n return () => {\n subscribers[eventType]!.delete(callback);\n if (subscribers[eventType]!.size === 0) {\n delete subscribers[eventType];\n }\n hasListener = Object.keys(subscribers).length > 0;\n };\n}\n\nexport function emit<EventType extends EventTypeName>(type: EventType, event: Payload<EventType>) {\n const subscribersForEvent = subscribers[type];\n if (subscribersForEvent) {\n for (const callback of subscribersForEvent) {\n callback(event);\n }\n }\n}\n\nexport const unstable_navigationEvents = {\n addListener,\n emit,\n hasAnyListener() {\n return hasListener;\n },\n markInitialRender() {\n isAfterInitialRender = true;\n },\n};\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/navigationEvents/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { PageWillRender, PageFocusedEvent, PageBlurredEvent, PageRemoved } from './types';\n\nexport { PageWillRender, PageFocusedEvent, PageBlurredEvent, PageRemoved };\n\nexport type AnalyticsEvent = PageWillRender | PageFocusedEvent | PageBlurredEvent | PageRemoved;\n\nconst availableEvents: AnalyticsEvent['type'][] = [\n 'pageWillRender',\n 'pageFocused',\n 'pageBlurred',\n 'pageRemoved',\n];\n\ntype EventTypeName = AnalyticsEvent['type'];\ntype Payload<T extends EventTypeName> = Omit<Extract<AnalyticsEvent, { type: T }>, 'type'>;\n\nconst subscribers: {\n [K in EventTypeName]?: Set<(event: Payload<K>) => void>;\n} = {};\n\nfunction addListener<EventType extends EventTypeName>(\n eventType: EventType,\n callback: (event: Payload<EventType>) => void\n) {\n if (!availableEvents.includes(eventType)) {\n throw new Error(`Unsupported event type: ${eventType}`);\n }\n if (!subscribers[eventType]) {\n subscribers[eventType] = new Set() as (typeof subscribers)[EventType];\n }\n subscribers[eventType]!.add(callback);\n return () => {\n subscribers[eventType]!.delete(callback);\n if (subscribers[eventType]!.size === 0) {\n delete subscribers[eventType];\n }\n };\n}\n\nexport function emit<EventType extends EventTypeName>(type: EventType, event: Payload<EventType>) {\n const subscribersForEvent = subscribers[type];\n if (subscribersForEvent) {\n for (const callback of subscribersForEvent) {\n callback(event);\n }\n }\n}\n\nlet enabled = false;\n\nlet currentPathname: string | undefined = undefined;\nlet currentParams: Record<string, string> | undefined = undefined;\nlet currentPathnameListener: ReturnType<typeof addListener> | undefined = undefined;\n\nexport const unstable_navigationEvents = {\n addListener,\n emit,\n enable: () => {\n enabled = true;\n },\n isEnabled: () => {\n return enabled;\n },\n saveCurrentPathname: () => {\n if (!enabled || currentPathnameListener) return;\n currentPathnameListener = addListener('pageFocused', (event) => {\n currentPathname = event.pathname;\n currentParams = event.params;\n });\n },\n get currentPathname() {\n return currentPathname;\n },\n get currentParams() {\n return currentParams;\n },\n};\n\nif (globalThis.expo) {\n globalThis.expo.router = globalThis.expo.router || {};\n\n if (!('navigationEvents' in globalThis.expo.router)) {\n Object.defineProperties(globalThis.expo.router, {\n navigationEvents: {\n get() {\n return unstable_navigationEvents;\n },\n enumerable: true,\n },\n currentPathname: {\n get() {\n return currentPathname;\n },\n enumerable: true,\n },\n currentParams: {\n get() {\n return currentParams;\n },\n enumerable: true,\n },\n });\n }\n}\n"]}
@@ -0,0 +1,23 @@
1
+ export interface BasePageEvent {
2
+ pathname: string;
3
+ params: Record<string, string>;
4
+ screenId: string;
5
+ }
6
+ /**
7
+ * The rendering of the page started
8
+ *
9
+ * This can happen if screen is to be focused for the first time or when the screen is preloaded
10
+ */
11
+ export interface PageWillRender extends BasePageEvent {
12
+ type: 'pageWillRender';
13
+ }
14
+ export interface PageFocusedEvent extends BasePageEvent {
15
+ type: 'pageFocused';
16
+ }
17
+ export interface PageBlurredEvent extends BasePageEvent {
18
+ type: 'pageBlurred';
19
+ }
20
+ export interface PageRemoved extends BasePageEvent {
21
+ type: 'pageRemoved';
22
+ }
23
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/navigationEvents/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;GAIG;AACH,MAAM,WAAW,cAAe,SAAQ,aAAa;IACnD,IAAI,EAAE,gBAAgB,CAAC;CACxB;AAED,MAAM,WAAW,gBAAiB,SAAQ,aAAa;IACrD,IAAI,EAAE,aAAa,CAAC;CACrB;AAED,MAAM,WAAW,gBAAiB,SAAQ,aAAa;IACrD,IAAI,EAAE,aAAa,CAAC;CACrB;AAED,MAAM,WAAW,WAAY,SAAQ,aAAa;IAChD,IAAI,EAAE,aAAa,CAAC;CACrB"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/navigationEvents/types.ts"],"names":[],"mappings":"","sourcesContent":["export interface BasePageEvent {\n pathname: string;\n params: Record<string, string>;\n screenId: string;\n}\n\n/**\n * The rendering of the page started\n *\n * This can happen if screen is to be focused for the first time or when the screen is preloaded\n */\nexport interface PageWillRender extends BasePageEvent {\n type: 'pageWillRender';\n}\n\nexport interface PageFocusedEvent extends BasePageEvent {\n type: 'pageFocused';\n}\n\nexport interface PageBlurredEvent extends BasePageEvent {\n type: 'pageBlurred';\n}\n\nexport interface PageRemoved extends BasePageEvent {\n type: 'pageRemoved';\n}\n"]}
@@ -0,0 +1,9 @@
1
+ import { type State } from '../fork/getPathFromState';
2
+ export declare function generateStringUrlForState(state: State | undefined): string | undefined;
3
+ export declare function getPathAndParamsFromStringUrl(urlString: string): {
4
+ pathname: string;
5
+ params: {
6
+ [k: string]: string;
7
+ };
8
+ };
9
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/navigationEvents/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,KAAK,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAG5E,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,KAAK,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAYtF;AAED,wBAAgB,6BAA6B,CAAC,SAAS,EAAE,MAAM;;;;;EAM9D"}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generateStringUrlForState = generateStringUrlForState;
4
+ exports.getPathAndParamsFromStringUrl = getPathAndParamsFromStringUrl;
5
+ const getPathFromState_1 = require("../fork/getPathFromState");
6
+ const url_1 = require("../utils/url");
7
+ function generateStringUrlForState(state) {
8
+ if (!state) {
9
+ return undefined;
10
+ }
11
+ const { path: rawPath, params: nonPathParams } = (0, getPathFromState_1.getPathDataFromState)(state);
12
+ const url = (0, url_1.parseUrlUsingCustomBase)(rawPath);
13
+ for (const [key, value] of Object.entries(nonPathParams)) {
14
+ url.searchParams.append(key, value);
15
+ }
16
+ return `${decodeURIComponent(url.pathname)}${url.search}`;
17
+ }
18
+ function getPathAndParamsFromStringUrl(urlString) {
19
+ const url = (0, url_1.parseUrlUsingCustomBase)(urlString);
20
+ return {
21
+ pathname: url.pathname,
22
+ params: Object.fromEntries(url.searchParams.entries()),
23
+ };
24
+ }
25
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/navigationEvents/utils.ts"],"names":[],"mappings":";;AAGA,8DAYC;AAED,sEAMC;AAvBD,+DAA4E;AAC5E,sCAAuD;AAEvD,SAAgB,yBAAyB,CAAC,KAAwB;IAChE,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,GAAG,IAAA,uCAAoB,EAAC,KAAK,CAAC,CAAC;IAC7E,MAAM,GAAG,GAAG,IAAA,6BAAuB,EAAC,OAAO,CAAC,CAAC;IAE7C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;QACzD,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACtC,CAAC;IAED,OAAO,GAAG,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC;AAC5D,CAAC;AAED,SAAgB,6BAA6B,CAAC,SAAiB;IAC7D,MAAM,GAAG,GAAG,IAAA,6BAAuB,EAAC,SAAS,CAAC,CAAC;IAC/C,OAAO;QACL,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;KACvD,CAAC;AACJ,CAAC","sourcesContent":["import { getPathDataFromState, type State } from '../fork/getPathFromState';\nimport { parseUrlUsingCustomBase } from '../utils/url';\n\nexport function generateStringUrlForState(state: State | undefined): string | undefined {\n if (!state) {\n return undefined;\n }\n const { path: rawPath, params: nonPathParams } = getPathDataFromState(state);\n const url = parseUrlUsingCustomBase(rawPath);\n\n for (const [key, value] of Object.entries(nonPathParams)) {\n url.searchParams.append(key, value);\n }\n\n return `${decodeURIComponent(url.pathname)}${url.search}`;\n}\n\nexport function getPathAndParamsFromStringUrl(urlString: string) {\n const url = parseUrlUsingCustomBase(urlString);\n return {\n pathname: url.pathname,\n params: Object.fromEntries(url.searchParams.entries()),\n };\n}\n"]}
@@ -1,9 +1,9 @@
1
1
  import type { ColorValue, ImageSourcePropType } from 'react-native';
2
- import type { StackHeaderBadgeProps, StackHeaderIconProps, StackHeaderLabelProps, StackHeaderMenuActionProps, StackHeaderMenuProps } from '../layouts/stack-utils';
2
+ import type { StackToolbarBadgeProps, StackToolbarIconProps, StackToolbarLabelProps, StackToolbarMenuActionProps, StackToolbarMenuProps } from '../layouts/stack-utils';
3
3
  import type { LinkMenuActionProps, LinkMenuProps } from '../link/elements';
4
4
  import type { NativeTabsTriggerBadgeProps, NativeTabsTriggerIconProps, NativeTabsTriggerLabelProps } from '../native-tabs';
5
- export type BadgeProps = NativeTabsTriggerBadgeProps | StackHeaderBadgeProps;
6
- export type IconProps = NativeTabsTriggerIconProps | StackHeaderIconProps;
5
+ export type BadgeProps = NativeTabsTriggerBadgeProps | StackToolbarBadgeProps;
6
+ export type IconProps = NativeTabsTriggerIconProps | StackToolbarIconProps;
7
7
  export interface VectorIconProps<NameT extends string> {
8
8
  /**
9
9
  * The family of the vector icon.
@@ -21,7 +21,7 @@ export interface VectorIconProps<NameT extends string> {
21
21
  */
22
22
  name: NameT;
23
23
  }
24
- export type LabelProps = NativeTabsTriggerLabelProps | StackHeaderLabelProps;
25
- export type MenuActionProps = LinkMenuActionProps | StackHeaderMenuActionProps;
26
- export type MenuProps = LinkMenuProps | StackHeaderMenuProps;
24
+ export type LabelProps = NativeTabsTriggerLabelProps | StackToolbarLabelProps;
25
+ export type MenuActionProps = LinkMenuActionProps | StackToolbarMenuActionProps;
26
+ export type MenuProps = LinkMenuProps | StackToolbarMenuProps;
27
27
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/primitives/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAEpE,OAAO,KAAK,EACV,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,0BAA0B,EAC1B,oBAAoB,EACrB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAC3E,OAAO,KAAK,EACV,2BAA2B,EAC3B,0BAA0B,EAC1B,2BAA2B,EAC5B,MAAM,gBAAgB,CAAC;AAExB,MAAM,MAAM,UAAU,GAAG,2BAA2B,GAAG,qBAAqB,CAAC;AAE7E,MAAM,MAAM,SAAS,GAAG,0BAA0B,GAAG,oBAAoB,CAAC;AAE1E,MAAM,WAAW,eAAe,CAAC,KAAK,SAAS,MAAM;IACnD;;;;;;;OAOG;IACH,MAAM,EAAE;QACN,cAAc,EAAE,CACd,IAAI,EAAE,KAAK,EACX,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,UAAU,KACd,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAAC;KAC1C,CAAC;IACF;;OAEG;IACH,IAAI,EAAE,KAAK,CAAC;CACb;AAED,MAAM,MAAM,UAAU,GAAG,2BAA2B,GAAG,qBAAqB,CAAC;AAE7E,MAAM,MAAM,eAAe,GAAG,mBAAmB,GAAG,0BAA0B,CAAC;AAE/E,MAAM,MAAM,SAAS,GAAG,aAAa,GAAG,oBAAoB,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/primitives/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAEpE,OAAO,KAAK,EACV,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,EACtB,2BAA2B,EAC3B,qBAAqB,EACtB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAC3E,OAAO,KAAK,EACV,2BAA2B,EAC3B,0BAA0B,EAC1B,2BAA2B,EAC5B,MAAM,gBAAgB,CAAC;AAExB,MAAM,MAAM,UAAU,GAAG,2BAA2B,GAAG,sBAAsB,CAAC;AAE9E,MAAM,MAAM,SAAS,GAAG,0BAA0B,GAAG,qBAAqB,CAAC;AAE3E,MAAM,WAAW,eAAe,CAAC,KAAK,SAAS,MAAM;IACnD;;;;;;;OAOG;IACH,MAAM,EAAE;QACN,cAAc,EAAE,CACd,IAAI,EAAE,KAAK,EACX,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,UAAU,KACd,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAAC;KAC1C,CAAC;IACF;;OAEG;IACH,IAAI,EAAE,KAAK,CAAC;CACb;AAED,MAAM,MAAM,UAAU,GAAG,2BAA2B,GAAG,sBAAsB,CAAC;AAE9E,MAAM,MAAM,eAAe,GAAG,mBAAmB,GAAG,2BAA2B,CAAC;AAEhF,MAAM,MAAM,SAAS,GAAG,aAAa,GAAG,qBAAqB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/primitives/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { ColorValue, ImageSourcePropType } from 'react-native';\n\nimport type {\n StackHeaderBadgeProps,\n StackHeaderIconProps,\n StackHeaderLabelProps,\n StackHeaderMenuActionProps,\n StackHeaderMenuProps,\n} from '../layouts/stack-utils';\nimport type { LinkMenuActionProps, LinkMenuProps } from '../link/elements';\nimport type {\n NativeTabsTriggerBadgeProps,\n NativeTabsTriggerIconProps,\n NativeTabsTriggerLabelProps,\n} from '../native-tabs';\n\nexport type BadgeProps = NativeTabsTriggerBadgeProps | StackHeaderBadgeProps;\n\nexport type IconProps = NativeTabsTriggerIconProps | StackHeaderIconProps;\n\nexport interface VectorIconProps<NameT extends string> {\n /**\n * The family of the vector icon.\n *\n * @example\n * ```tsx\n * import MaterialCommunityIcons from '@expo/vector-icons/MaterialCommunityIcons';\n * ```\n */\n family: {\n getImageSource: (\n name: NameT,\n size: number,\n color: ColorValue\n ) => Promise<ImageSourcePropType | null>;\n };\n /**\n * The name of the vector icon.\n */\n name: NameT;\n}\n\nexport type LabelProps = NativeTabsTriggerLabelProps | StackHeaderLabelProps;\n\nexport type MenuActionProps = LinkMenuActionProps | StackHeaderMenuActionProps;\n\nexport type MenuProps = LinkMenuProps | StackHeaderMenuProps;\n"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/primitives/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { ColorValue, ImageSourcePropType } from 'react-native';\n\nimport type {\n StackToolbarBadgeProps,\n StackToolbarIconProps,\n StackToolbarLabelProps,\n StackToolbarMenuActionProps,\n StackToolbarMenuProps,\n} from '../layouts/stack-utils';\nimport type { LinkMenuActionProps, LinkMenuProps } from '../link/elements';\nimport type {\n NativeTabsTriggerBadgeProps,\n NativeTabsTriggerIconProps,\n NativeTabsTriggerLabelProps,\n} from '../native-tabs';\n\nexport type BadgeProps = NativeTabsTriggerBadgeProps | StackToolbarBadgeProps;\n\nexport type IconProps = NativeTabsTriggerIconProps | StackToolbarIconProps;\n\nexport interface VectorIconProps<NameT extends string> {\n /**\n * The family of the vector icon.\n *\n * @example\n * ```tsx\n * import MaterialCommunityIcons from '@expo/vector-icons/MaterialCommunityIcons';\n * ```\n */\n family: {\n getImageSource: (\n name: NameT,\n size: number,\n color: ColorValue\n ) => Promise<ImageSourcePropType | null>;\n };\n /**\n * The name of the vector icon.\n */\n name: NameT;\n}\n\nexport type LabelProps = NativeTabsTriggerLabelProps | StackToolbarLabelProps;\n\nexport type MenuActionProps = LinkMenuActionProps | StackToolbarMenuActionProps;\n\nexport type MenuProps = LinkMenuProps | StackToolbarMenuProps;\n"]}
@@ -0,0 +1,2 @@
1
+ export declare function initScreensFeatureFlags(): void;
2
+ //# sourceMappingURL=screensFeatureFlags.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"screensFeatureFlags.d.ts","sourceRoot":"","sources":["../src/screensFeatureFlags.ts"],"names":[],"mappings":"AAQA,wBAAgB,uBAAuB,SAQtC"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.initScreensFeatureFlags = initScreensFeatureFlags;
7
+ const expo_constants_1 = __importDefault(require("expo-constants"));
8
+ const react_native_screens_1 = require("react-native-screens");
9
+ const areSynchronousUpdatesDisabled = !!expo_constants_1.default.expoConfig?.extra?.router?.disableSynchronousScreensUpdates;
10
+ let hasInitialized = false;
11
+ function initScreensFeatureFlags() {
12
+ if (!hasInitialized) {
13
+ hasInitialized = true;
14
+ react_native_screens_1.featureFlags.experiment.synchronousScreenUpdatesEnabled = !areSynchronousUpdatesDisabled;
15
+ react_native_screens_1.featureFlags.experiment.synchronousHeaderConfigUpdatesEnabled = !areSynchronousUpdatesDisabled;
16
+ react_native_screens_1.featureFlags.experiment.synchronousHeaderSubviewUpdatesEnabled = !areSynchronousUpdatesDisabled;
17
+ react_native_screens_1.featureFlags.experiment.controlledBottomTabs = process.env.EXPO_OS !== 'ios';
18
+ }
19
+ }
20
+ //# sourceMappingURL=screensFeatureFlags.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"screensFeatureFlags.js","sourceRoot":"","sources":["../src/screensFeatureFlags.ts"],"names":[],"mappings":";;;;;AAQA,0DAQC;AAhBD,oEAAuC;AACvC,+DAAoD;AAEpD,MAAM,6BAA6B,GACjC,CAAC,CAAC,wBAAS,CAAC,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,gCAAgC,CAAC;AAE1E,IAAI,cAAc,GAAG,KAAK,CAAC;AAE3B,SAAgB,uBAAuB;IACrC,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,cAAc,GAAG,IAAI,CAAC;QACtB,mCAAY,CAAC,UAAU,CAAC,+BAA+B,GAAG,CAAC,6BAA6B,CAAC;QACzF,mCAAY,CAAC,UAAU,CAAC,qCAAqC,GAAG,CAAC,6BAA6B,CAAC;QAC/F,mCAAY,CAAC,UAAU,CAAC,sCAAsC,GAAG,CAAC,6BAA6B,CAAC;QAChG,mCAAY,CAAC,UAAU,CAAC,oBAAoB,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,KAAK,CAAC;IAC/E,CAAC;AACH,CAAC","sourcesContent":["import Constants from 'expo-constants';\nimport { featureFlags } from 'react-native-screens';\n\nconst areSynchronousUpdatesDisabled =\n !!Constants.expoConfig?.extra?.router?.disableSynchronousScreensUpdates;\n\nlet hasInitialized = false;\n\nexport function initScreensFeatureFlags() {\n if (!hasInitialized) {\n hasInitialized = true;\n featureFlags.experiment.synchronousScreenUpdatesEnabled = !areSynchronousUpdatesDisabled;\n featureFlags.experiment.synchronousHeaderConfigUpdatesEnabled = !areSynchronousUpdatesDisabled;\n featureFlags.experiment.synchronousHeaderSubviewUpdatesEnabled = !areSynchronousUpdatesDisabled;\n featureFlags.experiment.controlledBottomTabs = process.env.EXPO_OS !== 'ios';\n }\n}\n"]}
@@ -10,20 +10,6 @@ export interface RouterToolbarItemProps {
10
10
  identifier: string;
11
11
  title?: string;
12
12
  systemImageName?: SFSymbol;
13
- /**
14
- * Custom image loaded using expo-image's `useImage` hook.
15
- * Takes priority over `systemImageName` when both are provided.
16
- *
17
- * @example
18
- * ```tsx
19
- * const customIcon = useImage('https://example.com/icon.png', {
20
- * maxWidth: 44,
21
- * maxHeight: 44,
22
- * });
23
- *
24
- * <Toolbar.Item image={customIcon} title="Custom" />
25
- * ```
26
- */
27
13
  image?: ImageRef | null;
28
14
  type?: 'normal' | 'fixedSpacer' | 'fluidSpacer' | 'searchBar';
29
15
  tintColor?: ColorValue;
@@ -1 +1 @@
1
- {"version":3,"file":"native.types.d.ts","sourceRoot":"","sources":["../../src/toolbar/native.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpD,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,QAAQ,CAAC;IAC3B;;;;;;;;;;;;;OAaG;IACH,KAAK,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;IACxB,IAAI,CAAC,EAAE,QAAQ,GAAG,aAAa,GAAG,aAAa,GAAG,WAAW,CAAC;IAC9D,SAAS,CAAC,EAAE,UAAU,CAAC;IACvB,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,kBAAkB,CAAC,EAAE,OAAO,GAAG,WAAW,CAAC;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAE1B,kBAAkB,CAAC,EAAE;QACnB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,eAAe,CAAC,EAAE,UAAU,CAAC;KAC9B,GAAG,cAAc,CAAC;IACnB,UAAU,CAAC,EAAE,cAAc,CAAC;IAC5B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;CACzB"}
1
+ {"version":3,"file":"native.types.d.ts","sourceRoot":"","sources":["../../src/toolbar/native.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpD,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,QAAQ,CAAC;IAC3B,KAAK,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;IACxB,IAAI,CAAC,EAAE,QAAQ,GAAG,aAAa,GAAG,aAAa,GAAG,WAAW,CAAC;IAC9D,SAAS,CAAC,EAAE,UAAU,CAAC;IACvB,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,kBAAkB,CAAC,EAAE,OAAO,GAAG,WAAW,CAAC;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAE1B,kBAAkB,CAAC,EAAE;QACnB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,eAAe,CAAC,EAAE,UAAU,CAAC;KAC9B,GAAG,cAAc,CAAC;IACnB,UAAU,CAAC,EAAE,cAAc,CAAC;IAC5B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;CACzB"}
@@ -1 +1 @@
1
- {"version":3,"file":"native.types.js","sourceRoot":"","sources":["../../src/toolbar/native.types.ts"],"names":[],"mappings":"","sourcesContent":["import type { ImageRef } from 'expo-image';\nimport type { ColorValue } from 'react-native';\nimport type { SFSymbol } from 'sf-symbols-typescript';\n\nimport type { BasicTextStyle } from '../utils/font';\n\nexport interface RouterToolbarHostProps {\n children?: React.ReactNode;\n}\n\nexport interface RouterToolbarItemProps {\n children?: React.ReactNode;\n identifier: string;\n title?: string;\n systemImageName?: SFSymbol;\n /**\n * Custom image loaded using expo-image's `useImage` hook.\n * Takes priority over `systemImageName` when both are provided.\n *\n * @example\n * ```tsx\n * const customIcon = useImage('https://example.com/icon.png', {\n * maxWidth: 44,\n * maxHeight: 44,\n * });\n *\n * <Toolbar.Item image={customIcon} title=\"Custom\" />\n * ```\n */\n image?: ImageRef | null;\n type?: 'normal' | 'fixedSpacer' | 'fluidSpacer' | 'searchBar';\n tintColor?: ColorValue;\n hidesSharedBackground?: boolean;\n sharesBackground?: boolean;\n barButtonItemStyle?: 'plain' | 'prominent';\n width?: number;\n hidden?: boolean;\n selected?: boolean;\n possibleTitles?: string[];\n // Right now this does not seem to work\n badgeConfiguration?: {\n value?: string;\n backgroundColor?: ColorValue;\n } & BasicTextStyle;\n titleStyle?: BasicTextStyle;\n accessibilityLabel?: string;\n accessibilityHint?: string;\n disabled?: boolean;\n onSelected?: () => void;\n}\n"]}
1
+ {"version":3,"file":"native.types.js","sourceRoot":"","sources":["../../src/toolbar/native.types.ts"],"names":[],"mappings":"","sourcesContent":["import type { ImageRef } from 'expo-image';\nimport type { ColorValue } from 'react-native';\nimport type { SFSymbol } from 'sf-symbols-typescript';\n\nimport type { BasicTextStyle } from '../utils/font';\n\nexport interface RouterToolbarHostProps {\n children?: React.ReactNode;\n}\n\nexport interface RouterToolbarItemProps {\n children?: React.ReactNode;\n identifier: string;\n title?: string;\n systemImageName?: SFSymbol;\n image?: ImageRef | null;\n type?: 'normal' | 'fixedSpacer' | 'fluidSpacer' | 'searchBar';\n tintColor?: ColorValue;\n hidesSharedBackground?: boolean;\n sharesBackground?: boolean;\n barButtonItemStyle?: 'plain' | 'prominent';\n width?: number;\n hidden?: boolean;\n selected?: boolean;\n possibleTitles?: string[];\n // Right now this does not seem to work\n badgeConfiguration?: {\n value?: string;\n backgroundColor?: ColorValue;\n } & BasicTextStyle;\n titleStyle?: BasicTextStyle;\n accessibilityLabel?: string;\n accessibilityHint?: string;\n disabled?: boolean;\n onSelected?: () => void;\n}\n"]}
@@ -1,9 +1,12 @@
1
- import { CommonNavigationAction, ParamListBase, Router, TabActionType as RNTabActionType, TabNavigationState, TabRouterOptions as RNTabRouterOptions } from '@react-navigation/native';
1
+ import { CommonNavigationAction, ParamListBase, Router, TabActionType as RNTabActionType, TabNavigationState, TabRouterOptions as RNTabRouterOptions, type StackActionType } from '@react-navigation/native';
2
2
  import { TriggerMap } from './common';
3
3
  export type ExpoTabRouterOptions = RNTabRouterOptions & {
4
4
  triggerMap: TriggerMap;
5
5
  };
6
- export type ExpoTabActionType = RNTabActionType | CommonNavigationAction | {
6
+ type ReplaceAction = Extract<StackActionType, {
7
+ type: 'REPLACE';
8
+ }>;
9
+ export type ExpoTabActionType = RNTabActionType | CommonNavigationAction | ReplaceAction | {
7
10
  type: 'JUMP_TO';
8
11
  source?: string;
9
12
  target?: string;
@@ -91,6 +94,14 @@ export declare function ExpoTabRouter(options: ExpoTabRouterOptions): Router<Tab
91
94
  source?: string;
92
95
  target?: string;
93
96
  } | RNTabActionType | {
97
+ type: "REPLACE";
98
+ payload: {
99
+ name: string;
100
+ params?: object;
101
+ };
102
+ source?: string;
103
+ target?: string;
104
+ } | {
94
105
  type: "JUMP_TO";
95
106
  source?: string;
96
107
  target?: string;
@@ -100,4 +111,5 @@ export declare function ExpoTabRouter(options: ExpoTabRouterOptions): Router<Tab
100
111
  params?: object;
101
112
  };
102
113
  }>;
114
+ export {};
103
115
  //# sourceMappingURL=TabRouter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TabRouter.d.ts","sourceRoot":"","sources":["../../src/ui/TabRouter.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,aAAa,EAEb,MAAM,EACN,aAAa,IAAI,eAAe,EAChC,kBAAkB,EAClB,gBAAgB,IAAI,kBAAkB,EACvC,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEtC,MAAM,MAAM,oBAAoB,GAAG,kBAAkB,GAAG;IACtD,UAAU,EAAE,UAAU,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GACzB,eAAe,GACf,sBAAsB,GACtB;IACE,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE;QACP,IAAI,EAAE,MAAM,CAAC;QACb,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;CACH,CAAC;AAEN,wBAAgB,aAAa,CAAC,OAAO,EAAE,oBAAoB;;;;;;;;cAZzD,CAAF;YAAsB,CAAC;aAEV,CAAC;WACD,CAAC;;;;;;;;cASsB,CAAC;aAAwB,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAS/B,CAAC;;;;;;;cAI8B,CAAC;;;;;;;;cAKxD,CAAJ;;;;;UA5BU,SAAS;aACN,MAAM;aACN,MAAM;aACN;QACP,IAAI,EAAE,MAAM,CAAC;QACb,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB;GAmDN"}
1
+ {"version":3,"file":"TabRouter.d.ts","sourceRoot":"","sources":["../../src/ui/TabRouter.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,aAAa,EAEb,MAAM,EACN,aAAa,IAAI,eAAe,EAChC,kBAAkB,EAClB,gBAAgB,IAAI,kBAAkB,EACtC,KAAK,eAAe,EAErB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEtC,MAAM,MAAM,oBAAoB,GAAG,kBAAkB,GAAG;IACtD,UAAU,EAAE,UAAU,CAAC;CACxB,CAAC;AAEF,KAAK,aAAa,GAAG,OAAO,CAAC,eAAe,EAAE;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,CAAC,CAAC;AAEnE,MAAM,MAAM,iBAAiB,GACzB,eAAe,GACf,sBAAsB,GACtB,aAAa,GACb;IACE,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE;QACP,IAAI,EAAE,MAAM,CAAC;QACb,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;CACH,CAAC;AAEN,wBAAgB,aAAa,CAAC,OAAO,EAAE,oBAAoB;;;;;;;;cAjBzD,CAAC;YAAsB,CAAC;aAAuB,CAAC;WAE/C,CAAC;;;;;;;;cAQS,CAAC;aACM,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAWJ,CAAC;;;;;;;cAKV,CAAD;;;;;;;;cAKqB,CAAC;;;;;;;;cAzC3B,CAAD;;;;;UAgBW,SAAS;aACN,MAAM;aACN,MAAM;aACN;QACP,IAAI,EAAE,MAAM,CAAC;QACb,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB;GAiFN"}
@@ -7,18 +7,45 @@ function ExpoTabRouter(options) {
7
7
  const router = {
8
8
  ...rnTabRouter,
9
9
  getStateForAction(state, action, options) {
10
- if (action.type !== 'JUMP_TO') {
10
+ if (isReplaceAction(action)) {
11
+ action = {
12
+ ...action,
13
+ type: 'JUMP_TO',
14
+ };
15
+ // Generate the state as if we were using JUMP_TO
16
+ const nextState = rnTabRouter.getStateForAction(state, action, options);
17
+ if (!nextState || nextState.index === undefined || !Array.isArray(nextState.history)) {
18
+ return null;
19
+ }
20
+ // We can assert that nextState is TabNavigationState here, because we checked for index and history above
21
+ state = nextState;
22
+ // If the state is valid and we didn't JUMP_TO a single history state,
23
+ // then remove the previous state.
24
+ if (state.index !== 0) {
25
+ const previousIndex = state.index - 1;
26
+ state = {
27
+ ...state,
28
+ key: `${state.key}-replace`,
29
+ // Omit the previous history entry that we are replacing
30
+ history: [
31
+ ...state.history.slice(0, previousIndex),
32
+ ...state.history.splice(state.index),
33
+ ],
34
+ };
35
+ }
36
+ }
37
+ else if (action.type !== 'JUMP_TO') {
11
38
  return rnTabRouter.getStateForAction(state, action, options);
12
39
  }
13
40
  const route = state.routes.find((route) => route.name === action.payload.name);
14
- if (!route) {
41
+ if (!route || !state) {
15
42
  // This shouldn't occur, but lets just hand it off to the next navigator in case.
16
43
  return null;
17
44
  }
18
45
  // We should reset if this is the first time visiting the route
19
- let shouldReset = !state.history.some((item) => item.key === route?.key) && !route.state;
46
+ let shouldReset = !state.history?.some((item) => item.key === route?.key) && !route.state;
20
47
  if (!shouldReset && 'resetOnFocus' in action.payload && action.payload.resetOnFocus) {
21
- shouldReset = state.routes[state.index].key !== route.key;
48
+ shouldReset = state.routes[state.index ?? 0].key !== route.key;
22
49
  }
23
50
  if (shouldReset) {
24
51
  options.routeParamList[route.name] = {
@@ -42,4 +69,7 @@ function ExpoTabRouter(options) {
42
69
  };
43
70
  return router;
44
71
  }
72
+ function isReplaceAction(action) {
73
+ return action.type === 'REPLACE';
74
+ }
45
75
  //# sourceMappingURL=TabRouter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TabRouter.js","sourceRoot":"","sources":["../../src/ui/TabRouter.tsx"],"names":[],"mappings":";;AA8BA,sCAgDC;AA9ED,qDAQkC;AAsBlC,SAAgB,aAAa,CAAC,OAA6B;IACzD,MAAM,WAAW,GAAG,IAAA,kBAAW,EAAC,OAAO,CAAC,CAAC;IAEzC,MAAM,MAAM,GAGR;QACF,GAAG,WAAW;QACd,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO;YACtC,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC9B,OAAO,WAAW,CAAC,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;YAC/D,CAAC;YAED,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAE/E,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,iFAAiF;gBACjF,OAAO,IAAI,CAAC;YACd,CAAC;YAED,+DAA+D;YAC/D,IAAI,WAAW,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,KAAK,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;YAEzF,IAAI,CAAC,WAAW,IAAI,cAAc,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;gBACpF,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,KAAK,CAAC,GAAG,CAAC;YAC5D,CAAC;YAED,IAAI,WAAW,EAAE,CAAC;gBAChB,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG;oBACnC,GAAG,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC;iBACtC,CAAC;gBACF,KAAK,GAAG;oBACN,GAAG,KAAK;oBACR,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;wBAC7B,IAAI,CAAC,CAAC,GAAG,KAAK,KAAK,CAAC,GAAG,EAAE,CAAC;4BACxB,OAAO,CAAC,CAAC;wBACX,CAAC;wBACD,OAAO,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;oBACpC,CAAC,CAAC;iBACH,CAAC;gBACF,OAAO,WAAW,CAAC,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;YAC/D,CAAC;iBAAM,CAAC;gBACN,OAAO,WAAW,CAAC,qBAAqB,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;YAC7D,CAAC;QACH,CAAC;KACF,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC","sourcesContent":["import {\n CommonNavigationAction,\n ParamListBase,\n TabRouter as RNTabRouter,\n Router,\n TabActionType as RNTabActionType,\n TabNavigationState,\n TabRouterOptions as RNTabRouterOptions,\n} from '@react-navigation/native';\n\nimport { TriggerMap } from './common';\n\nexport type ExpoTabRouterOptions = RNTabRouterOptions & {\n triggerMap: TriggerMap;\n};\n\nexport type ExpoTabActionType =\n | RNTabActionType\n | CommonNavigationAction\n | {\n type: 'JUMP_TO';\n source?: string;\n target?: string;\n payload: {\n name: string;\n resetOnFocus?: boolean;\n params?: object;\n };\n };\n\nexport function ExpoTabRouter(options: ExpoTabRouterOptions) {\n const rnTabRouter = RNTabRouter(options);\n\n const router: Router<\n TabNavigationState<ParamListBase>,\n ExpoTabActionType | CommonNavigationAction\n > = {\n ...rnTabRouter,\n getStateForAction(state, action, options) {\n if (action.type !== 'JUMP_TO') {\n return rnTabRouter.getStateForAction(state, action, options);\n }\n\n const route = state.routes.find((route) => route.name === action.payload.name);\n\n if (!route) {\n // This shouldn't occur, but lets just hand it off to the next navigator in case.\n return null;\n }\n\n // We should reset if this is the first time visiting the route\n let shouldReset = !state.history.some((item) => item.key === route?.key) && !route.state;\n\n if (!shouldReset && 'resetOnFocus' in action.payload && action.payload.resetOnFocus) {\n shouldReset = state.routes[state.index].key !== route.key;\n }\n\n if (shouldReset) {\n options.routeParamList[route.name] = {\n ...options.routeParamList[route.name],\n };\n state = {\n ...state,\n routes: state.routes.map((r) => {\n if (r.key !== route.key) {\n return r;\n }\n return { ...r, state: undefined };\n }),\n };\n return rnTabRouter.getStateForAction(state, action, options);\n } else {\n return rnTabRouter.getStateForRouteFocus(state, route.key);\n }\n },\n };\n\n return router;\n}\n"]}
1
+ {"version":3,"file":"TabRouter.js","sourceRoot":"","sources":["../../src/ui/TabRouter.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n CommonNavigationAction,\n ParamListBase,\n TabRouter as RNTabRouter,\n Router,\n TabActionType as RNTabActionType,\n TabNavigationState,\n TabRouterOptions as RNTabRouterOptions,\n type StackActionType,\n type NavigationAction,\n} from '@react-navigation/native';\n\nimport { TriggerMap } from './common';\n\nexport type ExpoTabRouterOptions = RNTabRouterOptions & {\n triggerMap: TriggerMap;\n};\n\ntype ReplaceAction = Extract<StackActionType, { type: 'REPLACE' }>;\n\nexport type ExpoTabActionType =\n | RNTabActionType\n | CommonNavigationAction\n | ReplaceAction\n | {\n type: 'JUMP_TO';\n source?: string;\n target?: string;\n payload: {\n name: string;\n resetOnFocus?: boolean;\n params?: object;\n };\n };\n\nexport function ExpoTabRouter(options: ExpoTabRouterOptions) {\n const rnTabRouter = RNTabRouter(options);\n\n const router: Router<\n TabNavigationState<ParamListBase>,\n ExpoTabActionType | CommonNavigationAction\n > = {\n ...rnTabRouter,\n getStateForAction(state, action, options) {\n if (isReplaceAction(action)) {\n action = {\n ...action,\n type: 'JUMP_TO',\n };\n // Generate the state as if we were using JUMP_TO\n const nextState = rnTabRouter.getStateForAction(state, action, options);\n\n if (!nextState || nextState.index === undefined || !Array.isArray(nextState.history)) {\n return null;\n }\n\n // We can assert that nextState is TabNavigationState here, because we checked for index and history above\n state = nextState as TabNavigationState<ParamListBase>;\n\n // If the state is valid and we didn't JUMP_TO a single history state,\n // then remove the previous state.\n if (state.index !== 0) {\n const previousIndex = state.index - 1;\n\n state = {\n ...state,\n key: `${state.key}-replace`,\n // Omit the previous history entry that we are replacing\n history: [\n ...state.history.slice(0, previousIndex),\n ...state.history.splice(state.index),\n ],\n };\n }\n } else if (action.type !== 'JUMP_TO') {\n return rnTabRouter.getStateForAction(state, action, options);\n }\n\n const route = state.routes.find((route) => route.name === action.payload.name);\n\n if (!route || !state) {\n // This shouldn't occur, but lets just hand it off to the next navigator in case.\n return null;\n }\n\n // We should reset if this is the first time visiting the route\n let shouldReset = !state.history?.some((item) => item.key === route?.key) && !route.state;\n\n if (!shouldReset && 'resetOnFocus' in action.payload && action.payload.resetOnFocus) {\n shouldReset = state.routes[state.index ?? 0].key !== route.key;\n }\n\n if (shouldReset) {\n options.routeParamList[route.name] = {\n ...options.routeParamList[route.name],\n };\n state = {\n ...state,\n routes: state.routes.map((r) => {\n if (r.key !== route.key) {\n return r;\n }\n return { ...r, state: undefined };\n }),\n };\n return rnTabRouter.getStateForAction(state, action, options);\n } else {\n return rnTabRouter.getStateForRouteFocus(state, route.key);\n }\n },\n };\n\n return router;\n}\n\nfunction isReplaceAction(action: NavigationAction): action is ReplaceAction {\n return action.type === 'REPLACE';\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"useScreens.d.ts","sourceRoot":"","sources":["../src/useScreens.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useScreens.d.ts","sourceRoot":"","sources":["../src/useScreens.tsx"],"names":[],"mappings":"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"}