one 1.1.389 → 1.1.391

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 (730) hide show
  1. package/dist/cjs/Root.cjs +13 -28
  2. package/dist/cjs/Root.js +15 -26
  3. package/dist/cjs/Root.js.map +1 -1
  4. package/dist/cjs/Root.native.js +25 -26
  5. package/dist/cjs/Root.native.js.map +2 -2
  6. package/dist/cjs/cli/build.cjs +1 -1
  7. package/dist/cjs/cli/build.js +1 -1
  8. package/dist/cjs/cli/build.js.map +1 -1
  9. package/dist/cjs/cli/build.native.js +1 -1
  10. package/dist/cjs/cli/build.native.js.map +1 -1
  11. package/dist/cjs/constants.cjs +5 -1
  12. package/dist/cjs/constants.js +3 -1
  13. package/dist/cjs/constants.js.map +1 -1
  14. package/dist/cjs/constants.native.js +5 -1
  15. package/dist/cjs/constants.native.js.map +2 -2
  16. package/dist/cjs/createApp.cjs +22 -82
  17. package/dist/cjs/createApp.js +17 -75
  18. package/dist/cjs/createApp.js.map +1 -1
  19. package/dist/cjs/createApp.native.js +0 -1
  20. package/dist/cjs/createApp.native.js.map +2 -2
  21. package/dist/cjs/createHandleRequest.cjs +1 -1
  22. package/dist/cjs/createHandleRequest.js +1 -1
  23. package/dist/cjs/createHandleRequest.js.map +1 -1
  24. package/dist/cjs/createHandleRequest.native.js +1 -1
  25. package/dist/cjs/createHandleRequest.native.js.map +1 -1
  26. package/dist/cjs/fork/NavigationContainer.cjs +49 -31
  27. package/dist/cjs/fork/NavigationContainer.js +40 -21
  28. package/dist/cjs/fork/NavigationContainer.js.map +2 -2
  29. package/dist/cjs/fork/NavigationContainer.native.js +51 -29
  30. package/dist/cjs/fork/NavigationContainer.native.js.map +2 -2
  31. package/dist/cjs/fork/createMemoryHistory.cjs +4 -3
  32. package/dist/cjs/fork/createMemoryHistory.js +3 -2
  33. package/dist/cjs/fork/createMemoryHistory.js.map +1 -1
  34. package/dist/cjs/fork/createMemoryHistory.native.js +8 -4
  35. package/dist/cjs/fork/createMemoryHistory.native.js.map +2 -2
  36. package/dist/cjs/fork/extractPathFromURL.cjs +48 -28
  37. package/dist/cjs/fork/extractPathFromURL.js +44 -21
  38. package/dist/cjs/fork/extractPathFromURL.js.map +2 -2
  39. package/dist/cjs/fork/extractPathFromURL.native.js +58 -26
  40. package/dist/cjs/fork/extractPathFromURL.native.js.map +2 -2
  41. package/dist/cjs/fork/findFocusedRoute.js.map +1 -1
  42. package/dist/cjs/fork/findFocusedRoute.native.js.map +1 -1
  43. package/dist/cjs/fork/getPathFromState-mods.cjs +65 -0
  44. package/dist/cjs/fork/getPathFromState-mods.js +56 -0
  45. package/dist/cjs/fork/getPathFromState-mods.js.map +6 -0
  46. package/dist/cjs/fork/getPathFromState-mods.native.js +70 -0
  47. package/dist/cjs/fork/getPathFromState-mods.native.js.map +6 -0
  48. package/dist/cjs/fork/getPathFromState.cjs +75 -224
  49. package/dist/cjs/fork/getPathFromState.js +68 -223
  50. package/dist/cjs/fork/getPathFromState.js.map +2 -2
  51. package/dist/cjs/fork/getPathFromState.native.js +79 -261
  52. package/dist/cjs/fork/getPathFromState.native.js.map +2 -2
  53. package/dist/cjs/fork/getStateFromPath-mods.cjs +187 -0
  54. package/dist/cjs/fork/getStateFromPath-mods.js +199 -0
  55. package/dist/cjs/fork/getStateFromPath-mods.js.map +6 -0
  56. package/dist/cjs/fork/getStateFromPath-mods.native.js +284 -0
  57. package/dist/cjs/fork/getStateFromPath-mods.native.js.map +6 -0
  58. package/dist/cjs/fork/getStateFromPath.cjs +181 -263
  59. package/dist/cjs/fork/getStateFromPath.js +148 -264
  60. package/dist/cjs/fork/getStateFromPath.js.map +2 -2
  61. package/dist/cjs/fork/getStateFromPath.native.js +164 -304
  62. package/dist/cjs/fork/getStateFromPath.native.js.map +2 -2
  63. package/dist/cjs/fork/useBackButton.js.map +1 -1
  64. package/dist/cjs/fork/useBackButton.native.js.map +1 -1
  65. package/dist/cjs/fork/useDocumentTitle.js +4 -1
  66. package/dist/cjs/fork/useDocumentTitle.js.map +1 -1
  67. package/dist/cjs/fork/useDocumentTitle.native.js +1 -1
  68. package/dist/cjs/fork/useDocumentTitle.native.js.map +2 -2
  69. package/dist/cjs/fork/useLinking.cjs +21 -24
  70. package/dist/cjs/fork/useLinking.js +21 -25
  71. package/dist/cjs/fork/useLinking.js.map +2 -2
  72. package/dist/cjs/fork/useLinking.native.js +68 -66
  73. package/dist/cjs/fork/useLinking.native.js.map +2 -2
  74. package/dist/cjs/fork/useThenable.js.map +1 -1
  75. package/dist/cjs/fork/useThenable.native.js.map +1 -1
  76. package/dist/cjs/fork/validatePathConfig.cjs +32 -11
  77. package/dist/cjs/fork/validatePathConfig.js +41 -11
  78. package/dist/cjs/fork/validatePathConfig.js.map +1 -1
  79. package/dist/cjs/fork/validatePathConfig.native.js +47 -18
  80. package/dist/cjs/fork/validatePathConfig.native.js.map +2 -2
  81. package/dist/cjs/getReactNavigationConfig.cjs +1 -1
  82. package/dist/cjs/getReactNavigationConfig.js +1 -1
  83. package/dist/cjs/getReactNavigationConfig.native.js +1 -1
  84. package/dist/cjs/hooks.cjs +2 -2
  85. package/dist/cjs/hooks.js +1 -1
  86. package/dist/cjs/hooks.js.map +1 -1
  87. package/dist/cjs/hooks.native.js +1 -1
  88. package/dist/cjs/hooks.native.js.map +1 -1
  89. package/dist/cjs/index.cjs +3 -3
  90. package/dist/cjs/index.js +2 -2
  91. package/dist/cjs/index.js.map +1 -1
  92. package/dist/cjs/index.native.js +2 -2
  93. package/dist/cjs/index.native.js.map +1 -1
  94. package/dist/cjs/layouts/withLayoutContext.cjs +3 -3
  95. package/dist/cjs/layouts/withLayoutContext.js +2 -2
  96. package/dist/cjs/layouts/withLayoutContext.js.map +1 -1
  97. package/dist/cjs/layouts/withLayoutContext.native.js +2 -2
  98. package/dist/cjs/layouts/withLayoutContext.native.js.map +1 -1
  99. package/dist/cjs/link/linking.cjs +4 -4
  100. package/dist/cjs/link/linking.js +3 -3
  101. package/dist/cjs/link/linking.js.map +2 -2
  102. package/dist/cjs/link/linking.native.js +3 -3
  103. package/dist/cjs/link/linking.native.js.map +1 -1
  104. package/dist/cjs/link/useLinkTo.cjs +3 -3
  105. package/dist/cjs/link/useLinkTo.js +2 -2
  106. package/dist/cjs/link/useLinkTo.js.map +1 -1
  107. package/dist/cjs/link/useLinkTo.native.js +2 -2
  108. package/dist/cjs/link/useLinkTo.native.js.map +1 -1
  109. package/dist/cjs/render.cjs +3 -2
  110. package/dist/cjs/render.js +3 -2
  111. package/dist/cjs/render.js.map +1 -1
  112. package/dist/cjs/{Route.js.map → router/Route.js.map} +1 -1
  113. package/dist/cjs/{Route.native.js.map → router/Route.native.js.map} +1 -1
  114. package/dist/cjs/{createRoute.cjs → router/createRoute.cjs} +1 -1
  115. package/dist/cjs/{createRoute.js → router/createRoute.js} +1 -1
  116. package/dist/cjs/{createRoute.js.map → router/createRoute.js.map} +1 -1
  117. package/dist/cjs/{createRoute.native.js → router/createRoute.native.js} +1 -1
  118. package/dist/cjs/{createRoute.native.js.map → router/createRoute.native.js.map} +1 -1
  119. package/dist/cjs/router/filterRootHTML.cjs +62 -0
  120. package/dist/cjs/router/filterRootHTML.js +49 -0
  121. package/dist/cjs/router/filterRootHTML.js.map +6 -0
  122. package/dist/cjs/router/filterRootHTML.native.js +55 -0
  123. package/dist/cjs/router/filterRootHTML.native.js.map +6 -0
  124. package/dist/cjs/{getLinkingConfig.cjs → router/getLinkingConfig.cjs} +2 -2
  125. package/dist/cjs/{getLinkingConfig.js → router/getLinkingConfig.js} +1 -1
  126. package/dist/cjs/router/getLinkingConfig.js.map +6 -0
  127. package/dist/cjs/{getLinkingConfig.native.js → router/getLinkingConfig.native.js} +1 -1
  128. package/dist/cjs/router/getLinkingConfig.native.js.map +6 -0
  129. package/dist/cjs/router/getNormalizedStatePath.cjs +2 -2
  130. package/dist/cjs/router/getNormalizedStatePath.js +2 -2
  131. package/dist/cjs/router/getNormalizedStatePath.js.map +1 -1
  132. package/dist/cjs/router/getNormalizedStatePath.native.js +2 -2
  133. package/dist/cjs/router/getNormalizedStatePath.native.js.map +1 -1
  134. package/dist/cjs/{getRoutes.cjs → router/getRoutes.cjs} +3 -3
  135. package/dist/cjs/{getRoutes.js → router/getRoutes.js} +2 -2
  136. package/dist/cjs/{getRoutes.js.map → router/getRoutes.js.map} +2 -2
  137. package/dist/cjs/{getRoutes.native.js → router/getRoutes.native.js} +2 -2
  138. package/dist/cjs/{getRoutes.native.js.map → router/getRoutes.native.js.map} +2 -2
  139. package/dist/cjs/{imperative-api.cjs → router/imperative-api.cjs} +1 -1
  140. package/dist/cjs/{imperative-api.js → router/imperative-api.js} +1 -1
  141. package/dist/cjs/{imperative-api.js.map → router/imperative-api.js.map} +1 -1
  142. package/dist/cjs/{imperative-api.native.js → router/imperative-api.native.js} +1 -1
  143. package/dist/cjs/{imperative-api.native.js.map → router/imperative-api.native.js.map} +2 -2
  144. package/dist/cjs/{matchers.js.map → router/matchers.js.map} +1 -1
  145. package/dist/cjs/{matchers.native.js.map → router/matchers.native.js.map} +1 -1
  146. package/dist/cjs/router/router.cjs +25 -9
  147. package/dist/cjs/router/router.js +25 -3
  148. package/dist/cjs/router/router.js.map +1 -1
  149. package/dist/cjs/router/router.native.js +39 -3
  150. package/dist/cjs/router/router.native.js.map +2 -2
  151. package/dist/cjs/{sortRoutes.js.map → router/sortRoutes.js.map} +1 -1
  152. package/dist/cjs/{sortRoutes.native.js.map → router/sortRoutes.native.js.map} +1 -1
  153. package/dist/cjs/{useNavigation.js.map → router/useNavigation.js.map} +1 -1
  154. package/dist/cjs/{useNavigation.native.js.map → router/useNavigation.native.js.map} +1 -1
  155. package/dist/cjs/{useScreens.cjs → router/useScreens.cjs} +57 -6
  156. package/dist/cjs/{useScreens.js → router/useScreens.js} +29 -3
  157. package/dist/cjs/router/useScreens.js.map +6 -0
  158. package/dist/cjs/{useScreens.native.js → router/useScreens.native.js} +10 -3
  159. package/dist/cjs/router/useScreens.native.js.map +6 -0
  160. package/dist/cjs/{useViteRoutes.js.map → router/useViteRoutes.js.map} +1 -1
  161. package/dist/cjs/{useViteRoutes.native.js.map → router/useViteRoutes.native.js.map} +1 -1
  162. package/dist/cjs/server/createRoutesManifest.cjs +1 -1
  163. package/dist/cjs/server/createRoutesManifest.js +1 -1
  164. package/dist/cjs/server/createRoutesManifest.js.map +1 -1
  165. package/dist/cjs/server/createRoutesManifest.native.js +1 -1
  166. package/dist/cjs/server/createRoutesManifest.native.js.map +1 -1
  167. package/dist/cjs/server/getServerManifest.cjs +2 -2
  168. package/dist/cjs/server/getServerManifest.js +1 -1
  169. package/dist/cjs/server/getServerManifest.js.map +1 -1
  170. package/dist/cjs/server/getServerManifest.native.js +1 -1
  171. package/dist/cjs/server/getServerManifest.native.js.map +1 -1
  172. package/dist/cjs/server/oneServe.cjs +1 -1
  173. package/dist/cjs/server/oneServe.js +1 -1
  174. package/dist/cjs/server/oneServe.js.map +1 -1
  175. package/dist/cjs/server/oneServe.native.js +1 -1
  176. package/dist/cjs/server/oneServe.native.js.map +1 -1
  177. package/dist/cjs/typed-routes/generateRouteTypes.cjs +1 -1
  178. package/dist/cjs/typed-routes/generateRouteTypes.js +1 -1
  179. package/dist/cjs/typed-routes/generateRouteTypes.js.map +1 -1
  180. package/dist/cjs/typed-routes/generateRouteTypes.native.js +1 -1
  181. package/dist/cjs/typed-routes/generateRouteTypes.native.js.map +1 -1
  182. package/dist/cjs/typed-routes/getTypedRoutesDeclarationFile.cjs +2 -2
  183. package/dist/cjs/typed-routes/getTypedRoutesDeclarationFile.js +1 -1
  184. package/dist/cjs/typed-routes/getTypedRoutesDeclarationFile.js.map +1 -1
  185. package/dist/cjs/typed-routes/getTypedRoutesDeclarationFile.native.js +1 -1
  186. package/dist/cjs/typed-routes/getTypedRoutesDeclarationFile.native.js.map +1 -1
  187. package/dist/cjs/useLoader.cjs +2 -2
  188. package/dist/cjs/useLoader.js +1 -1
  189. package/dist/cjs/useLoader.js.map +1 -1
  190. package/dist/cjs/useLoader.native.js +1 -1
  191. package/dist/cjs/useLoader.native.js.map +1 -1
  192. package/dist/cjs/{cleanUrl.cjs → utils/cleanUrl.cjs} +3 -3
  193. package/dist/cjs/{cleanUrl.js → utils/cleanUrl.js} +1 -1
  194. package/dist/cjs/{cleanUrl.js.map → utils/cleanUrl.js.map} +2 -2
  195. package/dist/cjs/{cleanUrl.native.js → utils/cleanUrl.native.js} +1 -1
  196. package/dist/cjs/{cleanUrl.native.js.map → utils/cleanUrl.native.js.map} +2 -2
  197. package/dist/cjs/{platform.js.map → utils/platform.js.map} +1 -1
  198. package/dist/cjs/{platform.native.js.map → utils/platform.native.js.map} +1 -1
  199. package/dist/cjs/utils/redirect.cjs +1 -1
  200. package/dist/cjs/utils/redirect.js +1 -1
  201. package/dist/cjs/utils/redirect.native.js +1 -1
  202. package/dist/cjs/utils/redirect.native.js.map +1 -1
  203. package/dist/cjs/utils/serverContext.cjs +54 -0
  204. package/dist/cjs/utils/serverContext.js +51 -0
  205. package/dist/cjs/utils/serverContext.js.map +6 -0
  206. package/dist/cjs/utils/serverContext.native.js +55 -0
  207. package/dist/cjs/utils/serverContext.native.js.map +6 -0
  208. package/dist/cjs/utils/useConstant.cjs +44 -0
  209. package/dist/cjs/utils/useConstant.js +35 -0
  210. package/dist/cjs/utils/useConstant.js.map +6 -0
  211. package/dist/cjs/utils/useConstant.native.js +44 -0
  212. package/dist/cjs/utils/useConstant.native.js.map +6 -0
  213. package/dist/cjs/views/EmptyRoute.cjs +1 -1
  214. package/dist/cjs/views/EmptyRoute.js +1 -1
  215. package/dist/cjs/views/EmptyRoute.native.js +1 -1
  216. package/dist/cjs/views/LoadProgressBar.cjs +1 -1
  217. package/dist/cjs/views/LoadProgressBar.js +1 -1
  218. package/dist/cjs/views/LoadProgressBar.js.map +1 -1
  219. package/dist/cjs/views/LoadProgressBar.native.js +1 -1
  220. package/dist/cjs/views/LoadProgressBar.native.js.map +1 -1
  221. package/dist/cjs/views/Navigator.cjs +2 -2
  222. package/dist/cjs/views/Navigator.js +1 -1
  223. package/dist/cjs/views/Navigator.js.map +1 -1
  224. package/dist/cjs/views/Navigator.native.js +1 -1
  225. package/dist/cjs/views/Navigator.native.js.map +1 -1
  226. package/dist/cjs/views/Screen.cjs +1 -1
  227. package/dist/cjs/views/Screen.js +1 -1
  228. package/dist/cjs/views/Screen.native.js +1 -1
  229. package/dist/cjs/vite/DevHead.cjs +59 -0
  230. package/dist/cjs/vite/DevHead.js +54 -0
  231. package/dist/cjs/vite/DevHead.js.map +6 -0
  232. package/dist/cjs/vite/DevHead.native.js +29 -0
  233. package/dist/cjs/vite/DevHead.native.js.map +6 -0
  234. package/dist/cjs/vite/plugins/SSRCSSPlugin.cjs +6 -8
  235. package/dist/cjs/vite/plugins/SSRCSSPlugin.js +6 -8
  236. package/dist/cjs/vite/plugins/SSRCSSPlugin.js.map +1 -1
  237. package/dist/cjs/vite/plugins/SSRCSSPlugin.native.js +7 -9
  238. package/dist/cjs/vite/plugins/SSRCSSPlugin.native.js.map +2 -2
  239. package/dist/cjs/vite/plugins/fileSystemRouterPlugin.cjs +8 -4
  240. package/dist/cjs/vite/plugins/fileSystemRouterPlugin.js +10 -5
  241. package/dist/cjs/vite/plugins/fileSystemRouterPlugin.js.map +1 -1
  242. package/dist/cjs/vite/plugins/fileSystemRouterPlugin.native.js +11 -6
  243. package/dist/cjs/vite/plugins/fileSystemRouterPlugin.native.js.map +2 -2
  244. package/dist/cjs/zero/useQuery.cjs +3 -2
  245. package/dist/cjs/zero/useQuery.js +2 -2
  246. package/dist/cjs/zero/useQuery.js.map +1 -1
  247. package/dist/cjs/zero/useQuery.native.js +1 -1
  248. package/dist/cjs/zero/useQuery.native.js.map +2 -2
  249. package/dist/esm/Root.js +16 -19
  250. package/dist/esm/Root.js.map +1 -1
  251. package/dist/esm/Root.mjs +9 -13
  252. package/dist/esm/Root.mjs.map +1 -1
  253. package/dist/esm/Root.native.js +26 -19
  254. package/dist/esm/Root.native.js.map +2 -2
  255. package/dist/esm/cli/build.js +1 -1
  256. package/dist/esm/cli/build.mjs +1 -1
  257. package/dist/esm/cli/build.native.js +1 -1
  258. package/dist/esm/constants.js +3 -1
  259. package/dist/esm/constants.js.map +1 -1
  260. package/dist/esm/constants.mjs +4 -2
  261. package/dist/esm/constants.mjs.map +1 -1
  262. package/dist/esm/constants.native.js +3 -1
  263. package/dist/esm/constants.native.js.map +2 -2
  264. package/dist/esm/createApp.js +22 -76
  265. package/dist/esm/createApp.js.map +1 -1
  266. package/dist/esm/createApp.mjs +23 -83
  267. package/dist/esm/createApp.mjs.map +1 -1
  268. package/dist/esm/createApp.native.js +0 -1
  269. package/dist/esm/createApp.native.js.map +2 -2
  270. package/dist/esm/createHandleRequest.js +1 -1
  271. package/dist/esm/createHandleRequest.js.map +1 -1
  272. package/dist/esm/createHandleRequest.mjs +1 -1
  273. package/dist/esm/createHandleRequest.mjs.map +1 -1
  274. package/dist/esm/createHandleRequest.native.js +1 -1
  275. package/dist/esm/createHandleRequest.native.js.map +1 -1
  276. package/dist/esm/fork/NavigationContainer.js +43 -20
  277. package/dist/esm/fork/NavigationContainer.js.map +1 -1
  278. package/dist/esm/fork/NavigationContainer.mjs +42 -24
  279. package/dist/esm/fork/NavigationContainer.mjs.map +1 -1
  280. package/dist/esm/fork/NavigationContainer.native.js +44 -24
  281. package/dist/esm/fork/NavigationContainer.native.js.map +2 -2
  282. package/dist/esm/fork/createMemoryHistory.js +3 -2
  283. package/dist/esm/fork/createMemoryHistory.js.map +1 -1
  284. package/dist/esm/fork/createMemoryHistory.mjs +4 -3
  285. package/dist/esm/fork/createMemoryHistory.mjs.map +1 -1
  286. package/dist/esm/fork/createMemoryHistory.native.js +4 -4
  287. package/dist/esm/fork/createMemoryHistory.native.js.map +2 -2
  288. package/dist/esm/fork/extractPathFromURL.js +42 -11
  289. package/dist/esm/fork/extractPathFromURL.js.map +1 -1
  290. package/dist/esm/fork/extractPathFromURL.mjs +39 -11
  291. package/dist/esm/fork/extractPathFromURL.mjs.map +1 -1
  292. package/dist/esm/fork/extractPathFromURL.native.js +52 -15
  293. package/dist/esm/fork/extractPathFromURL.native.js.map +2 -2
  294. package/dist/esm/fork/findFocusedRoute.js.map +1 -1
  295. package/dist/esm/fork/findFocusedRoute.mjs.map +1 -1
  296. package/dist/esm/fork/findFocusedRoute.native.js.map +1 -1
  297. package/dist/esm/fork/getPathFromState-mods.js +40 -0
  298. package/dist/esm/fork/getPathFromState-mods.js.map +6 -0
  299. package/dist/esm/fork/getPathFromState-mods.mjs +40 -0
  300. package/dist/esm/fork/getPathFromState-mods.mjs.map +1 -0
  301. package/dist/esm/fork/getPathFromState-mods.native.js +47 -0
  302. package/dist/esm/fork/getPathFromState-mods.native.js.map +6 -0
  303. package/dist/esm/fork/getPathFromState.js +71 -228
  304. package/dist/esm/fork/getPathFromState.js.map +2 -2
  305. package/dist/esm/fork/getPathFromState.mjs +73 -221
  306. package/dist/esm/fork/getPathFromState.mjs.map +1 -1
  307. package/dist/esm/fork/getPathFromState.native.js +79 -260
  308. package/dist/esm/fork/getPathFromState.native.js.map +2 -2
  309. package/dist/esm/fork/getStateFromPath-mods.js +176 -0
  310. package/dist/esm/fork/getStateFromPath-mods.js.map +6 -0
  311. package/dist/esm/fork/getStateFromPath-mods.mjs +143 -0
  312. package/dist/esm/fork/getStateFromPath-mods.mjs.map +1 -0
  313. package/dist/esm/fork/getStateFromPath-mods.native.js +246 -0
  314. package/dist/esm/fork/getStateFromPath-mods.native.js.map +6 -0
  315. package/dist/esm/fork/getStateFromPath.js +160 -265
  316. package/dist/esm/fork/getStateFromPath.js.map +2 -2
  317. package/dist/esm/fork/getStateFromPath.mjs +181 -260
  318. package/dist/esm/fork/getStateFromPath.mjs.map +1 -1
  319. package/dist/esm/fork/getStateFromPath.native.js +164 -302
  320. package/dist/esm/fork/getStateFromPath.native.js.map +2 -2
  321. package/dist/esm/fork/useBackButton.js.map +1 -1
  322. package/dist/esm/fork/useBackButton.mjs.map +1 -1
  323. package/dist/esm/fork/useBackButton.native.js.map +1 -1
  324. package/dist/esm/fork/useDocumentTitle.js +4 -1
  325. package/dist/esm/fork/useDocumentTitle.js.map +1 -1
  326. package/dist/esm/fork/useDocumentTitle.mjs.map +1 -1
  327. package/dist/esm/fork/useDocumentTitle.native.js +1 -1
  328. package/dist/esm/fork/useDocumentTitle.native.js.map +2 -2
  329. package/dist/esm/fork/useLinking.js +22 -26
  330. package/dist/esm/fork/useLinking.js.map +1 -1
  331. package/dist/esm/fork/useLinking.mjs +20 -23
  332. package/dist/esm/fork/useLinking.mjs.map +1 -1
  333. package/dist/esm/fork/useLinking.native.js +65 -67
  334. package/dist/esm/fork/useLinking.native.js.map +2 -2
  335. package/dist/esm/fork/useThenable.js.map +1 -1
  336. package/dist/esm/fork/useThenable.mjs.map +1 -1
  337. package/dist/esm/fork/useThenable.native.js.map +1 -1
  338. package/dist/esm/fork/validatePathConfig.js +41 -11
  339. package/dist/esm/fork/validatePathConfig.js.map +1 -1
  340. package/dist/esm/fork/validatePathConfig.mjs +32 -11
  341. package/dist/esm/fork/validatePathConfig.mjs.map +1 -1
  342. package/dist/esm/fork/validatePathConfig.native.js +43 -18
  343. package/dist/esm/fork/validatePathConfig.native.js.map +2 -2
  344. package/dist/esm/getReactNavigationConfig.js +1 -1
  345. package/dist/esm/getReactNavigationConfig.mjs +1 -1
  346. package/dist/esm/getReactNavigationConfig.native.js +1 -1
  347. package/dist/esm/hooks.js +2 -2
  348. package/dist/esm/hooks.mjs +2 -2
  349. package/dist/esm/hooks.native.js +2 -2
  350. package/dist/esm/index.js +3 -3
  351. package/dist/esm/index.mjs +3 -3
  352. package/dist/esm/index.native.js +3 -3
  353. package/dist/esm/layouts/withLayoutContext.js +3 -3
  354. package/dist/esm/layouts/withLayoutContext.js.map +1 -1
  355. package/dist/esm/layouts/withLayoutContext.mjs +3 -3
  356. package/dist/esm/layouts/withLayoutContext.mjs.map +1 -1
  357. package/dist/esm/layouts/withLayoutContext.native.js +3 -3
  358. package/dist/esm/layouts/withLayoutContext.native.js.map +1 -1
  359. package/dist/esm/link/linking.js +2 -2
  360. package/dist/esm/link/linking.js.map +1 -1
  361. package/dist/esm/link/linking.mjs +2 -2
  362. package/dist/esm/link/linking.mjs.map +1 -1
  363. package/dist/esm/link/linking.native.js +2 -2
  364. package/dist/esm/link/linking.native.js.map +1 -1
  365. package/dist/esm/link/useLinkTo.js +2 -2
  366. package/dist/esm/link/useLinkTo.mjs +2 -2
  367. package/dist/esm/link/useLinkTo.native.js +2 -2
  368. package/dist/esm/render.js +3 -2
  369. package/dist/esm/render.js.map +1 -1
  370. package/dist/esm/render.mjs +3 -2
  371. package/dist/esm/render.mjs.map +1 -1
  372. package/dist/esm/{Route.js.map → router/Route.js.map} +1 -1
  373. package/dist/esm/router/Route.mjs.map +1 -0
  374. package/dist/esm/{Route.native.js.map → router/Route.native.js.map} +1 -1
  375. package/dist/esm/{createRoute.js → router/createRoute.js} +1 -1
  376. package/dist/esm/{createRoute.js.map → router/createRoute.js.map} +1 -1
  377. package/dist/esm/{createRoute.mjs → router/createRoute.mjs} +1 -1
  378. package/dist/esm/router/createRoute.mjs.map +1 -0
  379. package/dist/esm/{createRoute.native.js → router/createRoute.native.js} +1 -1
  380. package/dist/esm/{createRoute.native.js.map → router/createRoute.native.js.map} +1 -1
  381. package/dist/esm/router/filterRootHTML.js +33 -0
  382. package/dist/esm/router/filterRootHTML.js.map +6 -0
  383. package/dist/esm/router/filterRootHTML.mjs +39 -0
  384. package/dist/esm/router/filterRootHTML.mjs.map +1 -0
  385. package/dist/esm/router/filterRootHTML.native.js +34 -0
  386. package/dist/esm/router/filterRootHTML.native.js.map +6 -0
  387. package/dist/esm/{getLinkingConfig.js → router/getLinkingConfig.js} +7 -2
  388. package/dist/esm/router/getLinkingConfig.js.map +6 -0
  389. package/dist/esm/{getLinkingConfig.mjs → router/getLinkingConfig.mjs} +2 -2
  390. package/dist/esm/router/getLinkingConfig.mjs.map +1 -0
  391. package/dist/esm/{getLinkingConfig.native.js → router/getLinkingConfig.native.js} +2 -2
  392. package/dist/esm/router/getLinkingConfig.native.js.map +6 -0
  393. package/dist/esm/router/getNormalizedStatePath.js +1 -1
  394. package/dist/esm/router/getNormalizedStatePath.mjs +1 -1
  395. package/dist/esm/router/getNormalizedStatePath.native.js +1 -1
  396. package/dist/esm/{getRoutes.js → router/getRoutes.js} +3 -3
  397. package/dist/esm/{getRoutes.js.map → router/getRoutes.js.map} +2 -2
  398. package/dist/esm/{getRoutes.mjs → router/getRoutes.mjs} +3 -3
  399. package/dist/esm/router/getRoutes.mjs.map +1 -0
  400. package/dist/esm/{getRoutes.native.js → router/getRoutes.native.js} +3 -3
  401. package/dist/esm/{getRoutes.native.js.map → router/getRoutes.native.js.map} +2 -2
  402. package/dist/esm/{imperative-api.js → router/imperative-api.js} +1 -1
  403. package/dist/esm/{imperative-api.js.map → router/imperative-api.js.map} +1 -1
  404. package/dist/esm/{imperative-api.mjs → router/imperative-api.mjs} +1 -1
  405. package/dist/esm/router/imperative-api.mjs.map +1 -0
  406. package/dist/esm/{imperative-api.native.js → router/imperative-api.native.js} +1 -1
  407. package/dist/esm/{imperative-api.native.js.map → router/imperative-api.native.js.map} +1 -1
  408. package/dist/esm/{matchers.js.map → router/matchers.js.map} +1 -1
  409. package/dist/esm/router/matchers.mjs.map +1 -0
  410. package/dist/esm/{matchers.native.js.map → router/matchers.native.js.map} +1 -1
  411. package/dist/esm/router/router.js +30 -8
  412. package/dist/esm/router/router.js.map +1 -1
  413. package/dist/esm/router/router.mjs +24 -8
  414. package/dist/esm/router/router.mjs.map +1 -1
  415. package/dist/esm/router/router.native.js +44 -8
  416. package/dist/esm/router/router.native.js.map +2 -2
  417. package/dist/esm/{sortRoutes.js.map → router/sortRoutes.js.map} +1 -1
  418. package/dist/esm/router/sortRoutes.mjs.map +1 -0
  419. package/dist/esm/{sortRoutes.native.js.map → router/sortRoutes.native.js.map} +1 -1
  420. package/dist/esm/{useNavigation.js.map → router/useNavigation.js.map} +1 -1
  421. package/dist/esm/router/useNavigation.mjs.map +1 -0
  422. package/dist/esm/{useNavigation.native.js.map → router/useNavigation.native.js.map} +1 -1
  423. package/dist/esm/{useScreens.js → router/useScreens.js} +39 -8
  424. package/dist/esm/router/useScreens.js.map +6 -0
  425. package/dist/esm/{useScreens.mjs → router/useScreens.mjs} +59 -8
  426. package/dist/esm/router/useScreens.mjs.map +1 -0
  427. package/dist/esm/{useScreens.native.js → router/useScreens.native.js} +20 -8
  428. package/dist/esm/router/useScreens.native.js.map +6 -0
  429. package/dist/esm/{useViteRoutes.js.map → router/useViteRoutes.js.map} +1 -1
  430. package/dist/esm/router/useViteRoutes.mjs.map +1 -0
  431. package/dist/esm/{useViteRoutes.native.js.map → router/useViteRoutes.native.js.map} +1 -1
  432. package/dist/esm/server/createRoutesManifest.js +1 -1
  433. package/dist/esm/server/createRoutesManifest.mjs +1 -1
  434. package/dist/esm/server/createRoutesManifest.native.js +1 -1
  435. package/dist/esm/server/getServerManifest.js +2 -2
  436. package/dist/esm/server/getServerManifest.mjs +2 -2
  437. package/dist/esm/server/getServerManifest.native.js +2 -2
  438. package/dist/esm/server/oneServe.js +1 -1
  439. package/dist/esm/server/oneServe.mjs +1 -1
  440. package/dist/esm/server/oneServe.native.js +1 -1
  441. package/dist/esm/typed-routes/generateRouteTypes.js +1 -1
  442. package/dist/esm/typed-routes/generateRouteTypes.mjs +1 -1
  443. package/dist/esm/typed-routes/generateRouteTypes.native.js +1 -1
  444. package/dist/esm/typed-routes/getTypedRoutesDeclarationFile.js +2 -2
  445. package/dist/esm/typed-routes/getTypedRoutesDeclarationFile.mjs +2 -2
  446. package/dist/esm/typed-routes/getTypedRoutesDeclarationFile.native.js +2 -2
  447. package/dist/esm/useLoader.js +2 -2
  448. package/dist/esm/useLoader.mjs +2 -2
  449. package/dist/esm/useLoader.native.js +2 -2
  450. package/dist/esm/{cleanUrl.js → utils/cleanUrl.js} +3 -3
  451. package/dist/esm/{cleanUrl.js.map → utils/cleanUrl.js.map} +1 -1
  452. package/dist/esm/{cleanUrl.mjs → utils/cleanUrl.mjs} +3 -3
  453. package/dist/esm/utils/cleanUrl.mjs.map +1 -0
  454. package/dist/esm/{cleanUrl.native.js → utils/cleanUrl.native.js} +3 -3
  455. package/dist/esm/{cleanUrl.native.js.map → utils/cleanUrl.native.js.map} +1 -1
  456. package/dist/esm/{platform.js.map → utils/platform.js.map} +1 -1
  457. package/dist/esm/utils/platform.mjs.map +1 -0
  458. package/dist/esm/{platform.native.js.map → utils/platform.native.js.map} +1 -1
  459. package/dist/esm/utils/redirect.js +1 -1
  460. package/dist/esm/utils/redirect.mjs +1 -1
  461. package/dist/esm/utils/redirect.native.js +1 -1
  462. package/dist/esm/utils/serverContext.js +35 -0
  463. package/dist/esm/utils/serverContext.js.map +6 -0
  464. package/dist/esm/utils/serverContext.mjs +28 -0
  465. package/dist/esm/utils/serverContext.mjs.map +1 -0
  466. package/dist/esm/utils/serverContext.native.js +32 -0
  467. package/dist/esm/utils/serverContext.native.js.map +6 -0
  468. package/dist/esm/utils/useConstant.js +11 -0
  469. package/dist/esm/utils/useConstant.js.map +6 -0
  470. package/dist/esm/utils/useConstant.mjs +10 -0
  471. package/dist/esm/utils/useConstant.mjs.map +1 -0
  472. package/dist/esm/utils/useConstant.native.js +15 -0
  473. package/dist/esm/utils/useConstant.native.js.map +6 -0
  474. package/dist/esm/views/EmptyRoute.js +1 -1
  475. package/dist/esm/views/EmptyRoute.mjs +1 -1
  476. package/dist/esm/views/EmptyRoute.native.js +1 -1
  477. package/dist/esm/views/LoadProgressBar.js +1 -1
  478. package/dist/esm/views/LoadProgressBar.mjs +1 -1
  479. package/dist/esm/views/LoadProgressBar.native.js +1 -1
  480. package/dist/esm/views/Navigator.js +2 -2
  481. package/dist/esm/views/Navigator.mjs +2 -2
  482. package/dist/esm/views/Navigator.native.js +2 -2
  483. package/dist/esm/views/Screen.js +1 -1
  484. package/dist/esm/views/Screen.mjs +1 -1
  485. package/dist/esm/views/Screen.native.js +1 -1
  486. package/dist/esm/vite/DevHead.js +39 -0
  487. package/dist/esm/vite/DevHead.js.map +6 -0
  488. package/dist/esm/vite/DevHead.mjs +36 -0
  489. package/dist/esm/vite/DevHead.mjs.map +1 -0
  490. package/dist/esm/vite/DevHead.native.js +9 -0
  491. package/dist/esm/vite/DevHead.native.js.map +6 -0
  492. package/dist/esm/vite/plugins/SSRCSSPlugin.js +6 -8
  493. package/dist/esm/vite/plugins/SSRCSSPlugin.js.map +1 -1
  494. package/dist/esm/vite/plugins/SSRCSSPlugin.mjs +7 -8
  495. package/dist/esm/vite/plugins/SSRCSSPlugin.mjs.map +1 -1
  496. package/dist/esm/vite/plugins/SSRCSSPlugin.native.js +7 -8
  497. package/dist/esm/vite/plugins/SSRCSSPlugin.native.js.map +2 -2
  498. package/dist/esm/vite/plugins/fileSystemRouterPlugin.js +10 -4
  499. package/dist/esm/vite/plugins/fileSystemRouterPlugin.js.map +1 -1
  500. package/dist/esm/vite/plugins/fileSystemRouterPlugin.mjs +7 -3
  501. package/dist/esm/vite/plugins/fileSystemRouterPlugin.mjs.map +1 -1
  502. package/dist/esm/vite/plugins/fileSystemRouterPlugin.native.js +11 -5
  503. package/dist/esm/vite/plugins/fileSystemRouterPlugin.native.js.map +2 -2
  504. package/dist/esm/zero/useQuery.js +2 -1
  505. package/dist/esm/zero/useQuery.js.map +1 -1
  506. package/dist/esm/zero/useQuery.mjs +2 -1
  507. package/dist/esm/zero/useQuery.mjs.map +1 -1
  508. package/dist/esm/zero/useQuery.native.js +2 -1
  509. package/dist/esm/zero/useQuery.native.js.map +2 -2
  510. package/package.json +9 -16
  511. package/src/Root.tsx +33 -44
  512. package/src/cli/build.ts +1 -1
  513. package/src/constants.ts +4 -0
  514. package/src/createApp.native.tsx +1 -1
  515. package/src/createApp.tsx +23 -82
  516. package/src/createHandleRequest.ts +3 -2
  517. package/src/fork/NavigationContainer.tsx +101 -39
  518. package/src/fork/createMemoryHistory.tsx +15 -13
  519. package/src/fork/extractPathFromURL.ts +85 -40
  520. package/src/fork/findFocusedRoute.tsx +9 -1
  521. package/src/fork/getPathFromState-mods.ts +142 -0
  522. package/src/fork/getPathFromState.ts +244 -501
  523. package/src/fork/getStateFromPath-mods.ts +400 -0
  524. package/src/fork/getStateFromPath.ts +447 -538
  525. package/src/fork/useBackButton.native.tsx +16 -2
  526. package/src/fork/useBackButton.tsx +11 -2
  527. package/src/fork/useDocumentTitle.native.tsx +9 -4
  528. package/src/fork/useDocumentTitle.tsx +12 -7
  529. package/src/fork/useLinking.native.ts +71 -63
  530. package/src/fork/useLinking.ts +75 -40
  531. package/src/fork/useThenable.tsx +7 -1
  532. package/src/fork/validatePathConfig.ts +64 -12
  533. package/src/getReactNavigationConfig.ts +2 -2
  534. package/src/hooks.tsx +2 -2
  535. package/src/index.ts +3 -3
  536. package/src/layouts/withLayoutContext.tsx +3 -3
  537. package/src/link/linking.ts +2 -2
  538. package/src/link/useLinkTo.tsx +2 -2
  539. package/src/render.tsx +3 -5
  540. package/src/{Route.tsx → router/Route.tsx} +2 -2
  541. package/src/{createRoute.ts → router/createRoute.ts} +2 -2
  542. package/src/router/filterRootHTML.ts +81 -0
  543. package/src/{getLinkingConfig.ts → router/getLinkingConfig.ts} +8 -3
  544. package/src/router/getNormalizedStatePath.tsx +1 -1
  545. package/src/{getRoutes.ts → router/getRoutes.ts} +5 -5
  546. package/src/{imperative-api.ts → router/imperative-api.ts} +2 -2
  547. package/src/router/router.ts +48 -9
  548. package/src/{useScreens.tsx → router/useScreens.tsx} +63 -48
  549. package/src/{useViteRoutes.tsx → router/useViteRoutes.tsx} +2 -2
  550. package/src/server/createRoutesManifest.ts +3 -3
  551. package/src/server/getServerManifest.ts +3 -3
  552. package/src/server/oneServe.ts +1 -1
  553. package/src/typed-routes/generateRouteTypes.ts +1 -1
  554. package/src/typed-routes/getTypedRoutesDeclarationFile.ts +3 -3
  555. package/src/useLoader.ts +2 -2
  556. package/src/{cleanUrl.ts → utils/cleanUrl.ts} +3 -3
  557. package/src/utils/redirect.ts +1 -1
  558. package/src/utils/serverContext.tsx +52 -0
  559. package/src/utils/useConstant.ts +18 -0
  560. package/src/views/EmptyRoute.tsx +1 -1
  561. package/src/views/LoadProgressBar.tsx +1 -1
  562. package/src/views/Navigator.tsx +2 -2
  563. package/src/views/Screen.tsx +1 -1
  564. package/src/vite/DevHead.tsx +39 -0
  565. package/src/vite/plugins/SSRCSSPlugin.ts +6 -10
  566. package/src/vite/plugins/fileSystemRouterPlugin.tsx +12 -6
  567. package/src/zero/useQuery.ts +2 -1
  568. package/types/Root.d.ts +3 -2
  569. package/types/Root.d.ts.map +1 -1
  570. package/types/constants.d.ts +2 -0
  571. package/types/constants.d.ts.map +1 -1
  572. package/types/createApp.d.ts.map +1 -1
  573. package/types/createHandleRequest.d.ts +1 -1
  574. package/types/createHandleRequest.d.ts.map +1 -1
  575. package/types/fork/NavigationContainer.d.ts +19 -8
  576. package/types/fork/NavigationContainer.d.ts.map +1 -1
  577. package/types/fork/createMemoryHistory.d.ts +10 -1
  578. package/types/fork/createMemoryHistory.d.ts.map +1 -1
  579. package/types/fork/extractPathFromURL.d.ts +7 -1
  580. package/types/fork/extractPathFromURL.d.ts.map +1 -1
  581. package/types/fork/findFocusedRoute.d.ts +9 -0
  582. package/types/fork/findFocusedRoute.d.ts.map +1 -1
  583. package/types/fork/getPathFromState-mods.d.ts +23 -0
  584. package/types/fork/getPathFromState-mods.d.ts.map +1 -0
  585. package/types/fork/getPathFromState.d.ts +15 -14
  586. package/types/fork/getPathFromState.d.ts.map +1 -1
  587. package/types/fork/getStateFromPath-mods.d.ts +58 -0
  588. package/types/fork/getStateFromPath-mods.d.ts.map +1 -0
  589. package/types/fork/getStateFromPath.d.ts +28 -29
  590. package/types/fork/getStateFromPath.d.ts.map +1 -1
  591. package/types/fork/useBackButton.d.ts +6 -0
  592. package/types/fork/useBackButton.d.ts.map +1 -1
  593. package/types/fork/useBackButton.native.d.ts +9 -1
  594. package/types/fork/useBackButton.native.d.ts.map +1 -1
  595. package/types/fork/useDocumentTitle.d.ts +8 -6
  596. package/types/fork/useDocumentTitle.d.ts.map +1 -1
  597. package/types/fork/useDocumentTitle.native.d.ts +5 -2
  598. package/types/fork/useDocumentTitle.native.d.ts.map +1 -1
  599. package/types/fork/useLinking.d.ts +8 -1
  600. package/types/fork/useLinking.d.ts.map +1 -1
  601. package/types/fork/useLinking.native.d.ts +9 -2
  602. package/types/fork/useLinking.native.d.ts.map +1 -1
  603. package/types/fork/useThenable.d.ts +6 -0
  604. package/types/fork/useThenable.d.ts.map +1 -1
  605. package/types/fork/validatePathConfig.d.ts +8 -1
  606. package/types/fork/validatePathConfig.d.ts.map +1 -1
  607. package/types/getReactNavigationConfig.d.ts +1 -1
  608. package/types/getReactNavigationConfig.d.ts.map +1 -1
  609. package/types/index.d.ts +3 -3
  610. package/types/index.d.ts.map +1 -1
  611. package/types/layouts/withLayoutContext.d.ts +1 -1
  612. package/types/layouts/withLayoutContext.d.ts.map +1 -1
  613. package/types/link/linking.d.ts +2 -2
  614. package/types/link/linking.d.ts.map +1 -1
  615. package/types/render.d.ts.map +1 -1
  616. package/types/{Route.d.ts → router/Route.d.ts} +2 -2
  617. package/types/router/Route.d.ts.map +1 -0
  618. package/types/{createRoute.d.ts → router/createRoute.d.ts} +1 -1
  619. package/types/router/createRoute.d.ts.map +1 -0
  620. package/types/router/filterRootHTML.d.ts +19 -0
  621. package/types/router/filterRootHTML.d.ts.map +1 -0
  622. package/types/{getLinkingConfig.d.ts → router/getLinkingConfig.d.ts} +2 -2
  623. package/types/router/getLinkingConfig.d.ts.map +1 -0
  624. package/types/{getRoutes.d.ts → router/getRoutes.d.ts} +1 -1
  625. package/types/router/getRoutes.d.ts.map +1 -0
  626. package/types/router/imperative-api.d.ts +3 -0
  627. package/types/router/imperative-api.d.ts.map +1 -0
  628. package/types/router/matchers.d.ts.map +1 -0
  629. package/types/router/router.d.ts +2 -2
  630. package/types/router/router.d.ts.map +1 -1
  631. package/types/router/sortRoutes.d.ts.map +1 -0
  632. package/types/router/useNavigation.d.ts.map +1 -0
  633. package/types/router/useScreens.d.ts.map +1 -0
  634. package/types/{useViteRoutes.d.ts → router/useViteRoutes.d.ts} +2 -2
  635. package/types/router/useViteRoutes.d.ts.map +1 -0
  636. package/types/server/createRoutesManifest.d.ts +3 -3
  637. package/types/server/createRoutesManifest.d.ts.map +1 -1
  638. package/types/server/getServerManifest.d.ts +1 -1
  639. package/types/server/getServerManifest.d.ts.map +1 -1
  640. package/types/utils/cleanUrl.d.ts.map +1 -0
  641. package/types/utils/platform.d.ts.map +1 -0
  642. package/types/utils/serverContext.d.ts +14 -0
  643. package/types/utils/serverContext.d.ts.map +1 -0
  644. package/types/utils/useConstant.d.ts +2 -0
  645. package/types/utils/useConstant.d.ts.map +1 -0
  646. package/types/vite/DevHead.d.ts +2 -0
  647. package/types/vite/DevHead.d.ts.map +1 -0
  648. package/types/vite/plugins/SSRCSSPlugin.d.ts +0 -1
  649. package/types/vite/plugins/SSRCSSPlugin.d.ts.map +1 -1
  650. package/types/vite/plugins/fileSystemRouterPlugin.d.ts.map +1 -1
  651. package/types/zero/useQuery.d.ts.map +1 -1
  652. package/dist/cjs/getLinkingConfig.js.map +0 -6
  653. package/dist/cjs/getLinkingConfig.native.js.map +0 -6
  654. package/dist/cjs/useScreens.js.map +0 -6
  655. package/dist/cjs/useScreens.native.js.map +0 -6
  656. package/dist/esm/Route.mjs.map +0 -1
  657. package/dist/esm/cleanUrl.mjs.map +0 -1
  658. package/dist/esm/createRoute.mjs.map +0 -1
  659. package/dist/esm/getLinkingConfig.js.map +0 -6
  660. package/dist/esm/getLinkingConfig.mjs.map +0 -1
  661. package/dist/esm/getLinkingConfig.native.js.map +0 -6
  662. package/dist/esm/getRoutes.mjs.map +0 -1
  663. package/dist/esm/imperative-api.mjs.map +0 -1
  664. package/dist/esm/matchers.mjs.map +0 -1
  665. package/dist/esm/platform.mjs.map +0 -1
  666. package/dist/esm/sortRoutes.mjs.map +0 -1
  667. package/dist/esm/useNavigation.mjs.map +0 -1
  668. package/dist/esm/useScreens.js.map +0 -6
  669. package/dist/esm/useScreens.mjs.map +0 -1
  670. package/dist/esm/useScreens.native.js.map +0 -6
  671. package/dist/esm/useViteRoutes.mjs.map +0 -1
  672. package/types/Route.d.ts.map +0 -1
  673. package/types/cleanUrl.d.ts.map +0 -1
  674. package/types/createRoute.d.ts.map +0 -1
  675. package/types/getLinkingConfig.d.ts.map +0 -1
  676. package/types/getRoutes.d.ts.map +0 -1
  677. package/types/imperative-api.d.ts +0 -3
  678. package/types/imperative-api.d.ts.map +0 -1
  679. package/types/matchers.d.ts.map +0 -1
  680. package/types/platform.d.ts.map +0 -1
  681. package/types/sortRoutes.d.ts.map +0 -1
  682. package/types/useNavigation.d.ts.map +0 -1
  683. package/types/useScreens.d.ts.map +0 -1
  684. package/types/useViteRoutes.d.ts.map +0 -1
  685. /package/dist/cjs/{Route.cjs → router/Route.cjs} +0 -0
  686. /package/dist/cjs/{Route.js → router/Route.js} +0 -0
  687. /package/dist/cjs/{Route.native.js → router/Route.native.js} +0 -0
  688. /package/dist/cjs/{matchers.cjs → router/matchers.cjs} +0 -0
  689. /package/dist/cjs/{matchers.js → router/matchers.js} +0 -0
  690. /package/dist/cjs/{matchers.native.js → router/matchers.native.js} +0 -0
  691. /package/dist/cjs/{sortRoutes.cjs → router/sortRoutes.cjs} +0 -0
  692. /package/dist/cjs/{sortRoutes.js → router/sortRoutes.js} +0 -0
  693. /package/dist/cjs/{sortRoutes.native.js → router/sortRoutes.native.js} +0 -0
  694. /package/dist/cjs/{useNavigation.cjs → router/useNavigation.cjs} +0 -0
  695. /package/dist/cjs/{useNavigation.js → router/useNavigation.js} +0 -0
  696. /package/dist/cjs/{useNavigation.native.js → router/useNavigation.native.js} +0 -0
  697. /package/dist/cjs/{useViteRoutes.cjs → router/useViteRoutes.cjs} +0 -0
  698. /package/dist/cjs/{useViteRoutes.js → router/useViteRoutes.js} +0 -0
  699. /package/dist/cjs/{useViteRoutes.native.js → router/useViteRoutes.native.js} +0 -0
  700. /package/dist/cjs/{platform.cjs → utils/platform.cjs} +0 -0
  701. /package/dist/cjs/{platform.js → utils/platform.js} +0 -0
  702. /package/dist/cjs/{platform.native.js → utils/platform.native.js} +0 -0
  703. /package/dist/esm/{Route.js → router/Route.js} +0 -0
  704. /package/dist/esm/{Route.mjs → router/Route.mjs} +0 -0
  705. /package/dist/esm/{Route.native.js → router/Route.native.js} +0 -0
  706. /package/dist/esm/{matchers.js → router/matchers.js} +0 -0
  707. /package/dist/esm/{matchers.mjs → router/matchers.mjs} +0 -0
  708. /package/dist/esm/{matchers.native.js → router/matchers.native.js} +0 -0
  709. /package/dist/esm/{sortRoutes.js → router/sortRoutes.js} +0 -0
  710. /package/dist/esm/{sortRoutes.mjs → router/sortRoutes.mjs} +0 -0
  711. /package/dist/esm/{sortRoutes.native.js → router/sortRoutes.native.js} +0 -0
  712. /package/dist/esm/{useNavigation.js → router/useNavigation.js} +0 -0
  713. /package/dist/esm/{useNavigation.mjs → router/useNavigation.mjs} +0 -0
  714. /package/dist/esm/{useNavigation.native.js → router/useNavigation.native.js} +0 -0
  715. /package/dist/esm/{useViteRoutes.js → router/useViteRoutes.js} +0 -0
  716. /package/dist/esm/{useViteRoutes.mjs → router/useViteRoutes.mjs} +0 -0
  717. /package/dist/esm/{useViteRoutes.native.js → router/useViteRoutes.native.js} +0 -0
  718. /package/dist/esm/{platform.js → utils/platform.js} +0 -0
  719. /package/dist/esm/{platform.mjs → utils/platform.mjs} +0 -0
  720. /package/dist/esm/{platform.native.js → utils/platform.native.js} +0 -0
  721. /package/src/{matchers.ts → router/matchers.ts} +0 -0
  722. /package/src/{sortRoutes.ts → router/sortRoutes.ts} +0 -0
  723. /package/src/{useNavigation.ts → router/useNavigation.ts} +0 -0
  724. /package/src/{platform.ts → utils/platform.ts} +0 -0
  725. /package/types/{matchers.d.ts → router/matchers.d.ts} +0 -0
  726. /package/types/{sortRoutes.d.ts → router/sortRoutes.d.ts} +0 -0
  727. /package/types/{useNavigation.d.ts → router/useNavigation.d.ts} +0 -0
  728. /package/types/{useScreens.d.ts → router/useScreens.d.ts} +0 -0
  729. /package/types/{cleanUrl.d.ts → utils/cleanUrl.d.ts} +0 -0
  730. /package/types/{platform.d.ts → utils/platform.d.ts} +0 -0
package/src/Root.tsx CHANGED
@@ -1,4 +1,3 @@
1
- import { SafeAreaProviderCompat } from '@react-navigation/elements'
2
1
  import {
3
2
  DarkTheme,
4
3
  DefaultTheme,
@@ -6,13 +5,14 @@ import {
6
5
  type NavigationContainerProps,
7
6
  } from '@react-navigation/native'
8
7
  import { useColorScheme } from '@vxrn/universal-color-scheme'
9
- import { Fragment, useEffect, useState, type FunctionComponent, type ReactNode } from 'react'
10
- import UpstreamNavigationContainer from './fork/NavigationContainer'
8
+ import { useEffect, useState, type FunctionComponent, type ReactNode } from 'react'
9
+ import { NavigationContainer as UpstreamNavigationContainer } from './fork/NavigationContainer'
11
10
  import { getURL } from './getURL'
12
11
  import { ServerLocationContext } from './router/serverLocationContext'
13
12
  import { useInitializeOneRouter } from './router/useInitializeOneRouter'
14
- import type { GlobbedRouteImports, RenderAppProps } from './types'
15
- import { useViteRoutes } from './useViteRoutes'
13
+ import { useViteRoutes } from './router/useViteRoutes'
14
+ import type { GlobbedRouteImports } from './types'
15
+ import { getServerContext } from './utils/serverContext'
16
16
  import { PreloadLinks } from './views/PreloadLinks'
17
17
  import { RootErrorBoundary } from './views/RootErrorBoundary'
18
18
  import { ScrollRestoration } from './views/ScrollRestoration'
@@ -21,15 +21,19 @@ import type { One } from './vite/types'
21
21
 
22
22
  if (typeof window !== 'undefined') {
23
23
  // @ts-ignore TODO: hard coded for demo app
24
- window.__getReactRefreshIgnoredExports = () => ['feedCardQuery', 'feedCardReplyQuery', 'loader']
24
+ window.__getReactRefreshIgnoredExports = () => [
25
+ 'feedCardQuery',
26
+ 'feedCardReplyQuery',
27
+ 'loader',
28
+ ]
25
29
  }
26
30
 
27
- type RootProps = RenderAppProps &
28
- Omit<InnerProps, 'context'> & {
29
- isClient?: boolean
30
- routes: GlobbedRouteImports
31
- routeOptions?: One.RouteOptions
32
- }
31
+ type RootProps = Omit<InnerProps, 'context'> & {
32
+ path: string
33
+ isClient?: boolean
34
+ routes: GlobbedRouteImports
35
+ routeOptions?: One.RouteOptions
36
+ }
33
37
 
34
38
  type InnerProps = {
35
39
  context: One.RouteContext
@@ -51,14 +55,7 @@ type InnerProps = {
51
55
  }
52
56
 
53
57
  export function Root(props: RootProps) {
54
- const {
55
- path,
56
- routes,
57
- routeOptions,
58
- wrapper: ParentWrapper = Fragment,
59
- isClient,
60
- navigationContainerProps,
61
- } = props
58
+ const { path, routes, routeOptions, isClient, navigationContainerProps } = props
62
59
 
63
60
  // ⚠️ <StrictMode> breaks routing!
64
61
  const context = useViteRoutes(routes, routeOptions, globalThis['__vxrnVersion'])
@@ -72,28 +69,6 @@ export function Root(props: RootProps) {
72
69
 
73
70
  // const headContext = useMemo(() => globalThis['vxrn__headContext__'] || {}, [])
74
71
 
75
- /*
76
- * Due to static rendering we need to wrap these top level views in second wrapper
77
- * View's like <GestureHandlerRootView /> generate a <div> so if the parent wrapper
78
- * is a HTML document, we need to ensure its inside the <body>
79
- */
80
- const wrapper = (children: any) => {
81
- return (
82
- <ParentWrapper>
83
- {/* default scroll restoration to on, but users can configure it by importing and using themselves */}
84
- <ScrollRestoration />
85
- {/* <GestureHandlerRootView> */}
86
- <SafeAreaProviderCompat>
87
- {children}
88
-
89
- {/* Users can override this by adding another StatusBar element anywhere higher in the component tree. */}
90
- {/* {!hasViewControllerBasedStatusBarAppearance && <StatusBar style="auto" />} */}
91
- </SafeAreaProviderCompat>
92
- {/* </GestureHandlerRootView> */}
93
- </ParentWrapper>
94
- )
95
- }
96
-
97
72
  const Component = store.rootComponent
98
73
 
99
74
  if (!Component) {
@@ -116,7 +91,21 @@ export function Root(props: RootProps) {
116
91
  {...navigationContainerProps}
117
92
  >
118
93
  <ServerLocationContext.Provider value={location}>
119
- {wrapper(<Component />)}
94
+ {/* <GestureHandlerRootView> */}
95
+ {/*
96
+ * Due to static rendering we need to wrap these top level views in second wrapper
97
+ * View's like <GestureHandlerRootView /> generate a <div> so if the parent wrapper
98
+ * is a HTML document, we need to ensure its inside the <body>
99
+ */}
100
+ <>
101
+ {/* default scroll restoration to on, but users can configure it by importing and using themselves */}
102
+ <ScrollRestoration />
103
+ <Component />
104
+
105
+ {/* Users can override this by adding another StatusBar element anywhere higher in the component tree. */}
106
+ </>
107
+ {/* {!hasViewControllerBasedStatusBarAppearance && <StatusBar style="auto" />} */}
108
+ {/* </GestureHandlerRootView> */}
120
109
  </ServerLocationContext.Provider>
121
110
  </UpstreamNavigationContainer>
122
111
  <PreloadLinks key="preload-links" />
@@ -125,7 +114,7 @@ export function Root(props: RootProps) {
125
114
  )
126
115
 
127
116
  if (isClient) {
128
- if (globalThis['__vxrnHydrateMode__'] === 'spa') {
117
+ if (getServerContext()?.mode === 'spa') {
129
118
  // eslint-disable-next-line react-hooks/rules-of-hooks
130
119
  const [show, setShow] = useState(false)
131
120
 
package/src/cli/build.ts CHANGED
@@ -12,7 +12,7 @@ import {
12
12
  build as vxrnBuild,
13
13
  type ClientManifestEntry,
14
14
  } from 'vxrn'
15
- import { getLoaderPath, getPreloadPath } from '../cleanUrl'
15
+ import { getLoaderPath, getPreloadPath } from '../utils/cleanUrl'
16
16
  import * as constants from '../constants'
17
17
  import type { RouteInfo } from '../server/createRoutesManifest'
18
18
  import type { LoaderProps, RenderApp } from '../types'
package/src/constants.ts CHANGED
@@ -10,3 +10,7 @@ export const LOADER_JS_POSTFIX_REGEX = new RegExp(LOADER_JS_POSTFIX_REGEX_STRING
10
10
  export const LOADER_JS_POSTFIX = `_${CACHE_KEY}${LOADER_JS_POSTFIX_UNCACHED}`
11
11
 
12
12
  export const PRELOAD_JS_POSTFIX = `_${CACHE_KEY}_preload.js`
13
+
14
+ // safari insanely aggressive caching
15
+ export const VIRTUAL_SSR_CSS_ENTRY = `virtual:ssr-css.css`
16
+ export const VIRTUAL_SSR_CSS_HREF = `/@id/__x00__${VIRTUAL_SSR_CSS_ENTRY}`
@@ -11,7 +11,7 @@ LogBox.ignoreLogs([/Sending .* with no listeners registered/])
11
11
 
12
12
  export function createApp(options: CreateAppProps): void {
13
13
  const App = () => {
14
- let contents = <Root mode="spa" isClient routes={options.routes} path="/" />
14
+ let contents = <Root isClient routes={options.routes} path="/" />
15
15
 
16
16
  // if (process.env.ONE_ENABLE_REACT_SCAN) {
17
17
  // console.warn(`React Scan enabled with options: ${process.env.ONE_ENABLE_REACT_SCAN}`)
package/src/createApp.tsx CHANGED
@@ -6,91 +6,33 @@ import { resolveClientLoader } from './clientLoaderResolver'
6
6
  import { render } from './render'
7
7
  import { renderToString } from './server-render'
8
8
  import type { RenderAppProps } from './types'
9
- import { rand } from './utils/rand'
10
9
  // @ts-ignore
11
10
  import ReactDOMServer from 'react-dom/server.browser'
11
+ import {
12
+ getServerContext,
13
+ SERVER_CONTEXT_POST_RENDER_STRING,
14
+ setServerContext,
15
+ } from './utils/serverContext'
12
16
 
13
17
  export type CreateAppProps = { routes: Record<string, () => Promise<unknown>> }
14
18
 
15
- // replacing Vites since we control the root
16
- function DevHead({ ssrID }: { ssrID: string }) {
17
- if (process.env.NODE_ENV === 'development') {
18
- return (
19
- <>
20
- <link rel="preload" href={ssrID} as="style" />
21
- <link rel="stylesheet" href={ssrID} data-ssr-css />
22
- <script
23
- type="module"
24
- dangerouslySetInnerHTML={{
25
- __html: `import { createHotContext } from "/@vite/client";
26
- const hot = createHotContext("/__clear_ssr_css");
27
- hot.on("vite:afterUpdate", () => {
28
- document
29
- .querySelectorAll("[data-ssr-css]")
30
- .forEach(node => node.remove());
31
- });`,
32
- }}
33
- />
34
- <script
35
- type="module"
36
- dangerouslySetInnerHTML={{
37
- __html: `import { injectIntoGlobalHook } from "/@react-refresh";
38
- injectIntoGlobalHook(window);
39
- window.$RefreshReg$ = () => {};
40
- window.$RefreshSig$ = () => (type) => type;`,
41
- }}
42
- />
43
- </>
44
- )
45
- }
46
-
47
- return null
48
- }
49
-
50
19
  export function createApp(options: CreateAppProps) {
51
20
  if (import.meta.env.SSR) {
52
21
  return {
53
22
  options,
54
23
  render: async (props: RenderAppProps) => {
55
- const App = () => {
56
- let { loaderData, loaderProps, css, mode } = props
57
-
58
- return (
59
- <html lang="en-US">
60
- <head>
61
- {process.env.NODE_ENV === 'development' ? (
62
- <DevHead ssrID={`/@id/__x00__virtual:ssr-css.css?t=${rand()}`} />
63
- ) : null}
64
-
65
- <script
66
- dangerouslySetInnerHTML={{
67
- __html: `globalThis['global'] = globalThis`,
68
- }}
69
- />
24
+ let { loaderData, loaderProps, css, mode, loaderServerData } = props
25
+
26
+ setServerContext({
27
+ postRenderData: loaderServerData,
28
+ loaderData,
29
+ loaderProps,
30
+ mode,
31
+ css,
32
+ })
70
33
 
71
- {css?.map((file) => {
72
- return <link key={file} rel="stylesheet" href={file} />
73
- })}
74
- </head>
75
- <body>
76
- <Root routes={options.routes} {...props} />
77
- </body>
78
- {/* could this just be loaded via the same loader.js? as a preload? i think so... */}
79
- <script
80
- async
81
- // @ts-ignore
82
- href="one-loader-data"
83
- dangerouslySetInnerHTML={{
84
- __html: `
85
- globalThis['__vxrnPostRenderData__'] = { __vxrn__: 'post-render' };
86
- globalThis['__vxrnLoaderData__'] = ${JSON.stringify(loaderData)};
87
- globalThis['__vxrnLoaderProps__'] = ${JSON.stringify(loaderProps)};
88
- globalThis['__vxrnHydrateMode__'] = ${JSON.stringify(mode)};
89
- `,
90
- }}
91
- />
92
- </html>
93
- )
34
+ const App = () => {
35
+ return <Root routes={options.routes} {...props} />
94
36
  }
95
37
 
96
38
  AppRegistry.registerComponent('App', () => App)
@@ -124,11 +66,14 @@ export function createApp(options: CreateAppProps) {
124
66
  }
125
67
 
126
68
  // now we can grab and serialize in our zero queries
127
- const serverData = globalThis['__vxrnServerData__']
69
+ const serverData = getServerContext()?.postRenderData
128
70
  if (serverData) {
129
71
  const hasQueryData = Object.keys(serverData).length
130
72
  if (hasQueryData) {
131
- html = html.replace(`{ __vxrn__: 'post-render' }`, JSON.stringify(serverData))
73
+ html = html.replace(
74
+ JSON.stringify(SERVER_CONTEXT_POST_RENDER_STRING),
75
+ JSON.stringify(serverData)
76
+ )
132
77
  }
133
78
  }
134
79
 
@@ -142,14 +87,10 @@ export function createApp(options: CreateAppProps) {
142
87
 
143
88
  return rootLayoutImport
144
89
  .then(() => {
145
- resolveClientLoader({
146
- loaderData: globalThis['__vxrnLoaderData__'],
147
- loaderServerData: globalThis['__vxrnLoaderServerData__'],
148
- loaderProps: globalThis['__vxrnLoaderProps__'],
149
- })
90
+ resolveClientLoader(getServerContext() || {})
150
91
  .then(() => {
151
92
  // on client we just render
152
- render(<Root mode="spa" isClient routes={options.routes} path={window.location.href} />)
93
+ render(<Root isClient routes={options.routes} path={window.location.href} />)
153
94
  })
154
95
  .catch((err) => {
155
96
  console.error(`Error running client loader resolver "onClientLoaderResolve":`, err)
@@ -1,7 +1,8 @@
1
- import { getPathFromLoaderPath } from './cleanUrl'
1
+ import { extname } from 'node:path'
2
+ import { getPathFromLoaderPath } from './utils/cleanUrl'
2
3
  import { LOADER_JS_POSTFIX_UNCACHED } from './constants'
3
4
  import type { Middleware, MiddlewareContext } from './createMiddleware'
4
- import type { RouteNode } from './Route'
5
+ import type { RouteNode } from './router/Route'
5
6
  import type { RouteInfo, RouteInfoCompiled } from './server/createRoutesManifest'
6
7
  import type { LoaderProps } from './types'
7
8
  import { getHonoPath } from './utils/getHonoPath'
@@ -1,40 +1,63 @@
1
- // Forked from React Navigation
1
+ /**
2
+ * This file is copied from the react-navigation repo:
3
+ * https://github.com/react-navigation/react-navigation/blob/%40react-navigation/core%407.1.2/packages/core/src/getPathFromState.tsx
4
+ *
5
+ * Please refrain from making changes to this file, as it will make merging updates from the upstream harder.
6
+ * All modifications except formatting should be marked with `// @modified` comment.
7
+ */
2
8
 
3
9
  import {
4
10
  BaseNavigationContainer,
5
- DefaultTheme,
6
- type DocumentTitleOptions,
7
- LinkingContext,
8
- type LinkingOptions,
9
- LocaleDirContext,
10
- type LocaleDirection,
11
+ getActionFromState,
12
+ getPathFromState,
13
+ getStateFromPath,
11
14
  type NavigationContainerProps,
12
15
  type NavigationContainerRef,
16
+ type NavigationState,
13
17
  type ParamListBase,
14
- type Theme,
15
18
  ThemeProvider,
16
- getActionFromState,
17
- getPathFromState,
18
- getStateFromPath,
19
19
  validatePathConfig,
20
- } from '@react-navigation/native'
20
+ } from '@react-navigation/core'
21
21
  import * as React from 'react'
22
-
23
- import useLinking from './useLinking'
24
22
  import { I18nManager } from 'react-native'
23
+ import useLatestCallback from 'use-latest-callback'
24
+
25
+ // @modified - start
26
+ // import { LinkingContext } from './LinkingContext'
27
+ // import { LocaleDirContext } from './LocaleDirContext'
28
+ // import { DefaultTheme } from './theming/DefaultTheme'
29
+ // import type { DocumentTitleOptions, LinkingOptions, LocaleDirection } from './types'
30
+ // import { UnhandledLinkingContext } from './UnhandledLinkingContext'
31
+ import {
32
+ LinkingContext,
33
+ LocaleDirContext,
34
+ DefaultTheme,
35
+ type DocumentTitleOptions,
36
+ type LinkingOptions,
37
+ type LocaleDirection,
38
+ UNSTABLE_UnhandledLinkingContext as UnhandledLinkingContext,
39
+ } from '@react-navigation/native'
40
+ // @modified - end
25
41
  import { useBackButton } from './useBackButton'
26
42
  import { useDocumentTitle } from './useDocumentTitle'
43
+ import { useLinking } from './useLinking'
27
44
  import { useThenable } from './useThenable'
28
45
 
46
+ declare global {
47
+ // eslint-disable-next-line no-var
48
+ var REACT_NAVIGATION_DEVTOOLS: WeakMap<
49
+ NavigationContainerRef<any>,
50
+ { readonly linking: LinkingOptions<any> }
51
+ >
52
+ }
53
+
29
54
  globalThis.REACT_NAVIGATION_DEVTOOLS = new WeakMap()
30
55
 
31
- type Props<ParamList extends object> = NavigationContainerProps & {
56
+ type Props<ParamList extends {}> = NavigationContainerProps & {
32
57
  direction?: LocaleDirection
33
- documentTitle?: DocumentTitleOptions
34
- fallback?: React.ReactNode
35
58
  linking?: LinkingOptions<ParamList>
36
- onReady?: () => void
37
- theme?: Theme
59
+ fallback?: React.ReactNode
60
+ documentTitle?: DocumentTitleOptions
38
61
  }
39
62
 
40
63
  /**
@@ -44,7 +67,9 @@ type Props<ParamList extends object> = NavigationContainerProps & {
44
67
  * @param props.initialState Initial state object for the navigation tree. When deep link handling is enabled, this will override deep links when specified. Make sure that you don't specify an `initialState` when there's a deep link (`Linking.getInitialURL()`).
45
68
  * @param props.onReady Callback which is called after the navigation tree mounts.
46
69
  * @param props.onStateChange Callback which is called with the latest navigation state when it changes.
47
- * @param props.theme Theme object for the navigators.
70
+ * @param props.onUnhandledAction Callback which is called when an action is not handled.
71
+ * @param props.direction Text direction of the components. Defaults to `'ltr'`.
72
+ * @param props.theme Theme object for the UI elements.
48
73
  * @param props.linking Options for deep linking. Deep link handling is enabled when this prop is provided, unless `linking.enabled` is `false`.
49
74
  * @param props.fallback Fallback component to render until we have finished getting initial state when linking is enabled. Defaults to `null`.
50
75
  * @param props.documentTitle Options to configure the document title on Web. Updating document title is handled by default unless `documentTitle.enabled` is `false`.
@@ -59,6 +84,7 @@ function NavigationContainerInner(
59
84
  fallback = null,
60
85
  documentTitle,
61
86
  onReady,
87
+ onStateChange,
62
88
  ...rest
63
89
  }: Props<ParamListBase>,
64
90
  ref?: React.Ref<NavigationContainerRef<ParamListBase> | null>
@@ -74,12 +100,50 @@ function NavigationContainerInner(
74
100
  useBackButton(refContainer)
75
101
  useDocumentTitle(refContainer, documentTitle)
76
102
 
77
- const { getInitialState } = useLinking(refContainer, {
78
- enabled: isLinkingEnabled,
79
- prefixes: [],
80
- ...linking,
103
+ const [lastUnhandledLink, setLastUnhandledLink] = React.useState<string | undefined>()
104
+
105
+ const { getInitialState } = useLinking(
106
+ refContainer,
107
+ {
108
+ enabled: isLinkingEnabled,
109
+ prefixes: [],
110
+ ...linking,
111
+ },
112
+ setLastUnhandledLink
113
+ )
114
+
115
+ const linkingContext = React.useMemo(() => ({ options: linking }), [linking])
116
+
117
+ const unhandledLinkingContext = React.useMemo(
118
+ () => ({ lastUnhandledLink, setLastUnhandledLink }),
119
+ [lastUnhandledLink, setLastUnhandledLink]
120
+ )
121
+
122
+ const onReadyForLinkingHandling = useLatestCallback(() => {
123
+ // If the screen path matches lastUnhandledLink, we do not track it
124
+ const path = refContainer.current?.getCurrentRoute()?.path
125
+ setLastUnhandledLink((previousLastUnhandledLink) => {
126
+ if (previousLastUnhandledLink === path) {
127
+ return undefined
128
+ }
129
+ return previousLastUnhandledLink
130
+ })
131
+ onReady?.()
81
132
  })
82
133
 
134
+ const onStateChangeForLinkingHandling = useLatestCallback(
135
+ (state: Readonly<NavigationState> | undefined) => {
136
+ // If the screen path matches lastUnhandledLink, we do not track it
137
+ const path = refContainer.current?.getCurrentRoute()?.path
138
+ setLastUnhandledLink((previousLastUnhandledLink) => {
139
+ if (previousLastUnhandledLink === path) {
140
+ return undefined
141
+ }
142
+ return previousLastUnhandledLink
143
+ })
144
+ onStateChange?.(state)
145
+ }
146
+ )
83
147
  // Add additional linking related info to the ref
84
148
  // This will be used by the devtools
85
149
  React.useEffect(() => {
@@ -103,38 +167,36 @@ function NavigationContainerInner(
103
167
 
104
168
  React.useImperativeHandle(ref, () => refContainer.current)
105
169
 
106
- const linkingContext = React.useMemo(() => ({ options: linking }), [linking])
170
+ const isLinkingReady = rest.initialState != null || !isLinkingEnabled || isResolved
107
171
 
108
- React.useEffect(() => {
109
- onReady?.()
110
- }, [onReady])
111
-
112
- if (!isResolved) {
172
+ if (!isLinkingReady) {
173
+ // This is temporary until we have Suspense for data-fetching
174
+ // Then the fallback will be handled by a parent `Suspense` component
113
175
  return <ThemeProvider value={theme}>{fallback}</ThemeProvider>
114
176
  }
115
177
 
116
178
  return (
117
179
  <LocaleDirContext.Provider value={direction}>
118
- <LinkingContext.Provider value={linkingContext}>
119
- <ThemeProvider value={theme}>
180
+ <UnhandledLinkingContext.Provider value={unhandledLinkingContext}>
181
+ <LinkingContext.Provider value={linkingContext}>
120
182
  <BaseNavigationContainer
121
183
  {...rest}
122
184
  theme={theme}
185
+ onReady={onReadyForLinkingHandling}
186
+ onStateChange={onStateChangeForLinkingHandling}
187
+ initialState={rest.initialState == null ? initialState : rest.initialState}
123
188
  ref={refContainer}
124
- initialState={initialState ?? rest.initialState}
125
189
  />
126
- </ThemeProvider>
127
- </LinkingContext.Provider>
190
+ </LinkingContext.Provider>
191
+ </UnhandledLinkingContext.Provider>
128
192
  </LocaleDirContext.Provider>
129
193
  )
130
194
  }
131
195
 
132
- const NavigationContainer = React.forwardRef(NavigationContainerInner) as <
133
- RootParamList extends object = ReactNavigation.RootParamList,
196
+ export const NavigationContainer = React.forwardRef(NavigationContainerInner) as <
197
+ RootParamList extends {} = ReactNavigation.RootParamList
134
198
  >(
135
199
  props: Props<RootParamList> & {
136
200
  ref?: React.Ref<NavigationContainerRef<RootParamList>>
137
201
  }
138
202
  ) => React.ReactElement
139
-
140
- export default NavigationContainer
@@ -1,10 +1,16 @@
1
+ /**
2
+ * This file is copied from the react-navigation repo:
3
+ * https://github.com/react-navigation/react-navigation/blob/%40react-navigation/core%407.1.2/packages/native/src/createMemoryHistory.tsx
4
+ *
5
+ * Please refrain from making changes to this file, as it will make merging updates from the upstream harder.
6
+ * All modifications except formatting should be marked with `// @modified` comment.
7
+ *
8
+ * No modifications currently, copied only in order to use a custom `useLinking` function.
9
+ */
10
+
1
11
  import type { NavigationState } from '@react-navigation/core'
2
12
  import { nanoid } from 'nanoid/non-secure'
3
13
 
4
- // forked from @react-navigation/native/src/createMemoryHistory.tsx
5
- // NOTE there was a change we made for search params, but we've fixed it upstream
6
- // we can revert this back to the react-navigation one if we want
7
-
8
14
  type HistoryRecord = {
9
15
  // Unique identifier for this record to match it with window.history.state
10
16
  id: string
@@ -14,7 +20,7 @@ type HistoryRecord = {
14
20
  path: string
15
21
  }
16
22
 
17
- export default function createMemoryHistory() {
23
+ export function createMemoryHistory() {
18
24
  let index = 0
19
25
  let items: HistoryRecord[] = []
20
26
 
@@ -91,12 +97,7 @@ export default function createMemoryHistory() {
91
97
  // Need to keep the hash part of the path if there was no previous history entry
92
98
  // or the previous history entry had the same path
93
99
  let pathWithHash = path
94
-
95
- // NOTE: this was the wrong fix
96
- // if (window.location.search) {
97
- // console.log('replacing!')
98
- // pathWithHash = pathWithHash + window.location.search
99
- // }
100
+ const hash = pathWithHash.includes('#') ? '' : location.hash
100
101
 
101
102
  if (!items.length || items.findIndex((item) => item.id === id) < 0) {
102
103
  // There are two scenarios for creating an array with only one history record:
@@ -105,12 +106,13 @@ export default function createMemoryHistory() {
105
106
  // the page when navigating forward in history.
106
107
  // - This is the first time any state modifications are done
107
108
  // So we need to push the entry as there's nothing to replace
108
- pathWithHash = pathWithHash + location.hash
109
+
110
+ pathWithHash = pathWithHash + hash
109
111
  items = [{ path: pathWithHash, state, id }]
110
112
  index = 0
111
113
  } else {
112
114
  if (items[index].path === path) {
113
- pathWithHash = pathWithHash + location.hash
115
+ pathWithHash = pathWithHash + hash
114
116
  }
115
117
  items[index] = { path, state, id }
116
118
  }