one 1.2.63 → 1.2.64

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 (127) hide show
  1. package/dist/cjs/cli/build.cjs +10 -10
  2. package/dist/cjs/cli/build.js +10 -8
  3. package/dist/cjs/cli/build.js.map +1 -1
  4. package/dist/cjs/cli/build.native.js +15 -15
  5. package/dist/cjs/cli/build.native.js.map +1 -1
  6. package/dist/cjs/cli/buildPage.cjs +12 -10
  7. package/dist/cjs/cli/buildPage.js +11 -9
  8. package/dist/cjs/cli/buildPage.js.map +1 -1
  9. package/dist/cjs/cli/buildPage.native.js +12 -10
  10. package/dist/cjs/cli/buildPage.native.js.map +1 -1
  11. package/dist/cjs/createHandleRequest.cjs +1 -1
  12. package/dist/cjs/createHandleRequest.js +1 -1
  13. package/dist/cjs/createHandleRequest.js.map +1 -1
  14. package/dist/cjs/createHandleRequest.native.js +1 -1
  15. package/dist/cjs/createHandleRequest.native.js.map +1 -1
  16. package/dist/cjs/fork/__tests__/getStateFromPath.test.cjs +40 -4
  17. package/dist/cjs/fork/__tests__/getStateFromPath.test.js +39 -11
  18. package/dist/cjs/fork/__tests__/getStateFromPath.test.js.map +1 -1
  19. package/dist/cjs/fork/__tests__/getStateFromPath.test.native.js +40 -4
  20. package/dist/cjs/fork/__tests__/getStateFromPath.test.native.js.map +1 -1
  21. package/dist/cjs/fork/getPathFromState.cjs +1 -1
  22. package/dist/cjs/fork/getPathFromState.js +1 -1
  23. package/dist/cjs/fork/getPathFromState.js.map +1 -1
  24. package/dist/cjs/fork/getPathFromState.native.js +1 -1
  25. package/dist/cjs/fork/getPathFromState.native.js.map +1 -1
  26. package/dist/cjs/fork/getStateFromPath.cjs +26 -10
  27. package/dist/cjs/fork/getStateFromPath.js +24 -5
  28. package/dist/cjs/fork/getStateFromPath.js.map +1 -1
  29. package/dist/cjs/fork/getStateFromPath.native.js +27 -11
  30. package/dist/cjs/fork/getStateFromPath.native.js.map +1 -1
  31. package/dist/cjs/fork/getStateFromPath.test.cjs +26 -12
  32. package/dist/cjs/fork/getStateFromPath.test.js +24 -12
  33. package/dist/cjs/fork/getStateFromPath.test.js.map +1 -1
  34. package/dist/cjs/fork/getStateFromPath.test.native.js +26 -12
  35. package/dist/cjs/fork/getStateFromPath.test.native.js.map +1 -1
  36. package/dist/cjs/fork/useLinking.cjs +2 -1
  37. package/dist/cjs/fork/useLinking.js +2 -2
  38. package/dist/cjs/fork/useLinking.js.map +1 -1
  39. package/dist/cjs/server/oneServe.cjs +2 -2
  40. package/dist/cjs/server/oneServe.js +2 -2
  41. package/dist/cjs/server/oneServe.js.map +1 -1
  42. package/dist/cjs/server/oneServe.native.js +2 -2
  43. package/dist/cjs/server/oneServe.native.js.map +1 -1
  44. package/dist/cjs/views/Navigator.cjs +6 -7
  45. package/dist/cjs/views/Navigator.js +7 -7
  46. package/dist/cjs/views/Navigator.js.map +1 -1
  47. package/dist/cjs/views/Navigator.native.js +4 -5
  48. package/dist/cjs/views/Navigator.native.js.map +1 -1
  49. package/dist/esm/cli/build.js +10 -8
  50. package/dist/esm/cli/build.js.map +1 -1
  51. package/dist/esm/cli/build.mjs +10 -10
  52. package/dist/esm/cli/build.mjs.map +1 -1
  53. package/dist/esm/cli/build.native.js +15 -15
  54. package/dist/esm/cli/build.native.js.map +1 -1
  55. package/dist/esm/cli/buildPage.js +11 -9
  56. package/dist/esm/cli/buildPage.js.map +1 -1
  57. package/dist/esm/cli/buildPage.mjs +12 -10
  58. package/dist/esm/cli/buildPage.mjs.map +1 -1
  59. package/dist/esm/cli/buildPage.native.js +12 -10
  60. package/dist/esm/cli/buildPage.native.js.map +1 -1
  61. package/dist/esm/createHandleRequest.js +1 -1
  62. package/dist/esm/createHandleRequest.js.map +1 -1
  63. package/dist/esm/createHandleRequest.mjs +1 -1
  64. package/dist/esm/createHandleRequest.mjs.map +1 -1
  65. package/dist/esm/createHandleRequest.native.js +1 -1
  66. package/dist/esm/createHandleRequest.native.js.map +1 -1
  67. package/dist/esm/fork/__tests__/getStateFromPath.test.js +39 -11
  68. package/dist/esm/fork/__tests__/getStateFromPath.test.js.map +1 -1
  69. package/dist/esm/fork/__tests__/getStateFromPath.test.mjs +40 -4
  70. package/dist/esm/fork/__tests__/getStateFromPath.test.mjs.map +1 -1
  71. package/dist/esm/fork/__tests__/getStateFromPath.test.native.js +40 -4
  72. package/dist/esm/fork/__tests__/getStateFromPath.test.native.js.map +1 -1
  73. package/dist/esm/fork/getPathFromState.js +1 -1
  74. package/dist/esm/fork/getPathFromState.js.map +1 -1
  75. package/dist/esm/fork/getPathFromState.mjs +1 -1
  76. package/dist/esm/fork/getPathFromState.mjs.map +1 -1
  77. package/dist/esm/fork/getPathFromState.native.js +1 -1
  78. package/dist/esm/fork/getPathFromState.native.js.map +1 -1
  79. package/dist/esm/fork/getStateFromPath.js +24 -5
  80. package/dist/esm/fork/getStateFromPath.js.map +1 -1
  81. package/dist/esm/fork/getStateFromPath.mjs +26 -10
  82. package/dist/esm/fork/getStateFromPath.mjs.map +1 -1
  83. package/dist/esm/fork/getStateFromPath.native.js +27 -11
  84. package/dist/esm/fork/getStateFromPath.native.js.map +1 -1
  85. package/dist/esm/fork/getStateFromPath.test.js +24 -12
  86. package/dist/esm/fork/getStateFromPath.test.js.map +1 -1
  87. package/dist/esm/fork/getStateFromPath.test.mjs +26 -12
  88. package/dist/esm/fork/getStateFromPath.test.mjs.map +1 -1
  89. package/dist/esm/fork/getStateFromPath.test.native.js +26 -12
  90. package/dist/esm/fork/getStateFromPath.test.native.js.map +1 -1
  91. package/dist/esm/fork/useLinking.js +1 -1
  92. package/dist/esm/fork/useLinking.js.map +1 -1
  93. package/dist/esm/fork/useLinking.mjs +2 -1
  94. package/dist/esm/fork/useLinking.mjs.map +1 -1
  95. package/dist/esm/server/oneServe.js +2 -2
  96. package/dist/esm/server/oneServe.js.map +1 -1
  97. package/dist/esm/server/oneServe.mjs +2 -2
  98. package/dist/esm/server/oneServe.mjs.map +1 -1
  99. package/dist/esm/server/oneServe.native.js +2 -2
  100. package/dist/esm/server/oneServe.native.js.map +1 -1
  101. package/dist/esm/views/Navigator.js +7 -11
  102. package/dist/esm/views/Navigator.js.map +1 -1
  103. package/dist/esm/views/Navigator.mjs +6 -7
  104. package/dist/esm/views/Navigator.mjs.map +1 -1
  105. package/dist/esm/views/Navigator.native.js +5 -6
  106. package/dist/esm/views/Navigator.native.js.map +1 -1
  107. package/package.json +9 -9
  108. package/src/cli/build.ts +20 -8
  109. package/src/cli/buildPage.ts +15 -12
  110. package/src/createHandleRequest.ts +3 -1
  111. package/src/fork/__tests__/getStateFromPath.test.tsx +36 -8
  112. package/src/fork/getPathFromState.ts +3 -1
  113. package/src/fork/getStateFromPath.test.ts +15 -3
  114. package/src/fork/getStateFromPath.ts +40 -4
  115. package/src/fork/useLinking.ts +4 -1
  116. package/src/server/oneServe.ts +3 -2
  117. package/src/views/Navigator.tsx +26 -13
  118. package/types/cli/build.d.ts.map +1 -1
  119. package/types/cli/buildPage.d.ts.map +1 -1
  120. package/types/createHandleRequest.d.ts.map +1 -1
  121. package/types/fork/getPathFromState.d.ts.map +1 -1
  122. package/types/fork/getStateFromPath.d.ts.map +1 -1
  123. package/types/fork/useLinking.d.ts +2 -1
  124. package/types/fork/useLinking.d.ts.map +1 -1
  125. package/types/server/oneServe.d.ts.map +1 -1
  126. package/types/views/Navigator.d.ts +12 -2
  127. package/types/views/Navigator.d.ts.map +1 -1
@@ -211,10 +211,12 @@ test('handles leading slash when converting', () => {
211
211
  routes: [
212
212
  {
213
213
  name: 'foo',
214
+ key: 'foo-0',
214
215
  state: {
215
216
  routes: [
216
217
  {
217
218
  name: 'bar',
219
+ key: 'bar-1',
218
220
  params: { count: '42' },
219
221
  path,
220
222
  },
@@ -232,10 +234,12 @@ test('handles ending slash when converting', () => {
232
234
  routes: [
233
235
  {
234
236
  name: 'foo',
237
+ key: 'foo-0',
235
238
  state: {
236
239
  routes: [
237
240
  {
238
241
  name: 'bar',
242
+ key: 'bar-1',
239
243
  params: { count: '42' },
240
244
  path,
241
245
  },
@@ -252,8 +256,9 @@ test('handles route without param', () => {
252
256
  routes: [
253
257
  {
254
258
  name: 'foo',
259
+ key: 'foo-0',
255
260
  state: {
256
- routes: [{ name: 'bar', path }],
261
+ routes: [{ name: 'bar', key: 'bar-1', path }],
257
262
  },
258
263
  },
259
264
  ],
@@ -531,12 +536,14 @@ test('handles parse in nested object for second route depth', () => {
531
536
  routes: [
532
537
  {
533
538
  name: 'Foo',
539
+ key: 'Foo-0',
534
540
  state: {
535
541
  routes: [
536
542
  {
537
543
  name: 'Bar',
544
+ key: 'Bar-1',
538
545
  state: {
539
- routes: [{ name: 'Baz', path }],
546
+ routes: [{ name: 'Baz', key: 'Baz-2', path }],
540
547
  },
541
548
  },
542
549
  ],
@@ -582,12 +589,14 @@ test('handles parse in nested object for second route depth and and path and par
582
589
  routes: [
583
590
  {
584
591
  name: 'Foo',
592
+ key: 'Foo-0',
585
593
  state: {
586
594
  routes: [
587
595
  {
588
596
  name: 'Bar',
597
+ key: 'Bar-1',
589
598
  state: {
590
- routes: [{ name: 'Baz', path }],
599
+ routes: [{ name: 'Baz', key: 'Baz-2', path }],
591
600
  },
592
601
  },
593
602
  ],
@@ -660,15 +669,17 @@ test('handles initialRouteName at top level', () => {
660
669
  const state = {
661
670
  index: 1,
662
671
  routes: [
663
- { name: 'Boo' },
672
+ { name: 'Boo', key: 'Boo-0' },
664
673
  {
665
674
  name: 'Foo',
675
+ key: 'Foo-1',
666
676
  state: {
667
677
  routes: [
668
678
  {
669
679
  name: 'Bar',
680
+ key: 'Bar-2',
670
681
  state: {
671
- routes: [{ name: 'Baz', path }],
682
+ routes: [{ name: 'Baz', key: 'Baz-3', path }],
672
683
  },
673
684
  },
674
685
  ],
@@ -705,16 +716,19 @@ test('handles initialRouteName inside a screen', () => {
705
716
  routes: [
706
717
  {
707
718
  name: 'Foo',
719
+ key: 'Foo-0',
708
720
  state: {
709
721
  index: 1,
710
722
  routes: [
711
723
  {
712
724
  name: 'Foe',
725
+ key: 'Foe-1',
713
726
  },
714
727
  {
715
728
  name: 'Bar',
729
+ key: 'Bar-2',
716
730
  state: {
717
- routes: [{ name: 'Baz', path }],
731
+ routes: [{ name: 'Baz', key: 'Baz-3', path }],
718
732
  },
719
733
  },
720
734
  ],
@@ -751,12 +765,14 @@ test('handles initialRouteName included in path', () => {
751
765
  routes: [
752
766
  {
753
767
  name: 'Foo',
768
+ key: 'Foo-0',
754
769
  state: {
755
770
  routes: [
756
771
  {
757
772
  name: 'Foe',
773
+ key: 'Foe-1',
758
774
  state: {
759
- routes: [{ name: 'Baz', path }],
775
+ routes: [{ name: 'Baz', key: 'Baz-2', path }],
760
776
  },
761
777
  },
762
778
  ],
@@ -1136,12 +1152,14 @@ test('returns matching screen with params if path is empty', () => {
1136
1152
  routes: [
1137
1153
  {
1138
1154
  name: 'Foo',
1155
+ key: 'Foo-0',
1139
1156
  state: {
1140
1157
  routes: [
1141
1158
  {
1142
1159
  name: 'Bar',
1160
+ key: 'Bar-1',
1143
1161
  state: {
1144
- routes: [{ name: 'Qux', params: { foo: 42 }, path }],
1162
+ routes: [{ name: 'Qux', key: 'Qux-2', params: { foo: 42 }, path }],
1145
1163
  },
1146
1164
  },
1147
1165
  ],
@@ -1252,14 +1270,17 @@ test('handles same paths beginnings', () => {
1252
1270
  routes: [
1253
1271
  {
1254
1272
  name: 'Foe',
1273
+ key: 'Foe-0',
1255
1274
  state: {
1256
1275
  index: 1,
1257
1276
  routes: [
1258
1277
  {
1259
1278
  name: 'Foo',
1279
+ key: 'Foo-1',
1260
1280
  },
1261
1281
  {
1262
1282
  name: 'Bis',
1283
+ key: 'Bis-2',
1263
1284
  path,
1264
1285
  },
1265
1286
  ],
@@ -2616,14 +2637,17 @@ test('correctly applies initialRouteName for config with similar route names', (
2616
2637
  routes: [
2617
2638
  {
2618
2639
  name: 'RootTabs',
2640
+ key: 'RootTabs-0',
2619
2641
  state: {
2620
2642
  routes: [
2621
2643
  {
2622
2644
  name: 'HomeTab',
2645
+ key: 'HomeTab-1',
2623
2646
  state: {
2624
2647
  routes: [
2625
2648
  {
2626
2649
  name: 'WeeklyEarnings',
2650
+ key: 'WeeklyEarnings-2',
2627
2651
  path,
2628
2652
  },
2629
2653
  ],
@@ -2672,18 +2696,22 @@ test('correctly applies initialRouteName for config with similar route names v2'
2672
2696
  routes: [
2673
2697
  {
2674
2698
  name: 'RootTabs',
2699
+ key: 'RootTabs-0',
2675
2700
  state: {
2676
2701
  routes: [
2677
2702
  {
2678
2703
  name: 'EarningsTab',
2704
+ key: 'EarningsTab-1',
2679
2705
  state: {
2680
2706
  index: 1,
2681
2707
  routes: [
2682
2708
  {
2683
2709
  name: 'Earnings',
2710
+ key: 'Earnings-2',
2684
2711
  },
2685
2712
  {
2686
2713
  name: 'WeeklyEarnings',
2714
+ key: 'WeeklyEarnings-3',
2687
2715
  path,
2688
2716
  },
2689
2717
  ],
@@ -173,7 +173,9 @@ export function getPathDataFromState<ParamList extends {}>(
173
173
  // Better handle array params
174
174
  const currentParams = Object.fromEntries(
175
175
  Object.entries(route.params!).flatMap(([key, value]) => {
176
- if (key === 'screen' || key === 'params') {
176
+ // Filter out internal navigation params that shouldn't appear in URL
177
+ // 'key' is our deterministic route key used for React reconciliation
178
+ if (key === 'screen' || key === 'params' || key === 'key') {
177
179
  return []
178
180
  }
179
181
 
@@ -42,7 +42,7 @@ describe('baseUrl', () => {
42
42
  const config = getMockConfig(['_layout.tsx', 'bar.tsx', 'index.tsx'])
43
43
 
44
44
  expect(getStateFromPath<object>(path, config)).toEqual({
45
- routes: [{ name: 'bar', path: '/bar' }],
45
+ routes: [{ name: 'bar', path: '/bar', key: 'bar-0' }],
46
46
  })
47
47
 
48
48
  expect(getPathFromState(getStateFromPath<object>(path, config)!, config)).toBe(
@@ -56,7 +56,7 @@ describe('baseUrl', () => {
56
56
  const config = getMockConfig(['_layout.tsx', 'bar.tsx', 'index.tsx'])
57
57
 
58
58
  expect(getStateFromPath<object>(path, config)).toEqual({
59
- routes: [{ name: 'bar', path: '/bar' }],
59
+ routes: [{ name: 'bar', path: '/bar', key: 'bar-0' }],
60
60
  })
61
61
  expect(getPathFromState(getStateFromPath<object>(path, config)!, config)).toBe(
62
62
  '/expo/bar'
@@ -111,6 +111,7 @@ describe('hash', () => {
111
111
  params: {
112
112
  '#': '123',
113
113
  },
114
+ key: 'hello-0',
114
115
  },
115
116
  ],
116
117
  })
@@ -126,6 +127,7 @@ describe('hash', () => {
126
127
  '#': '123',
127
128
  },
128
129
  path: '/hello#123',
130
+ key: '[hello]-0',
129
131
  },
130
132
  ],
131
133
  })
@@ -140,6 +142,7 @@ describe('hash', () => {
140
142
  params: {
141
143
  '#': '123',
142
144
  },
145
+ key: 'index-0',
143
146
  },
144
147
  ],
145
148
  })
@@ -160,6 +163,7 @@ it(`supports spaces`, () => {
160
163
  {
161
164
  name: 'hello world',
162
165
  path: '/hello%20world',
166
+ key: 'hello world-0',
163
167
  },
164
168
  ],
165
169
  })
@@ -172,6 +176,7 @@ it(`supports spaces`, () => {
172
176
  'hello world': 'hello world',
173
177
  },
174
178
  path: '/hello%20world',
179
+ key: '[hello world]-0',
175
180
  },
176
181
  ],
177
182
  })
@@ -247,16 +252,19 @@ it(`adds dynamic route params from all levels of the path`, () => {
247
252
  {
248
253
  name: '[foo]',
249
254
  params: { baz: 'baz', foo: 'foo' },
255
+ key: '[foo]-0',
250
256
  state: {
251
257
  routes: [
252
258
  {
253
259
  name: 'bar',
254
260
  params: { baz: 'baz', foo: 'foo' },
261
+ key: 'bar-1',
255
262
  state: {
256
263
  routes: [
257
264
  {
258
265
  name: '[baz]',
259
266
  params: { baz: 'baz', foo: 'foo' },
267
+ key: '[baz]-2',
260
268
  state: {
261
269
  routes: [
262
270
  {
@@ -266,6 +274,7 @@ it(`adds dynamic route params from all levels of the path`, () => {
266
274
  foo: 'foo',
267
275
  },
268
276
  path: '/foo/bar/baz/other',
277
+ key: 'other-3',
269
278
  },
270
279
  ],
271
280
  },
@@ -291,6 +300,7 @@ it(`handles not-found routes`, () => {
291
300
  'not-found': ['missing-page'],
292
301
  },
293
302
  path: '/missing-page',
303
+ key: '+not-found-0',
294
304
  },
295
305
  ],
296
306
  })
@@ -312,12 +322,13 @@ it(`handles query params`, () => {
312
322
  array: ['1', '2'],
313
323
  },
314
324
  path: '/?test=true&hello=world&array=1&array=2',
325
+ key: 'index-0',
315
326
  },
316
327
  ],
317
328
  })
318
329
  })
319
330
 
320
- it(`handles query params`, () => {
331
+ it(`handles query params (duplicate)`, () => {
321
332
  expect(
322
333
  getStateFromPath(
323
334
  '/?test=true&hello=world&array=1&array=2',
@@ -333,6 +344,7 @@ it(`handles query params`, () => {
333
344
  array: ['1', '2'],
334
345
  },
335
346
  path: '/?test=true&hello=world&array=1&array=2',
347
+ key: 'index-0',
336
348
  },
337
349
  ],
338
350
  })
@@ -99,6 +99,16 @@ export function getStateFromPath<ParamList extends {}>(
99
99
  path: string,
100
100
  options?: Options<ParamList>
101
101
  ): ResultState | undefined {
102
+ // @modified: reset counter for deterministic keys across SSR and hydration
103
+ resetRouteKeyCounter()
104
+
105
+ // @modified: debug logging for hydration fix
106
+ if (process.env.ONE_DEBUG_ROUTER) {
107
+ console.info(
108
+ `[one] getStateFromPath called with path=${path}, isServer=${typeof window === 'undefined'}`
109
+ )
110
+ }
111
+
102
112
  const { initialRoutes, configs, configWithRegexes } = getConfigResources(options)
103
113
 
104
114
  const screens = options?.screens
@@ -652,6 +662,25 @@ const findInitialRoute = (
652
662
  return undefined
653
663
  }
654
664
 
665
+ // @modified - start
666
+ // HYDRATION FIX: Add deterministic keys to routes so react-navigation preserves them
667
+ // instead of generating new ones with nanoid(). This prevents SSR/hydration key mismatch.
668
+ let routeKeyCounter = 0
669
+
670
+ function resetRouteKeyCounter() {
671
+ routeKeyCounter = 0
672
+ }
673
+
674
+ function getRouteWithKey<T extends { name: string }>(route: T): T & { key: string } {
675
+ const key = `${route.name}-${routeKeyCounter++}`
676
+ // @modified: debug logging for hydration fix
677
+ if (process.env.ONE_DEBUG_ROUTER) {
678
+ console.info(`[one] getRouteWithKey: ${route.name} -> key=${key}`)
679
+ }
680
+ return { ...route, key }
681
+ }
682
+ // @modified - end
683
+
655
684
  // returns state object with values depending on whether
656
685
  // it is the end of state and if there is initialRoute for this level
657
686
  const createStateObject = (
@@ -663,22 +692,29 @@ const createStateObject = (
663
692
  if (initialRoute) {
664
693
  return {
665
694
  index: 1,
666
- routes: [{ name: initialRoute }, route],
695
+ // @modified: add deterministic keys
696
+ routes: [getRouteWithKey({ name: initialRoute }), getRouteWithKey(route)],
667
697
  }
668
698
  } else {
669
699
  return {
670
- routes: [route],
700
+ // @modified: add deterministic keys
701
+ routes: [getRouteWithKey(route)],
671
702
  }
672
703
  }
673
704
  } else {
674
705
  if (initialRoute) {
675
706
  return {
676
707
  index: 1,
677
- routes: [{ name: initialRoute }, { ...route, state: { routes: [] } }],
708
+ // @modified: add deterministic keys
709
+ routes: [
710
+ getRouteWithKey({ name: initialRoute }),
711
+ getRouteWithKey({ ...route, state: { routes: [] } }),
712
+ ],
678
713
  }
679
714
  } else {
680
715
  return {
681
- routes: [{ ...route, state: { routes: [] } }],
716
+ // @modified: add deterministic keys
717
+ routes: [getRouteWithKey({ ...route, state: { routes: [] } })],
682
718
  }
683
719
  }
684
720
  }
@@ -10,12 +10,15 @@ import {
10
10
  findFocusedRoute,
11
11
  getActionFromState as getActionFromStateDefault,
12
12
  getPathFromState as getPathFromStateDefault,
13
- getStateFromPath as getStateFromPathDefault,
13
+ // @modified: use our local getStateFromPath with deterministic route keys for hydration fix
14
+ // getStateFromPath as getStateFromPathDefault,
14
15
  type NavigationContainerRef,
15
16
  type NavigationState,
16
17
  type ParamListBase,
17
18
  useNavigationIndependentTree,
18
19
  } from '@react-navigation/core'
20
+ // @modified: import our getStateFromPath with deterministic route keys
21
+ import { getStateFromPath as getStateFromPathDefault } from './getStateFromPath'
19
22
  // @modified - end
20
23
  import type { LinkingOptions } from '@react-navigation/native' // @modified: change import path
21
24
  import isEqual from 'fast-deep-equal'
@@ -138,7 +138,6 @@ export async function oneServe(
138
138
  const { loader } = exports
139
139
 
140
140
  if (!loader) {
141
- console.warn(`No loader found in exports`, route.file)
142
141
  return null
143
142
  }
144
143
 
@@ -445,7 +444,9 @@ url: ${url}`)
445
444
  )
446
445
  return resolved
447
446
  } catch (err) {
448
- console.error(`Error running loader: ${err}`)
447
+ if ((err as any)?.code !== 'ERR_MODULE_NOT_FOUND') {
448
+ console.error(`Error running loader: ${err}`)
449
+ }
449
450
  return next()
450
451
  }
451
452
  }
@@ -1,18 +1,18 @@
1
1
  // Copyright © 2024 650 Industries.
2
- import {
3
- type RouterFactory,
4
- StackRouter,
5
- useNavigationBuilder,
6
- } from '@react-navigation/native'
2
+ import { type RouterFactory, StackRouter, useNavigationBuilder } from '@react-navigation/native'
7
3
  import * as React from 'react'
8
4
  import { SafeAreaView } from 'react-native-safe-area-context'
9
5
  import { useFilterScreenChildren } from '../layouts/withLayoutContext'
10
- import { FlagsContext } from '../router/FlagsContext'
11
6
  import { useContextKey } from '../router/Route'
12
7
  import { registerProtectedRoutes, unregisterProtectedRoutes } from '../router/router'
13
8
  import { useSortedScreens } from '../router/useScreens'
14
9
  import { Screen } from './Screen'
15
10
 
11
+ // Static key used to prevent React from unmounting/remounting Slot content
12
+ // when route keys change during navigation. Since Slot only renders one screen
13
+ // at a time anyway, we can safely reuse the same component instance.
14
+ const SLOT_STATIC_KEY = 'one-slot-static-key'
15
+
16
16
  type NavigatorTypes = ReturnType<typeof useNavigationBuilder>
17
17
 
18
18
  // TODO: This might already exist upstream, maybe something like `useCurrentRender` ?
@@ -35,6 +35,20 @@ export type NavigatorProps = {
35
35
  router?: Parameters<typeof useNavigationBuilder>[0]
36
36
  }
37
37
 
38
+ // HYDRATION FIX for SSG/SSR pages inside route groups
39
+ //
40
+ // Problem: When a page is inside a route group with a <Slot /> layout, hydration causes
41
+ // visible flicker. The content is removed and re-added with a timing gap (~300ms).
42
+ //
43
+ // Root cause: During hydration, react-navigation generates different route keys
44
+ // on SSR vs client (using nanoid()). React sees different component keys and
45
+ // treats them as different children, causing unmount/remount.
46
+ //
47
+ // Solution: Deterministic route keys are now generated in getStateFromPath.ts
48
+ // using a counter-based approach that produces identical keys on both SSR and
49
+ // client. This ensures react-navigation preserves the existing keys instead of
50
+ // generating new ones with nanoid().
51
+
38
52
  /** An unstyled custom navigator. Good for basic web layouts */
39
53
  export function Navigator({
40
54
  initialRouteName,
@@ -131,8 +145,6 @@ export function useNavigatorContext() {
131
145
 
132
146
  export function useSlot() {
133
147
  const context = useNavigatorContext()
134
- const flags = React.useContext(FlagsContext)
135
-
136
148
  const { state, descriptors } = context
137
149
 
138
150
  const current = state.routes.find((route, i) => {
@@ -143,13 +155,14 @@ export function useSlot() {
143
155
  return null
144
156
  }
145
157
 
146
- let renderedElement = descriptors[current.key]?.render() ?? null
158
+ const renderedElement = descriptors[current.key]?.render() ?? null
147
159
 
148
- if (flags.experimentalPreventLayoutRemounting && renderedElement !== null) {
149
- // To save unnecessary re-mounting since the Slot navigator will only render one screen at a time anyway.
150
- renderedElement = {
160
+ // Use static key to prevent layout remounts when route keys change during navigation.
161
+ // Safe because Slot only renders one screen at a time.
162
+ if (renderedElement !== null) {
163
+ return {
151
164
  ...renderedElement,
152
- key: 'one-uses-a-static-key-here-for-slot-navigator',
165
+ key: SLOT_STATIC_KEY,
153
166
  }
154
167
  }
155
168
 
@@ -1 +1 @@
1
- {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/cli/build.ts"],"names":[],"mappings":"AAqCA,wBAAsB,KAAK,CAAC,IAAI,EAAE;IAChC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,SAAS,CAAA;CACrC,iBAi3BA"}
1
+ {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/cli/build.ts"],"names":[],"mappings":"AAqCA,wBAAsB,KAAK,CAAC,IAAI,EAAE;IAChC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,SAAS,CAAA;CACrC,iBA63BA"}
@@ -1 +1 @@
1
- {"version":3,"file":"buildPage.d.ts","sourceRoot":"","sources":["../../src/cli/buildPage.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAWnD,wBAAsB,SAAS,CAC7B,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,GAAG,EACX,UAAU,EAAE,SAAS,CAAC,MAAM,CAAC,EAC7B,mBAAmB,EAAE,GAAG,EACxB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACxC,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,EAAE,EAClB,MAAM,EAAE,MAAM,EAAE,EAChB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACrC,cAAc,CAAC,EAAE,MAAM,EAAE,EACzB,gBAAgB,CAAC,EAAE,MAAM,EAAE,EAC3B,gBAAgB,CAAC,EAAE,MAAM,EAAE,EAC3B,WAAW,CAAC,EAAE,OAAO,EACrB,qBAAqB,CAAC,EAAE,OAAO,GAC9B,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAkP7B"}
1
+ {"version":3,"file":"buildPage.d.ts","sourceRoot":"","sources":["../../src/cli/buildPage.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAWnD,wBAAsB,SAAS,CAC7B,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,GAAG,EACX,UAAU,EAAE,SAAS,CAAC,MAAM,CAAC,EAC7B,mBAAmB,EAAE,GAAG,EACxB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACxC,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,EAAE,EAClB,MAAM,EAAE,MAAM,EAAE,EAChB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACrC,cAAc,CAAC,EAAE,MAAM,EAAE,EACzB,gBAAgB,CAAC,EAAE,MAAM,EAAE,EAC3B,gBAAgB,CAAC,EAAE,MAAM,EAAE,EAC3B,WAAW,CAAC,EAAE,OAAO,EACrB,qBAAqB,CAAC,EAAE,OAAO,GAC9B,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAqP7B"}
@@ -1 +1 @@
1
- {"version":3,"file":"createHandleRequest.d.ts","sourceRoot":"","sources":["../src/createHandleRequest.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC/C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAA;AACtE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAK1C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAE7C,MAAM,MAAM,eAAe,GAAG;IAC5B,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,OAAO,CAAC,GAAG,CAAC,CAAA;IACzD,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,OAAO,CAAC,GAAG,CAAC,CAAA;IAC3D,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,OAAO,CAAC,GAAG,CAAC,CAAA;IACxD,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OAAO,CAAC,GAAG,CAAC,CAAA;CACpD,CAAA;AAED,KAAK,mBAAmB,CAAC,eAAe,SAAS,MAAM,GAAG,EAAE,IAAI;IAC9D,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,GAAG,eAAe,CAAA;IAC1C,GAAG,EAAE,GAAG,CAAA;IACR,WAAW,CAAC,EAAE,WAAW,CAAA;CAC1B,CAAA;AAED,KAAK,sBAAsB,GAAG,IAAI,GAAG,MAAM,GAAG,QAAQ,CAAA;AAItD,wBAAsB,cAAc,CAClC,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,SAAS,EAChB,WAAW,EAAE,MAAM,OAAO,CAAC,QAAQ,CAAC,GACnC,OAAO,CAAC,QAAQ,CAAC,CAgEnB;AAED,wBAAsB,eAAe,CACnC,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,iBAAiB,qBA4CzB;AAED,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,iBAAiB,qBAuCzB;AAED,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,iBAAiB,qBAyBzB;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,OAMpD;AASD,wBAAgB,eAAe,CAAC,QAAQ,EAAE;IACxC,UAAU,EAAE,SAAS,EAAE,CAAA;IACvB,SAAS,EAAE,SAAS,EAAE,CAAA;CACvB,GAAG;IACF,UAAU,EAAE,iBAAiB,EAAE,CAAA;IAC/B,SAAS,EAAE,iBAAiB,EAAE,CAAA;CAC/B,CAKA;AAGD,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,eAAe,EACzB,EAAE,UAAU,EAAE,EAAE;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE;;uBAWzB,OAAO,KACf,OAAO,CAAC,sBAAsB,CAAC;EAmGrC"}
1
+ {"version":3,"file":"createHandleRequest.d.ts","sourceRoot":"","sources":["../src/createHandleRequest.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC/C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAA;AACtE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAK1C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAE7C,MAAM,MAAM,eAAe,GAAG;IAC5B,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,OAAO,CAAC,GAAG,CAAC,CAAA;IACzD,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,OAAO,CAAC,GAAG,CAAC,CAAA;IAC3D,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,OAAO,CAAC,GAAG,CAAC,CAAA;IACxD,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OAAO,CAAC,GAAG,CAAC,CAAA;CACpD,CAAA;AAED,KAAK,mBAAmB,CAAC,eAAe,SAAS,MAAM,GAAG,EAAE,IAAI;IAC9D,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,GAAG,eAAe,CAAA;IAC1C,GAAG,EAAE,GAAG,CAAA;IACR,WAAW,CAAC,EAAE,WAAW,CAAA;CAC1B,CAAA;AAED,KAAK,sBAAsB,GAAG,IAAI,GAAG,MAAM,GAAG,QAAQ,CAAA;AAItD,wBAAsB,cAAc,CAClC,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,SAAS,EAChB,WAAW,EAAE,MAAM,OAAO,CAAC,QAAQ,CAAC,GACnC,OAAO,CAAC,QAAQ,CAAC,CAgEnB;AAED,wBAAsB,eAAe,CACnC,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,iBAAiB,qBA4CzB;AAED,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,iBAAiB,qBAyCzB;AAED,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,iBAAiB,qBAyBzB;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,OAMpD;AASD,wBAAgB,eAAe,CAAC,QAAQ,EAAE;IACxC,UAAU,EAAE,SAAS,EAAE,CAAA;IACvB,SAAS,EAAE,SAAS,EAAE,CAAA;CACvB,GAAG;IACF,UAAU,EAAE,iBAAiB,EAAE,CAAA;IAC/B,SAAS,EAAE,iBAAiB,EAAE,CAAA;CAC/B,CAKA;AAGD,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,eAAe,EACzB,EAAE,UAAU,EAAE,EAAE;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE;;uBAWzB,OAAO,KACf,OAAO,CAAC,sBAAsB,CAAC;EAmGrC"}
@@ -1 +1 @@
1
- {"version":3,"file":"getPathFromState.d.ts","sourceRoot":"","sources":["../../src/fork/getPathFromState.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,EACL,KAAK,iBAAiB,EAIvB,MAAM,yBAAyB,CAAA;AAGhC,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAS,MAAM,2BAA2B,CAAA;AAGrF,OAAO,KAAK,EAAc,aAAa,EAAE,MAAM,wBAAwB,CAAA;AAGvE,KAAK,OAAO,CAAC,SAAS,SAAS,EAAE,IAAI;IACnC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,OAAO,EAAE,aAAa,CAAC,SAAS,CAAC,CAAA;CAClC,GAAG,iBAAiB,CAAA;AAErB,MAAM,MAAM,KAAK,GAAG,eAAe,GAAG,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC,CAAA;AA2ClF;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,SAAS,EAAE,EACnD,KAAK,EAAE,KAAK,EACZ,OAAO,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,GAC3B,MAAM,CAER;AAED,wBAAgB,oBAAoB,CAAC,SAAS,SAAS,EAAE,EACvD,KAAK,EAAE,KAAK,EACZ,OAAO,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC;;;EAgR7B;AA2DD,eAAe,gBAAgB,CAAA"}
1
+ {"version":3,"file":"getPathFromState.d.ts","sourceRoot":"","sources":["../../src/fork/getPathFromState.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,EACL,KAAK,iBAAiB,EAIvB,MAAM,yBAAyB,CAAA;AAGhC,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAS,MAAM,2BAA2B,CAAA;AAGrF,OAAO,KAAK,EAAc,aAAa,EAAE,MAAM,wBAAwB,CAAA;AAGvE,KAAK,OAAO,CAAC,SAAS,SAAS,EAAE,IAAI;IACnC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,OAAO,EAAE,aAAa,CAAC,SAAS,CAAC,CAAA;CAClC,GAAG,iBAAiB,CAAA;AAErB,MAAM,MAAM,KAAK,GAAG,eAAe,GAAG,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC,CAAA;AA2ClF;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,SAAS,EAAE,EACnD,KAAK,EAAE,KAAK,EACZ,OAAO,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,GAC3B,MAAM,CAER;AAED,wBAAgB,oBAAoB,CAAC,SAAS,SAAS,EAAE,EACvD,KAAK,EAAE,KAAK,EACZ,OAAO,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC;;;EAkR7B;AA2DD,eAAe,gBAAgB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"getStateFromPath.d.ts","sourceRoot":"","sources":["../../src/fork/getStateFromPath.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAEV,eAAe,EACf,YAAY,EACb,MAAM,2BAA2B,CAAA;AAMlC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AAG3D,OAAO,EACL,KAAK,qBAAqB,EAU3B,MAAM,yBAAyB,CAAA;AAGhC,KAAK,OAAO,CAAC,SAAS,SAAS,EAAE,IAAI;IACnC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,OAAO,EAAE,aAAa,CAAC,SAAS,CAAC,CAAA;CAClC,CAAA;AAED,KAAK,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,GAAG,CAAC,CAAA;AAGzD,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,MAAM,EAAE,CAAA;IACpB,KAAK,CAAC,EAAE,WAAW,CAAA;CACpB,GAAG,qBAAqB,CAAA;AAGzB,MAAM,MAAM,kBAAkB,GAAG;IAC/B,gBAAgB,EAAE,MAAM,CAAA;IACxB,aAAa,EAAE,MAAM,EAAE,CAAA;CACxB,CAAA;AAED,KAAK,WAAW,GAAG,YAAY,CAAC,eAAe,CAAC,GAAG;IACjD,KAAK,CAAC,EAAE,WAAW,CAAA;CACpB,CAAA;AAGD,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,SAAS,CAAA;CACzC,CAAA;AAQD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,SAAS,EAAE,EACnD,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,GAC3B,WAAW,GAAG,SAAS,CAmGzB"}
1
+ {"version":3,"file":"getStateFromPath.d.ts","sourceRoot":"","sources":["../../src/fork/getStateFromPath.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAEV,eAAe,EACf,YAAY,EACb,MAAM,2BAA2B,CAAA;AAMlC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AAG3D,OAAO,EACL,KAAK,qBAAqB,EAU3B,MAAM,yBAAyB,CAAA;AAGhC,KAAK,OAAO,CAAC,SAAS,SAAS,EAAE,IAAI;IACnC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,OAAO,EAAE,aAAa,CAAC,SAAS,CAAC,CAAA;CAClC,CAAA;AAED,KAAK,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,GAAG,CAAC,CAAA;AAGzD,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,MAAM,EAAE,CAAA;IACpB,KAAK,CAAC,EAAE,WAAW,CAAA;CACpB,GAAG,qBAAqB,CAAA;AAGzB,MAAM,MAAM,kBAAkB,GAAG;IAC/B,gBAAgB,EAAE,MAAM,CAAA;IACxB,aAAa,EAAE,MAAM,EAAE,CAAA;CACxB,CAAA;AAED,KAAK,WAAW,GAAG,YAAY,CAAC,eAAe,CAAC,GAAG;IACjD,KAAK,CAAC,EAAE,WAAW,CAAA;CACpB,CAAA;AAGD,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,SAAS,CAAA;CACzC,CAAA;AAQD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,SAAS,EAAE,EACnD,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,GAC3B,WAAW,GAAG,SAAS,CA6GzB"}
@@ -5,7 +5,8 @@
5
5
  * Please refrain from making changes to this file, as it will make merging updates from the upstream harder.
6
6
  * All modifications except formatting should be marked with `// @modified` comment.
7
7
  */
8
- import { getStateFromPath as getStateFromPathDefault, type NavigationContainerRef, type ParamListBase } from '@react-navigation/core';
8
+ import { type NavigationContainerRef, type ParamListBase } from '@react-navigation/core';
9
+ import { getStateFromPath as getStateFromPathDefault } from './getStateFromPath';
9
10
  import type { LinkingOptions } from '@react-navigation/native';
10
11
  import * as React from 'react';
11
12
  type ResultState = ReturnType<typeof getStateFromPathDefault>;
@@ -1 +1 @@
1
- {"version":3,"file":"useLinking.d.ts","sourceRoot":"","sources":["../../src/fork/useLinking.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAIL,gBAAgB,IAAI,uBAAuB,EAC3C,KAAK,sBAAsB,EAE3B,KAAK,aAAa,EAEnB,MAAM,wBAAwB,CAAA;AAE/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAE9D,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAS9B,KAAK,WAAW,GAAG,UAAU,CAAC,OAAO,uBAAuB,CAAC,CAAA;AA0C7D;;GAEG;AACH,eAAO,MAAM,MAAM,GAAI,IAAI,MAAM,OAAO,CAAC,IAAI,CAAC,eAO7C,CAAA;AAID,KAAK,OAAO,GAAG,cAAc,CAAC,aAAa,CAAC,CAAA;AAE5C,wBAAgB,UAAU,CACxB,GAAG,EAAE,KAAK,CAAC,SAAS,CAAC,sBAAsB,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,EAClE,EACE,OAAc,EACd,MAAM,EACN,gBAA0C,EAC1C,gBAA0C,EAC1C,kBAA8C,GAC/C,EAAE,OAAO,EACV,kBAAkB,EAAE,CAAC,mBAAmB,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI;2BAyHhD,WAAW,CAAC,WAAW,GAAG,SAAS,CAAC;EA0U1D"}
1
+ {"version":3,"file":"useLinking.d.ts","sourceRoot":"","sources":["../../src/fork/useLinking.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAML,KAAK,sBAAsB,EAE3B,KAAK,aAAa,EAEnB,MAAM,wBAAwB,CAAA;AAE/B,OAAO,EAAE,gBAAgB,IAAI,uBAAuB,EAAE,MAAM,oBAAoB,CAAA;AAEhF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAE9D,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAS9B,KAAK,WAAW,GAAG,UAAU,CAAC,OAAO,uBAAuB,CAAC,CAAA;AA0C7D;;GAEG;AACH,eAAO,MAAM,MAAM,GAAI,IAAI,MAAM,OAAO,CAAC,IAAI,CAAC,eAO7C,CAAA;AAID,KAAK,OAAO,GAAG,cAAc,CAAC,aAAa,CAAC,CAAA;AAE5C,wBAAgB,UAAU,CACxB,GAAG,EAAE,KAAK,CAAC,SAAS,CAAC,sBAAsB,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,EAClE,EACE,OAAc,EACd,MAAM,EACN,gBAA0C,EAC1C,gBAA0C,EAC1C,kBAA8C,GAC/C,EAAE,OAAO,EACV,kBAAkB,EAAE,CAAC,mBAAmB,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI;2BAyHhD,WAAW,CAAC,WAAW,GAAG,SAAS,CAAC;EA0U1D"}
@@ -1 +1 @@
1
- {"version":3,"file":"oneServe.d.ts","sourceRoot":"","sources":["../../src/server/oneServe.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAqB,MAAM,MAAM,CAAA;AAgBnD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,eAAe,CAAA;AAMxC;;;GAGG;AACH,KAAK,UAAU,GAAG;IAChB,WAAW,EAAE,MAAM,OAAO,CAAC;QAAE,OAAO,EAAE;YAAE,MAAM,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,GAAG,CAAA;SAAE,CAAA;KAAE,CAAC,CAAA;IACxE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,CAAA;IACzC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,CAAA;IACvC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,CAAA;CAChD,CAAA;AAED,wBAAsB,QAAQ,CAC5B,UAAU,EAAE,GAAG,CAAC,aAAa,EAC7B,SAAS,EAAE,GAAG,CAAC,SAAS,EACxB,GAAG,EAAE,IAAI,EACT,OAAO,CAAC,EAAE;IACR,iBAAiB,CAAC,EAAE,CAAC,GAAG,EAAE;QAAE,OAAO,EAAE,GAAG,CAAA;KAAE,KAAK,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC,CAAA;IAC5E,UAAU,CAAC,EAAE,UAAU,CAAA;CACxB,iBA6ZF"}
1
+ {"version":3,"file":"oneServe.d.ts","sourceRoot":"","sources":["../../src/server/oneServe.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAqB,MAAM,MAAM,CAAA;AAgBnD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,eAAe,CAAA;AAMxC;;;GAGG;AACH,KAAK,UAAU,GAAG;IAChB,WAAW,EAAE,MAAM,OAAO,CAAC;QAAE,OAAO,EAAE;YAAE,MAAM,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,GAAG,CAAA;SAAE,CAAA;KAAE,CAAC,CAAA;IACxE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,CAAA;IACzC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,CAAA;IACvC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,CAAA;CAChD,CAAA;AAED,wBAAsB,QAAQ,CAC5B,UAAU,EAAE,GAAG,CAAC,aAAa,EAC7B,SAAS,EAAE,GAAG,CAAC,SAAS,EACxB,GAAG,EAAE,IAAI,EACT,OAAO,CAAC,EAAE;IACR,iBAAiB,CAAC,EAAE,CAAC,GAAG,EAAE;QAAE,OAAO,EAAE,GAAG,CAAA;KAAE,KAAK,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC,CAAA;IAC5E,UAAU,CAAC,EAAE,UAAU,CAAA;CACxB,iBA8ZF"}
@@ -28,10 +28,20 @@ export declare function useNavigatorContext(): {
28
28
  descriptors: NavigatorTypes["descriptors"];
29
29
  router: RouterFactory<any, any, any>;
30
30
  };
31
- export declare function useSlot(): React.JSX.Element | null;
31
+ export declare function useSlot(): {
32
+ key: string;
33
+ type: any;
34
+ props: any;
35
+ $$typeof?: symbol | string;
36
+ } | null;
32
37
  /** Renders the currently selected content. */
33
38
  export declare const Slot: React.NamedExoticComponent<Omit<NavigatorProps, "children">>;
34
- export declare function QualifiedSlot(): React.JSX.Element | null;
39
+ export declare function QualifiedSlot(): {
40
+ key: string;
41
+ type: any;
42
+ props: any;
43
+ $$typeof?: symbol | string;
44
+ } | null;
35
45
  export declare function DefaultNavigator(): import("react/jsx-runtime").JSX.Element;
36
46
  export {};
37
47
  //# sourceMappingURL=Navigator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Navigator.d.ts","sourceRoot":"","sources":["../../src/views/Navigator.tsx"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,aAAa,EAElB,oBAAoB,EACrB,MAAM,0BAA0B,CAAA;AACjC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAS9B,KAAK,cAAc,GAAG,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAA;AAG7D,eAAO,MAAM,gBAAgB;gBACf,MAAM;WACX,cAAc,CAAC,OAAO,CAAC;gBAClB,cAAc,CAAC,YAAY,CAAC;iBAC3B,cAAc,CAAC,aAAa,CAAC;YAClC,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;SACvB,CAAA;AAMf,MAAM,MAAM,cAAc,GAAG;IAC3B,gBAAgB,CAAC,EAAE,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAA;IACjF,aAAa,CAAC,EAAE,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAA;IAC3E,QAAQ,CAAC,EAAE,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAA;IACjE,MAAM,CAAC,EAAE,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAA;CACpD,CAAA;AAED,+DAA+D;AAC/D,wBAAgB,SAAS,CAAC,EACxB,gBAAgB,EAChB,aAAa,EACb,QAAQ,EACR,MAAM,GACP,EAAE,cAAc,kDA0ChB;yBA/Ce,SAAS;;;;;AAqFzB,wBAAgB,mBAAmB;gBAxGrB,MAAM;WACX,cAAc,CAAC,OAAO,CAAC;gBAClB,cAAc,CAAC,YAAY,CAAC;iBAC3B,cAAc,CAAC,aAAa,CAAC;YAClC,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;EA0GrC;AAED,wBAAgB,OAAO,6BAyBtB;AAED,8CAA8C;AAC9C,eAAO,MAAM,IAAI,8DAef,CAAA;AAEF,wBAAgB,aAAa,6BAE5B;AAED,wBAAgB,gBAAgB,4CAQ/B"}
1
+ {"version":3,"file":"Navigator.d.ts","sourceRoot":"","sources":["../../src/views/Navigator.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,aAAa,EAAe,oBAAoB,EAAE,MAAM,0BAA0B,CAAA;AAChG,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAa9B,KAAK,cAAc,GAAG,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAA;AAG7D,eAAO,MAAM,gBAAgB;gBACf,MAAM;WACX,cAAc,CAAC,OAAO,CAAC;gBAClB,cAAc,CAAC,YAAY,CAAC;iBAC3B,cAAc,CAAC,aAAa,CAAC;YAClC,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;SACvB,CAAA;AAMf,MAAM,MAAM,cAAc,GAAG;IAC3B,gBAAgB,CAAC,EAAE,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAA;IACjF,aAAa,CAAC,EAAE,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAA;IAC3E,QAAQ,CAAC,EAAE,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAA;IACjE,MAAM,CAAC,EAAE,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAA;CACpD,CAAA;AAgBD,+DAA+D;AAC/D,wBAAgB,SAAS,CAAC,EACxB,gBAAgB,EAChB,aAAa,EACb,QAAQ,EACR,MAAM,GACP,EAAE,cAAc,kDA0ChB;yBA/Ce,SAAS;;;;;AAqFzB,wBAAgB,mBAAmB;gBAtHrB,MAAM;WACX,cAAc,CAAC,OAAO,CAAC;gBAClB,cAAc,CAAC,YAAY,CAAC;iBAC3B,cAAc,CAAC,aAAa,CAAC;YAClC,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;EAwHrC;AAED,wBAAgB,OAAO;;;;;SAwBtB;AAED,8CAA8C;AAC9C,eAAO,MAAM,IAAI,8DAef,CAAA;AAEF,wBAAgB,aAAa;;;;;SAE5B;AAED,wBAAgB,gBAAgB,4CAQ/B"}