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.
- package/dist/cjs/cli/build.cjs +10 -10
- package/dist/cjs/cli/build.js +10 -8
- package/dist/cjs/cli/build.js.map +1 -1
- package/dist/cjs/cli/build.native.js +15 -15
- package/dist/cjs/cli/build.native.js.map +1 -1
- package/dist/cjs/cli/buildPage.cjs +12 -10
- package/dist/cjs/cli/buildPage.js +11 -9
- package/dist/cjs/cli/buildPage.js.map +1 -1
- package/dist/cjs/cli/buildPage.native.js +12 -10
- package/dist/cjs/cli/buildPage.native.js.map +1 -1
- package/dist/cjs/createHandleRequest.cjs +1 -1
- package/dist/cjs/createHandleRequest.js +1 -1
- package/dist/cjs/createHandleRequest.js.map +1 -1
- package/dist/cjs/createHandleRequest.native.js +1 -1
- package/dist/cjs/createHandleRequest.native.js.map +1 -1
- package/dist/cjs/fork/__tests__/getStateFromPath.test.cjs +40 -4
- package/dist/cjs/fork/__tests__/getStateFromPath.test.js +39 -11
- package/dist/cjs/fork/__tests__/getStateFromPath.test.js.map +1 -1
- package/dist/cjs/fork/__tests__/getStateFromPath.test.native.js +40 -4
- package/dist/cjs/fork/__tests__/getStateFromPath.test.native.js.map +1 -1
- package/dist/cjs/fork/getPathFromState.cjs +1 -1
- package/dist/cjs/fork/getPathFromState.js +1 -1
- package/dist/cjs/fork/getPathFromState.js.map +1 -1
- package/dist/cjs/fork/getPathFromState.native.js +1 -1
- package/dist/cjs/fork/getPathFromState.native.js.map +1 -1
- package/dist/cjs/fork/getStateFromPath.cjs +26 -10
- package/dist/cjs/fork/getStateFromPath.js +24 -5
- package/dist/cjs/fork/getStateFromPath.js.map +1 -1
- package/dist/cjs/fork/getStateFromPath.native.js +27 -11
- package/dist/cjs/fork/getStateFromPath.native.js.map +1 -1
- package/dist/cjs/fork/getStateFromPath.test.cjs +26 -12
- package/dist/cjs/fork/getStateFromPath.test.js +24 -12
- package/dist/cjs/fork/getStateFromPath.test.js.map +1 -1
- package/dist/cjs/fork/getStateFromPath.test.native.js +26 -12
- package/dist/cjs/fork/getStateFromPath.test.native.js.map +1 -1
- package/dist/cjs/fork/useLinking.cjs +2 -1
- package/dist/cjs/fork/useLinking.js +2 -2
- package/dist/cjs/fork/useLinking.js.map +1 -1
- package/dist/cjs/server/oneServe.cjs +2 -2
- package/dist/cjs/server/oneServe.js +2 -2
- package/dist/cjs/server/oneServe.js.map +1 -1
- package/dist/cjs/server/oneServe.native.js +2 -2
- package/dist/cjs/server/oneServe.native.js.map +1 -1
- package/dist/cjs/views/Navigator.cjs +6 -7
- package/dist/cjs/views/Navigator.js +7 -7
- package/dist/cjs/views/Navigator.js.map +1 -1
- package/dist/cjs/views/Navigator.native.js +4 -5
- package/dist/cjs/views/Navigator.native.js.map +1 -1
- package/dist/esm/cli/build.js +10 -8
- package/dist/esm/cli/build.js.map +1 -1
- package/dist/esm/cli/build.mjs +10 -10
- package/dist/esm/cli/build.mjs.map +1 -1
- package/dist/esm/cli/build.native.js +15 -15
- package/dist/esm/cli/build.native.js.map +1 -1
- package/dist/esm/cli/buildPage.js +11 -9
- package/dist/esm/cli/buildPage.js.map +1 -1
- package/dist/esm/cli/buildPage.mjs +12 -10
- package/dist/esm/cli/buildPage.mjs.map +1 -1
- package/dist/esm/cli/buildPage.native.js +12 -10
- package/dist/esm/cli/buildPage.native.js.map +1 -1
- package/dist/esm/createHandleRequest.js +1 -1
- package/dist/esm/createHandleRequest.js.map +1 -1
- package/dist/esm/createHandleRequest.mjs +1 -1
- package/dist/esm/createHandleRequest.mjs.map +1 -1
- package/dist/esm/createHandleRequest.native.js +1 -1
- package/dist/esm/createHandleRequest.native.js.map +1 -1
- package/dist/esm/fork/__tests__/getStateFromPath.test.js +39 -11
- package/dist/esm/fork/__tests__/getStateFromPath.test.js.map +1 -1
- package/dist/esm/fork/__tests__/getStateFromPath.test.mjs +40 -4
- package/dist/esm/fork/__tests__/getStateFromPath.test.mjs.map +1 -1
- package/dist/esm/fork/__tests__/getStateFromPath.test.native.js +40 -4
- package/dist/esm/fork/__tests__/getStateFromPath.test.native.js.map +1 -1
- package/dist/esm/fork/getPathFromState.js +1 -1
- package/dist/esm/fork/getPathFromState.js.map +1 -1
- package/dist/esm/fork/getPathFromState.mjs +1 -1
- package/dist/esm/fork/getPathFromState.mjs.map +1 -1
- package/dist/esm/fork/getPathFromState.native.js +1 -1
- package/dist/esm/fork/getPathFromState.native.js.map +1 -1
- package/dist/esm/fork/getStateFromPath.js +24 -5
- package/dist/esm/fork/getStateFromPath.js.map +1 -1
- package/dist/esm/fork/getStateFromPath.mjs +26 -10
- package/dist/esm/fork/getStateFromPath.mjs.map +1 -1
- package/dist/esm/fork/getStateFromPath.native.js +27 -11
- package/dist/esm/fork/getStateFromPath.native.js.map +1 -1
- package/dist/esm/fork/getStateFromPath.test.js +24 -12
- package/dist/esm/fork/getStateFromPath.test.js.map +1 -1
- package/dist/esm/fork/getStateFromPath.test.mjs +26 -12
- package/dist/esm/fork/getStateFromPath.test.mjs.map +1 -1
- package/dist/esm/fork/getStateFromPath.test.native.js +26 -12
- package/dist/esm/fork/getStateFromPath.test.native.js.map +1 -1
- package/dist/esm/fork/useLinking.js +1 -1
- package/dist/esm/fork/useLinking.js.map +1 -1
- package/dist/esm/fork/useLinking.mjs +2 -1
- package/dist/esm/fork/useLinking.mjs.map +1 -1
- package/dist/esm/server/oneServe.js +2 -2
- package/dist/esm/server/oneServe.js.map +1 -1
- package/dist/esm/server/oneServe.mjs +2 -2
- package/dist/esm/server/oneServe.mjs.map +1 -1
- package/dist/esm/server/oneServe.native.js +2 -2
- package/dist/esm/server/oneServe.native.js.map +1 -1
- package/dist/esm/views/Navigator.js +7 -11
- package/dist/esm/views/Navigator.js.map +1 -1
- package/dist/esm/views/Navigator.mjs +6 -7
- package/dist/esm/views/Navigator.mjs.map +1 -1
- package/dist/esm/views/Navigator.native.js +5 -6
- package/dist/esm/views/Navigator.native.js.map +1 -1
- package/package.json +9 -9
- package/src/cli/build.ts +20 -8
- package/src/cli/buildPage.ts +15 -12
- package/src/createHandleRequest.ts +3 -1
- package/src/fork/__tests__/getStateFromPath.test.tsx +36 -8
- package/src/fork/getPathFromState.ts +3 -1
- package/src/fork/getStateFromPath.test.ts +15 -3
- package/src/fork/getStateFromPath.ts +40 -4
- package/src/fork/useLinking.ts +4 -1
- package/src/server/oneServe.ts +3 -2
- package/src/views/Navigator.tsx +26 -13
- package/types/cli/build.d.ts.map +1 -1
- package/types/cli/buildPage.d.ts.map +1 -1
- package/types/createHandleRequest.d.ts.map +1 -1
- package/types/fork/getPathFromState.d.ts.map +1 -1
- package/types/fork/getStateFromPath.d.ts.map +1 -1
- package/types/fork/useLinking.d.ts +2 -1
- package/types/fork/useLinking.d.ts.map +1 -1
- package/types/server/oneServe.d.ts.map +1 -1
- package/types/views/Navigator.d.ts +12 -2
- 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
|
-
|
|
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
|
-
|
|
695
|
+
// @modified: add deterministic keys
|
|
696
|
+
routes: [getRouteWithKey({ name: initialRoute }), getRouteWithKey(route)],
|
|
667
697
|
}
|
|
668
698
|
} else {
|
|
669
699
|
return {
|
|
670
|
-
|
|
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
|
-
|
|
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
|
-
|
|
716
|
+
// @modified: add deterministic keys
|
|
717
|
+
routes: [getRouteWithKey({ ...route, state: { routes: [] } })],
|
|
682
718
|
}
|
|
683
719
|
}
|
|
684
720
|
}
|
package/src/fork/useLinking.ts
CHANGED
|
@@ -10,12 +10,15 @@ import {
|
|
|
10
10
|
findFocusedRoute,
|
|
11
11
|
getActionFromState as getActionFromStateDefault,
|
|
12
12
|
getPathFromState as getPathFromStateDefault,
|
|
13
|
-
getStateFromPath
|
|
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'
|
package/src/server/oneServe.ts
CHANGED
|
@@ -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
|
-
|
|
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
|
}
|
package/src/views/Navigator.tsx
CHANGED
|
@@ -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
|
-
|
|
158
|
+
const renderedElement = descriptors[current.key]?.render() ?? null
|
|
147
159
|
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
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:
|
|
165
|
+
key: SLOT_STATIC_KEY,
|
|
153
166
|
}
|
|
154
167
|
}
|
|
155
168
|
|
package/types/cli/build.d.ts.map
CHANGED
|
@@ -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,
|
|
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,
|
|
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,
|
|
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;;;
|
|
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,
|
|
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 {
|
|
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,
|
|
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,
|
|
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():
|
|
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():
|
|
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,
|
|
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"}
|