one 1.1.473 → 1.1.475

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 (245) hide show
  1. package/dist/cjs/Root.cjs +5 -1
  2. package/dist/cjs/Root.js +2 -2
  3. package/dist/cjs/Root.js.map +1 -1
  4. package/dist/cjs/Root.native.js +5 -2
  5. package/dist/cjs/Root.native.js.map +2 -2
  6. package/dist/cjs/createApp.cjs +2 -0
  7. package/dist/cjs/createApp.js +16 -2
  8. package/dist/cjs/createApp.js.map +1 -1
  9. package/dist/cjs/createApp.native.js +1 -0
  10. package/dist/cjs/createApp.native.js.map +2 -2
  11. package/dist/cjs/fork/__tests__/getPathFromState.test.cjs +1440 -0
  12. package/dist/cjs/fork/__tests__/getPathFromState.test.js +1559 -0
  13. package/dist/cjs/fork/__tests__/getPathFromState.test.js.map +6 -0
  14. package/dist/cjs/fork/__tests__/getPathFromState.test.native.js +1726 -0
  15. package/dist/cjs/fork/__tests__/getPathFromState.test.native.js.map +6 -0
  16. package/dist/cjs/fork/__tests__/getStateFromPath.test.cjs +2565 -0
  17. package/dist/cjs/fork/__tests__/getStateFromPath.test.js +2702 -0
  18. package/dist/cjs/fork/__tests__/getStateFromPath.test.js.map +6 -0
  19. package/dist/cjs/fork/__tests__/getStateFromPath.test.native.js +2861 -0
  20. package/dist/cjs/fork/__tests__/getStateFromPath.test.native.js.map +6 -0
  21. package/dist/cjs/fork/getPathFromState.cjs +2 -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 +10 -5
  25. package/dist/cjs/fork/getPathFromState.native.js.map +1 -1
  26. package/dist/cjs/fork/getPathFromState.test.cjs +113 -0
  27. package/dist/cjs/fork/getPathFromState.test.js +122 -0
  28. package/dist/cjs/fork/getPathFromState.test.js.map +6 -0
  29. package/dist/cjs/fork/getPathFromState.test.native.js +135 -0
  30. package/dist/cjs/fork/getPathFromState.test.native.js.map +6 -0
  31. package/dist/cjs/fork/getStateFromPath.test.cjs +229 -0
  32. package/dist/cjs/fork/getStateFromPath.test.js +290 -0
  33. package/dist/cjs/fork/getStateFromPath.test.js.map +6 -0
  34. package/dist/cjs/fork/getStateFromPath.test.native.js +374 -0
  35. package/dist/cjs/fork/getStateFromPath.test.native.js.map +6 -0
  36. package/dist/cjs/render.cjs +1 -1
  37. package/dist/cjs/render.js +1 -1
  38. package/dist/cjs/render.js.map +1 -1
  39. package/dist/cjs/router/FlagsContext.cjs +27 -0
  40. package/dist/cjs/router/FlagsContext.js +22 -0
  41. package/dist/cjs/router/FlagsContext.js.map +6 -0
  42. package/dist/cjs/router/FlagsContext.native.js +26 -0
  43. package/dist/cjs/router/FlagsContext.native.js.map +6 -0
  44. package/dist/cjs/router/getRoutes.cjs +11 -1
  45. package/dist/cjs/router/getRoutes.js +11 -1
  46. package/dist/cjs/router/getRoutes.js.map +1 -1
  47. package/dist/cjs/router/getRoutes.native.js +11 -1
  48. package/dist/cjs/router/getRoutes.native.js.map +2 -2
  49. package/dist/cjs/router/matchers.test.cjs +38 -0
  50. package/dist/cjs/router/matchers.test.js +42 -0
  51. package/dist/cjs/router/matchers.test.js.map +6 -0
  52. package/dist/cjs/router/matchers.test.native.js +39 -0
  53. package/dist/cjs/router/matchers.test.native.js.map +6 -0
  54. package/dist/cjs/router/router.cjs +3 -35
  55. package/dist/cjs/router/router.js +2 -26
  56. package/dist/cjs/router/router.js.map +1 -1
  57. package/dist/cjs/router/router.native.js +2 -33
  58. package/dist/cjs/router/router.native.js.map +2 -2
  59. package/dist/cjs/router/utils/getNavigateAction.cjs +61 -0
  60. package/dist/cjs/router/utils/getNavigateAction.js +46 -0
  61. package/dist/cjs/router/utils/getNavigateAction.js.map +6 -0
  62. package/dist/cjs/router/utils/getNavigateAction.native.js +58 -0
  63. package/dist/cjs/router/utils/getNavigateAction.native.js.map +6 -0
  64. package/dist/cjs/router/utils/getNavigateAction.test.cjs +259 -0
  65. package/dist/cjs/router/utils/getNavigateAction.test.js +295 -0
  66. package/dist/cjs/router/utils/getNavigateAction.test.js.map +6 -0
  67. package/dist/cjs/router/utils/getNavigateAction.test.native.js +330 -0
  68. package/dist/cjs/router/utils/getNavigateAction.test.native.js.map +6 -0
  69. package/dist/cjs/testing-utils.cjs +63 -0
  70. package/dist/cjs/testing-utils.js +55 -0
  71. package/dist/cjs/testing-utils.js.map +6 -0
  72. package/dist/cjs/testing-utils.native.js +79 -0
  73. package/dist/cjs/testing-utils.native.js.map +6 -0
  74. package/dist/cjs/views/Navigator.cjs +8 -1
  75. package/dist/cjs/views/Navigator.js +25 -11
  76. package/dist/cjs/views/Navigator.js.map +1 -1
  77. package/dist/cjs/views/Navigator.native.js +7 -4
  78. package/dist/cjs/views/Navigator.native.js.map +2 -2
  79. package/dist/cjs/vite/one.cjs +6 -1
  80. package/dist/cjs/vite/one.js +6 -1
  81. package/dist/cjs/vite/one.js.map +1 -1
  82. package/dist/cjs/vite/one.native.js +7 -2
  83. package/dist/cjs/vite/one.native.js.map +2 -2
  84. package/dist/cjs/vite/plugins/virtualEntryPlugin.cjs +2 -0
  85. package/dist/cjs/vite/plugins/virtualEntryPlugin.js +2 -0
  86. package/dist/cjs/vite/plugins/virtualEntryPlugin.js.map +1 -1
  87. package/dist/cjs/vite/plugins/virtualEntryPlugin.native.js +2 -0
  88. package/dist/cjs/vite/plugins/virtualEntryPlugin.native.js.map +2 -2
  89. package/dist/esm/Root.js +2 -1
  90. package/dist/esm/Root.js.map +1 -1
  91. package/dist/esm/Root.mjs +5 -1
  92. package/dist/esm/Root.mjs.map +1 -1
  93. package/dist/esm/Root.native.js +5 -1
  94. package/dist/esm/Root.native.js.map +1 -1
  95. package/dist/esm/createApp.js +16 -2
  96. package/dist/esm/createApp.js.map +1 -1
  97. package/dist/esm/createApp.mjs +2 -0
  98. package/dist/esm/createApp.mjs.map +1 -1
  99. package/dist/esm/createApp.native.js +1 -0
  100. package/dist/esm/createApp.native.js.map +1 -1
  101. package/dist/esm/fork/__tests__/getPathFromState.test.js +1561 -0
  102. package/dist/esm/fork/__tests__/getPathFromState.test.js.map +6 -0
  103. package/dist/esm/fork/__tests__/getPathFromState.test.mjs +1441 -0
  104. package/dist/esm/fork/__tests__/getPathFromState.test.mjs.map +1 -0
  105. package/dist/esm/fork/__tests__/getPathFromState.test.native.js +1580 -0
  106. package/dist/esm/fork/__tests__/getPathFromState.test.native.js.map +1 -0
  107. package/dist/esm/fork/__tests__/getStateFromPath.test.js +2706 -0
  108. package/dist/esm/fork/__tests__/getStateFromPath.test.js.map +6 -0
  109. package/dist/esm/fork/__tests__/getStateFromPath.test.mjs +2566 -0
  110. package/dist/esm/fork/__tests__/getStateFromPath.test.mjs.map +1 -0
  111. package/dist/esm/fork/__tests__/getStateFromPath.test.native.js +2636 -0
  112. package/dist/esm/fork/__tests__/getStateFromPath.test.native.js.map +1 -0
  113. package/dist/esm/fork/getPathFromState.js +1 -1
  114. package/dist/esm/fork/getPathFromState.js.map +1 -1
  115. package/dist/esm/fork/getPathFromState.mjs +2 -1
  116. package/dist/esm/fork/getPathFromState.mjs.map +1 -1
  117. package/dist/esm/fork/getPathFromState.native.js +9 -5
  118. package/dist/esm/fork/getPathFromState.native.js.map +1 -1
  119. package/dist/esm/fork/getPathFromState.test.js +123 -0
  120. package/dist/esm/fork/getPathFromState.test.js.map +6 -0
  121. package/dist/esm/fork/getPathFromState.test.mjs +114 -0
  122. package/dist/esm/fork/getPathFromState.test.mjs.map +1 -0
  123. package/dist/esm/fork/getPathFromState.test.native.js +122 -0
  124. package/dist/esm/fork/getPathFromState.test.native.js.map +1 -0
  125. package/dist/esm/fork/getStateFromPath.test.js +294 -0
  126. package/dist/esm/fork/getStateFromPath.test.js.map +6 -0
  127. package/dist/esm/fork/getStateFromPath.test.mjs +230 -0
  128. package/dist/esm/fork/getStateFromPath.test.mjs.map +1 -0
  129. package/dist/esm/fork/getStateFromPath.test.native.js +233 -0
  130. package/dist/esm/fork/getStateFromPath.test.native.js.map +1 -0
  131. package/dist/esm/render.js +1 -1
  132. package/dist/esm/render.js.map +1 -1
  133. package/dist/esm/render.mjs +1 -1
  134. package/dist/esm/render.mjs.map +1 -1
  135. package/dist/esm/router/FlagsContext.js +6 -0
  136. package/dist/esm/router/FlagsContext.js.map +6 -0
  137. package/dist/esm/router/FlagsContext.mjs +4 -0
  138. package/dist/esm/router/FlagsContext.mjs.map +1 -0
  139. package/dist/esm/router/FlagsContext.native.js +4 -0
  140. package/dist/esm/router/FlagsContext.native.js.map +1 -0
  141. package/dist/esm/router/getRoutes.js +11 -1
  142. package/dist/esm/router/getRoutes.js.map +1 -1
  143. package/dist/esm/router/getRoutes.mjs +11 -1
  144. package/dist/esm/router/getRoutes.mjs.map +1 -1
  145. package/dist/esm/router/getRoutes.native.js +11 -1
  146. package/dist/esm/router/getRoutes.native.js.map +1 -1
  147. package/dist/esm/router/matchers.test.js +50 -0
  148. package/dist/esm/router/matchers.test.js.map +6 -0
  149. package/dist/esm/router/matchers.test.mjs +39 -0
  150. package/dist/esm/router/matchers.test.mjs.map +1 -0
  151. package/dist/esm/router/matchers.test.native.js +39 -0
  152. package/dist/esm/router/matchers.test.native.js.map +1 -0
  153. package/dist/esm/router/router.js +1 -26
  154. package/dist/esm/router/router.js.map +1 -1
  155. package/dist/esm/router/router.mjs +1 -33
  156. package/dist/esm/router/router.mjs.map +1 -1
  157. package/dist/esm/router/router.native.js +1 -37
  158. package/dist/esm/router/router.native.js.map +1 -1
  159. package/dist/esm/router/utils/getNavigateAction.js +32 -0
  160. package/dist/esm/router/utils/getNavigateAction.js.map +6 -0
  161. package/dist/esm/router/utils/getNavigateAction.mjs +38 -0
  162. package/dist/esm/router/utils/getNavigateAction.mjs.map +1 -0
  163. package/dist/esm/router/utils/getNavigateAction.native.js +42 -0
  164. package/dist/esm/router/utils/getNavigateAction.native.js.map +1 -0
  165. package/dist/esm/router/utils/getNavigateAction.test.js +296 -0
  166. package/dist/esm/router/utils/getNavigateAction.test.js.map +6 -0
  167. package/dist/esm/router/utils/getNavigateAction.test.mjs +260 -0
  168. package/dist/esm/router/utils/getNavigateAction.test.mjs.map +1 -0
  169. package/dist/esm/router/utils/getNavigateAction.test.native.js +273 -0
  170. package/dist/esm/router/utils/getNavigateAction.test.native.js.map +1 -0
  171. package/dist/esm/testing-utils.js +33 -0
  172. package/dist/esm/testing-utils.js.map +6 -0
  173. package/dist/esm/testing-utils.mjs +27 -0
  174. package/dist/esm/testing-utils.mjs.map +1 -0
  175. package/dist/esm/testing-utils.native.js +38 -0
  176. package/dist/esm/testing-utils.native.js.map +1 -0
  177. package/dist/esm/views/Navigator.js +29 -11
  178. package/dist/esm/views/Navigator.js.map +1 -1
  179. package/dist/esm/views/Navigator.mjs +8 -1
  180. package/dist/esm/views/Navigator.mjs.map +1 -1
  181. package/dist/esm/views/Navigator.native.js +8 -2
  182. package/dist/esm/views/Navigator.native.js.map +1 -1
  183. package/dist/esm/vite/one.js +6 -1
  184. package/dist/esm/vite/one.js.map +1 -1
  185. package/dist/esm/vite/one.mjs +6 -1
  186. package/dist/esm/vite/one.mjs.map +1 -1
  187. package/dist/esm/vite/one.native.js +9 -2
  188. package/dist/esm/vite/one.native.js.map +1 -1
  189. package/dist/esm/vite/plugins/virtualEntryPlugin.js +2 -0
  190. package/dist/esm/vite/plugins/virtualEntryPlugin.js.map +1 -1
  191. package/dist/esm/vite/plugins/virtualEntryPlugin.mjs +2 -0
  192. package/dist/esm/vite/plugins/virtualEntryPlugin.mjs.map +1 -1
  193. package/dist/esm/vite/plugins/virtualEntryPlugin.native.js +2 -0
  194. package/dist/esm/vite/plugins/virtualEntryPlugin.native.js.map +1 -1
  195. package/package.json +13 -10
  196. package/src/Root.tsx +12 -2
  197. package/src/createApp.native.tsx +8 -2
  198. package/src/createApp.tsx +18 -3
  199. package/src/fork/__tests__/README.md +8 -0
  200. package/src/fork/__tests__/getPathFromState.test.tsx +1809 -0
  201. package/src/fork/__tests__/getStateFromPath.test.tsx +3188 -0
  202. package/src/fork/getPathFromState.test.ts +146 -0
  203. package/src/fork/getPathFromState.ts +1 -1
  204. package/src/fork/getStateFromPath.test.ts +345 -0
  205. package/src/render.tsx +3 -3
  206. package/src/router/FlagsContext.ts +4 -0
  207. package/src/router/getRoutes.ts +14 -2
  208. package/src/router/matchers.test.ts +120 -0
  209. package/src/router/router.ts +1 -113
  210. package/src/router/utils/getNavigateAction.test.ts +334 -0
  211. package/src/router/utils/getNavigateAction.ts +120 -0
  212. package/src/testing-utils.ts +56 -0
  213. package/src/views/Navigator.tsx +34 -10
  214. package/src/vite/one.ts +5 -0
  215. package/src/vite/plugins/virtualEntryPlugin.ts +4 -1
  216. package/src/vite/types.ts +18 -0
  217. package/types/Root.d.ts +1 -0
  218. package/types/Root.d.ts.map +1 -1
  219. package/types/createApp.d.ts +2 -0
  220. package/types/createApp.d.ts.map +1 -1
  221. package/types/createApp.native.d.ts +2 -0
  222. package/types/createApp.native.d.ts.map +1 -1
  223. package/types/fork/getPathFromState.test.d.ts +2 -0
  224. package/types/fork/getPathFromState.test.d.ts.map +1 -0
  225. package/types/fork/getStateFromPath.test.d.ts +2 -0
  226. package/types/fork/getStateFromPath.test.d.ts.map +1 -0
  227. package/types/router/FlagsContext.d.ts +3 -0
  228. package/types/router/FlagsContext.d.ts.map +1 -0
  229. package/types/router/getRoutes.d.ts.map +1 -1
  230. package/types/router/matchers.test.d.ts +2 -0
  231. package/types/router/matchers.test.d.ts.map +1 -0
  232. package/types/router/router.d.ts.map +1 -1
  233. package/types/router/utils/getNavigateAction.d.ts +17 -0
  234. package/types/router/utils/getNavigateAction.d.ts.map +1 -0
  235. package/types/router/utils/getNavigateAction.test.d.ts +2 -0
  236. package/types/router/utils/getNavigateAction.test.d.ts.map +1 -0
  237. package/types/testing-utils.d.ts +26 -0
  238. package/types/testing-utils.d.ts.map +1 -0
  239. package/types/views/Navigator.d.ts +1 -1
  240. package/types/views/Navigator.d.ts.map +1 -1
  241. package/types/vite/one.d.ts.map +1 -1
  242. package/types/vite/plugins/virtualEntryPlugin.d.ts +2 -0
  243. package/types/vite/plugins/virtualEntryPlugin.d.ts.map +1 -1
  244. package/types/vite/types.d.ts +16 -0
  245. package/types/vite/types.d.ts.map +1 -1
@@ -0,0 +1,273 @@
1
+ import { describe, it, expect } from "vitest";
2
+ import { getNavigateAction } from "./getNavigateAction.native.js";
3
+ describe("getNavigateAction", function () {
4
+ describe("NAVIGATE", function () {
5
+ it("works", function () {
6
+ var actionState = {
7
+ routes: [{
8
+ name: "page-2"
9
+ }]
10
+ },
11
+ navigationState = {
12
+ stale: !1,
13
+ type: "stack",
14
+ key: "stack-pWRo04",
15
+ index: 0,
16
+ routeNames: ["_sitemap", "index", "page-1", "page-2"],
17
+ routes: [{
18
+ name: "page-1",
19
+ key: "page-1-Gc-TeIdZmx_jAcRD-SGcs"
20
+ }],
21
+ preloadedRoutes: []
22
+ },
23
+ action = getNavigateAction(actionState, navigationState);
24
+ expect(action).toStrictEqual({
25
+ type: "NAVIGATE",
26
+ target: "stack-pWRo04",
27
+ payload: {
28
+ key: void 0,
29
+ name: "page-2",
30
+ params: {}
31
+ }
32
+ });
33
+ }), it("handles params", function () {
34
+ var actionState = {
35
+ routes: [{
36
+ name: "page-1",
37
+ params: {
38
+ foo: "foo",
39
+ bar: "bar"
40
+ }
41
+ }]
42
+ },
43
+ navigationState = {
44
+ stale: !1,
45
+ type: "stack",
46
+ key: "stack-pWRo04",
47
+ index: 0,
48
+ routeNames: ["_sitemap", "index", "page-1", "page-2"],
49
+ routes: [{
50
+ name: "page-1",
51
+ key: "page-1-Gc-TeIdZmx_jAcRD-SGcs"
52
+ }],
53
+ preloadedRoutes: []
54
+ },
55
+ action = getNavigateAction(actionState, navigationState);
56
+ expect(action).toStrictEqual({
57
+ type: "NAVIGATE",
58
+ target: "stack-pWRo04",
59
+ payload: {
60
+ key: void 0,
61
+ name: "page-1",
62
+ params: {
63
+ foo: "foo",
64
+ bar: "bar"
65
+ }
66
+ }
67
+ });
68
+ }), it("handles navigating into nested navigator", function () {
69
+ var actionState = {
70
+ routes: [{
71
+ name: "foo",
72
+ state: {
73
+ routes: [{
74
+ name: "bar",
75
+ state: {
76
+ routes: [{
77
+ name: "baz"
78
+ }]
79
+ }
80
+ }]
81
+ }
82
+ }]
83
+ },
84
+ navigationState = {
85
+ stale: !1,
86
+ type: "stack",
87
+ key: "stack-5qQ9ln4FB9",
88
+ index: 0,
89
+ routeNames: ["index", "foo"],
90
+ routes: [{
91
+ name: "index",
92
+ key: "index-Kyz4PdQ7ZAvE0XFhBWydM"
93
+ }],
94
+ preloadedRoutes: []
95
+ },
96
+ action = getNavigateAction(actionState, navigationState);
97
+ expect(action).toStrictEqual({
98
+ type: "NAVIGATE",
99
+ target: "stack-5qQ9ln4FB9",
100
+ payload: {
101
+ key: void 0,
102
+ name: "foo",
103
+ params: {
104
+ screen: "bar",
105
+ params: {
106
+ screen: "baz",
107
+ params: {}
108
+ }
109
+ }
110
+ }
111
+ });
112
+ }), it("handles navigating into nested navigator with route params", function () {
113
+ var actionState = {
114
+ routes: [{
115
+ name: "[level1]",
116
+ params: {
117
+ level1: "foo"
118
+ },
119
+ state: {
120
+ routes: [{
121
+ name: "[level2]",
122
+ params: {
123
+ level1: "foo",
124
+ level2: "bar"
125
+ },
126
+ state: {
127
+ routes: [{
128
+ name: "[level3]",
129
+ params: {
130
+ level1: "foo",
131
+ level2: "bar",
132
+ level3: "baz"
133
+ }
134
+ }]
135
+ }
136
+ }]
137
+ }
138
+ }]
139
+ },
140
+ navigationState = {
141
+ stale: !1,
142
+ type: "stack",
143
+ key: "stack-5qQ9ln4FB9",
144
+ index: 0,
145
+ routeNames: ["index", "[level1]"],
146
+ routes: [{
147
+ name: "index",
148
+ key: "index-Kyz4PdQ7ZAvE0XFhBWydM"
149
+ }],
150
+ preloadedRoutes: []
151
+ },
152
+ action = getNavigateAction(actionState, navigationState);
153
+ expect(action).toStrictEqual({
154
+ type: "NAVIGATE",
155
+ target: "stack-5qQ9ln4FB9",
156
+ payload: {
157
+ key: void 0,
158
+ name: "[level1]",
159
+ params: {
160
+ level1: "foo",
161
+ level2: "bar",
162
+ // not actually necessary, but it's how the current implementation works
163
+ screen: "[level2]",
164
+ params: {
165
+ level1: "foo",
166
+ level2: "bar",
167
+ level3: "baz",
168
+ // not actually necessary, but it's how the current implementation works
169
+ screen: "[level3]",
170
+ params: {
171
+ level1: "foo",
172
+ level2: "bar",
173
+ level3: "baz"
174
+ }
175
+ }
176
+ }
177
+ }
178
+ });
179
+ }), it("correctly finds out where the states diverge and return an action valid payload", function () {
180
+ var actionState = {
181
+ routes: [{
182
+ name: "foo",
183
+ state: {
184
+ routes: [{
185
+ name: "bar",
186
+ state: {
187
+ routes: [{
188
+ name: "baz-2"
189
+ }]
190
+ }
191
+ }]
192
+ }
193
+ }]
194
+ },
195
+ navigationState = {
196
+ stale: !1,
197
+ type: "stack",
198
+ key: "stack-aCzOliK0",
199
+ routeNames: ["index", "foo"],
200
+ index: 0,
201
+ routes: [{
202
+ name: "foo",
203
+ key: "foo-teuUBQHk",
204
+ state: {
205
+ stale: !1,
206
+ type: "stack",
207
+ key: "stack-XZ3RJRBg",
208
+ routeNames: ["bar"],
209
+ index: 0,
210
+ routes: [{
211
+ name: "bar",
212
+ key: "bar-FDtH59Dj",
213
+ state: {
214
+ stale: !1,
215
+ type: "stack",
216
+ key: "stack-s3o7RyPD",
217
+ routeNames: ["baz-1", "baz-2"],
218
+ index: 0,
219
+ routes: [{
220
+ name: "baz-1",
221
+ key: "baz-1-K2zLhRSZ"
222
+ }]
223
+ }
224
+ }]
225
+ }
226
+ }],
227
+ preloadedRoutes: []
228
+ },
229
+ action = getNavigateAction(actionState, navigationState);
230
+ expect(action).toStrictEqual({
231
+ type: "NAVIGATE",
232
+ target: "stack-s3o7RyPD",
233
+ payload: {
234
+ key: void 0,
235
+ name: "baz-2",
236
+ params: {}
237
+ }
238
+ });
239
+ });
240
+ }), describe("PUSH", function () {
241
+ it("returns a NAVIGATE action with a unique key", function () {
242
+ var actionState = {
243
+ routes: [{
244
+ name: "page-2"
245
+ }]
246
+ },
247
+ navigationState = {
248
+ stale: !1,
249
+ type: "stack",
250
+ key: "stack-pWRo04",
251
+ index: 0,
252
+ routeNames: ["_sitemap", "index", "page-1", "page-2"],
253
+ routes: [{
254
+ name: "page-1",
255
+ key: "page-1-Gc-TeIdZmx_jAcRD-SGcs"
256
+ }],
257
+ preloadedRoutes: []
258
+ },
259
+ action = getNavigateAction(actionState, navigationState, "PUSH");
260
+ expect(action).toStrictEqual({
261
+ type: "NAVIGATE",
262
+ target: "stack-pWRo04",
263
+ payload: {
264
+ key: action.payload.key,
265
+ /* since this contains a randomly generated nanoid */
266
+ name: "page-2",
267
+ params: {}
268
+ }
269
+ });
270
+ });
271
+ });
272
+ });
273
+ //# sourceMappingURL=getNavigateAction.test.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["describe","it","expect","getNavigateAction","actionState","routes","name","navigationState","stale","type","key","index","routeNames","preloadedRoutes","action","toStrictEqual","target","payload","params","foo","bar","state","screen","level1","level2","level3"],"sources":["../../../../src/router/utils/getNavigateAction.test.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,33 @@
1
+ import path from "node:path";
2
+ import { getRoutes } from "./router/getRoutes";
3
+ import { getReactNavigationConfig } from "./getReactNavigationConfig";
4
+ const validExtensions = [".js", ".jsx", ".ts", ".tsx"];
5
+ function inMemoryContext(context) {
6
+ return Object.assign(
7
+ (id) => (id = id.replace(/^\.\//, "").replace(/\.\w*$/, ""), typeof context[id] == "function" ? { default: context[id] } : context[id]),
8
+ {
9
+ resolve: (key) => key,
10
+ id: "0",
11
+ keys: () => Object.keys(context).map((key) => {
12
+ const ext = path.extname(key);
13
+ return key = key.replace(/^\.\//, ""), key = key.startsWith("/") ? key : `./${key}`, key = validExtensions.includes(ext) ? key : `${key}.js`, key;
14
+ })
15
+ }
16
+ );
17
+ }
18
+ function getMockContext(context) {
19
+ if (Array.isArray(context))
20
+ return inMemoryContext(
21
+ Object.fromEntries(context.map((filename) => [filename, { default: () => null }]))
22
+ );
23
+ throw new Error("Invalid context");
24
+ }
25
+ function getMockConfig(context, metaOnly = !0) {
26
+ return getReactNavigationConfig(getRoutes(getMockContext(context)), metaOnly);
27
+ }
28
+ export {
29
+ getMockConfig,
30
+ getMockContext,
31
+ inMemoryContext
32
+ };
33
+ //# sourceMappingURL=testing-utils.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/testing-utils.ts"],
4
+ "mappings": "AAAA,OAAO,UAAU;AAEjB,SAAS,iBAAiB;AAC1B,SAAS,gCAAgC;AAczC,MAAM,kBAAkB,CAAC,OAAO,QAAQ,OAAO,MAAM;AAE9C,SAAS,gBAAgB,SAAwB;AACtD,SAAO,OAAO;AAAA,IACZ,CAAC,QACC,KAAK,GAAG,QAAQ,SAAS,EAAE,EAAE,QAAQ,UAAU,EAAE,GAC1C,OAAO,QAAQ,EAAE,KAAM,aAAa,EAAE,SAAS,QAAQ,EAAE,EAAE,IAAI,QAAQ,EAAE;AAAA,IAElF;AAAA,MACE,SAAS,CAAC,QAAgB;AAAA,MAC1B,IAAI;AAAA,MACJ,MAAM,MACJ,OAAO,KAAK,OAAO,EAAE,IAAI,CAAC,QAAQ;AAChC,cAAM,MAAM,KAAK,QAAQ,GAAG;AAC5B,qBAAM,IAAI,QAAQ,SAAS,EAAE,GAC7B,MAAM,IAAI,WAAW,GAAG,IAAI,MAAM,KAAK,GAAG,IAC1C,MAAM,gBAAgB,SAAS,GAAG,IAAI,MAAM,GAAG,GAAG,OAE3C;AAAA,MACT,CAAC;AAAA,IACL;AAAA,EACF;AACF;AAIO,SAAS,eAAe,SAA4B;AACzD,MAAI,MAAM,QAAQ,OAAO;AACvB,WAAO;AAAA,MACL,OAAO,YAAY,QAAQ,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,SAAS,MAAM,KAAK,CAAC,CAAC,CAAC;AAAA,IACnF;AAGF,QAAM,IAAI,MAAM,iBAAiB;AACnC;AAEO,SAAS,cAAc,SAA4B,WAAW,IAAM;AACzE,SAAO,yBAAyB,UAAU,eAAe,OAAO,CAAC,GAAI,QAAQ;AAC/E;",
5
+ "names": []
6
+ }
@@ -0,0 +1,27 @@
1
+ import path from "node:path";
2
+ import { getRoutes } from "./router/getRoutes.mjs";
3
+ import { getReactNavigationConfig } from "./getReactNavigationConfig.mjs";
4
+ const validExtensions = [".js", ".jsx", ".ts", ".tsx"];
5
+ function inMemoryContext(context) {
6
+ return Object.assign(id => (id = id.replace(/^\.\//, "").replace(/\.\w*$/, ""), typeof context[id] == "function" ? {
7
+ default: context[id]
8
+ } : context[id]), {
9
+ resolve: key => key,
10
+ id: "0",
11
+ keys: () => Object.keys(context).map(key => {
12
+ const ext = path.extname(key);
13
+ return key = key.replace(/^\.\//, ""), key = key.startsWith("/") ? key : `./${key}`, key = validExtensions.includes(ext) ? key : `${key}.js`, key;
14
+ })
15
+ });
16
+ }
17
+ function getMockContext(context) {
18
+ if (Array.isArray(context)) return inMemoryContext(Object.fromEntries(context.map(filename => [filename, {
19
+ default: () => null
20
+ }])));
21
+ throw new Error("Invalid context");
22
+ }
23
+ function getMockConfig(context, metaOnly = !0) {
24
+ return getReactNavigationConfig(getRoutes(getMockContext(context)), metaOnly);
25
+ }
26
+ export { getMockConfig, getMockContext, inMemoryContext };
27
+ //# sourceMappingURL=testing-utils.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["path","getRoutes","getReactNavigationConfig","validExtensions","inMemoryContext","context","Object","assign","id","replace","default","resolve","key","keys","map","ext","extname","startsWith","includes","getMockContext","Array","isArray","fromEntries","filename","Error","getMockConfig","metaOnly"],"sources":["../../src/testing-utils.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAOA,IAAA,MAAU;AAEjB,SAASC,SAAA,QAAiB;AAC1B,SAASC,wBAAA,QAAgC;AAczC,MAAMC,eAAA,GAAkB,CAAC,OAAO,QAAQ,OAAO,MAAM;AAE9C,SAASC,gBAAgBC,OAAA,EAAwB;EACtD,OAAOC,MAAA,CAAOC,MAAA,CACXC,EAAA,KACCA,EAAA,GAAKA,EAAA,CAAGC,OAAA,CAAQ,SAAS,EAAE,EAAEA,OAAA,CAAQ,UAAU,EAAE,GAC1C,OAAOJ,OAAA,CAAQG,EAAE,KAAM,aAAa;IAAEE,OAAA,EAASL,OAAA,CAAQG,EAAE;EAAE,IAAIH,OAAA,CAAQG,EAAE,IAElF;IACEG,OAAA,EAAUC,GAAA,IAAgBA,GAAA;IAC1BJ,EAAA,EAAI;IACJK,IAAA,EAAMA,CAAA,KACJP,MAAA,CAAOO,IAAA,CAAKR,OAAO,EAAES,GAAA,CAAKF,GAAA,IAAQ;MAChC,MAAMG,GAAA,GAAMf,IAAA,CAAKgB,OAAA,CAAQJ,GAAG;MAC5B,OAAAA,GAAA,GAAMA,GAAA,CAAIH,OAAA,CAAQ,SAAS,EAAE,GAC7BG,GAAA,GAAMA,GAAA,CAAIK,UAAA,CAAW,GAAG,IAAIL,GAAA,GAAM,KAAKA,GAAG,IAC1CA,GAAA,GAAMT,eAAA,CAAgBe,QAAA,CAASH,GAAG,IAAIH,GAAA,GAAM,GAAGA,GAAG,OAE3CA,GAAA;IACT,CAAC;EACL,CACF;AACF;AAIO,SAASO,eAAed,OAAA,EAA4B;EACzD,IAAIe,KAAA,CAAMC,OAAA,CAAQhB,OAAO,GACvB,OAAOD,eAAA,CACLE,MAAA,CAAOgB,WAAA,CAAYjB,OAAA,CAAQS,GAAA,CAAKS,QAAA,IAAa,CAACA,QAAA,EAAU;IAAEb,OAAA,EAASA,CAAA,KAAM;EAAK,CAAC,CAAC,CAAC,CACnF;EAGF,MAAM,IAAIc,KAAA,CAAM,iBAAiB;AACnC;AAEO,SAASC,cAAcpB,OAAA,EAA4BqB,QAAA,GAAW,IAAM;EACzE,OAAOxB,wBAAA,CAAyBD,SAAA,CAAUkB,cAAA,CAAed,OAAO,CAAC,GAAIqB,QAAQ;AAC/E","ignoreList":[]}
@@ -0,0 +1,38 @@
1
+ import path from "node:path";
2
+ import { getRoutes } from "./router/getRoutes.native.js";
3
+ import { getReactNavigationConfig } from "./getReactNavigationConfig.native.js";
4
+ var validExtensions = [".js", ".jsx", ".ts", ".tsx"];
5
+ function inMemoryContext(context) {
6
+ return Object.assign(function (id) {
7
+ return id = id.replace(/^\.\//, "").replace(/\.\w*$/, ""), typeof context[id] == "function" ? {
8
+ default: context[id]
9
+ } : context[id];
10
+ }, {
11
+ resolve: function (key) {
12
+ return key;
13
+ },
14
+ id: "0",
15
+ keys: function () {
16
+ return Object.keys(context).map(function (key) {
17
+ var ext = path.extname(key);
18
+ return key = key.replace(/^\.\//, ""), key = key.startsWith("/") ? key : `./${key}`, key = validExtensions.includes(ext) ? key : `${key}.js`, key;
19
+ });
20
+ }
21
+ });
22
+ }
23
+ function getMockContext(context) {
24
+ if (Array.isArray(context)) return inMemoryContext(Object.fromEntries(context.map(function (filename) {
25
+ return [filename, {
26
+ default: function () {
27
+ return null;
28
+ }
29
+ }];
30
+ })));
31
+ throw new Error("Invalid context");
32
+ }
33
+ function getMockConfig(context) {
34
+ var metaOnly = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : !0;
35
+ return getReactNavigationConfig(getRoutes(getMockContext(context)), metaOnly);
36
+ }
37
+ export { getMockConfig, getMockContext, inMemoryContext };
38
+ //# sourceMappingURL=testing-utils.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["path","getRoutes","getReactNavigationConfig","validExtensions","inMemoryContext","context","Object","assign","id","replace","default","resolve","key","keys","map","ext","extname","startsWith","includes"],"sources":["../../src/testing-utils.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAOA,IAAA,MAAU;AAEjB,SAASC,SAAA,QAAiB;AAC1B,SAASC,wBAAA,QAAgC;AAczC,IAAAC,eAAM,IAEC,OACL,QAAc,KACX,EAEiF,MAElF;AAC4B,SAC1BC,eAAIA,CAAAC,OAAA;EAAA,OACJC,MAAM,CAAAC,MACJ,WAAYC,EAAA;IACV,OAAAA,EAAA,GAAMA,EAAA,CAAAC,OAAW,QAAQ,EAAG,IAAAA,OAAA,uBAAAJ,OAAA,CAAAG,EAAA;MAC5BE,OAAA,EAAAL,OAAM,CAAAG,EAAI;IAIH,IACRH,OAAA,CAAAG,EAAA;EAAA,GACL;IACFG,OAAA,WAAAA,CAAAC,GAAA;MACF,OAAAA,GAAA;IAIO;IACLJ,EAAI;IACFK,IAAA,WAAAA,CAAA,EAAO;MACL,OAAOP,MAAA,CAAAO,IAAA,CAAYR,OAAA,CAAQ,CAAAS,GAAI,CAAC,UAAAF,GAAA,EAAc;QAChD,IAAAG,GAAA,GAAAf,IAAA,CAAAgB,OAAA,CAAAJ,GAAA;QAGI,OAAIA,GAAM,GAAAA,GAAA,CAAAH,OAAA,QAAiB,OAAAG,GAAA,GAAAA,GAAA,CAAAK,UAAA,QAAAL,GAAA,QAAAA,GAAA,IAAAA,GAAA,GAAAT,eAAA,CAAAe,QAAA,CAAAH,GAAA,IAAAH,GAAA,MAAAA,GAAA,OAAAA,GAAA;MACnC;IAEO;EACL;AACF","ignoreList":[]}
@@ -1,14 +1,23 @@
1
- import { StackRouter, useNavigationBuilder } from "@react-navigation/native";
1
+ import {
2
+ StackRouter,
3
+ useNavigationBuilder
4
+ } from "@react-navigation/native";
2
5
  import * as React from "react";
3
6
  import { SafeAreaView } from "react-native-safe-area-context";
4
7
  import { useFilterScreenChildren } from "../layouts/withLayoutContext";
5
8
  import { useContextKey } from "../router/Route";
6
9
  import { useSortedScreens } from "../router/useScreens";
7
10
  import { Screen } from "./Screen";
11
+ import { FlagsContext } from "../router/FlagsContext";
8
12
  import { jsx } from "react/jsx-runtime";
9
13
  const NavigatorContext = React.createContext(null);
10
14
  process.env.NODE_ENV !== "production" && (NavigatorContext.displayName = "NavigatorContext");
11
- function Navigator({ initialRouteName, screenOptions, children, router }) {
15
+ function Navigator({
16
+ initialRouteName,
17
+ screenOptions,
18
+ children,
19
+ router
20
+ }) {
12
21
  const contextKey = useContextKey(), { screens, children: otherSlot } = useFilterScreenChildren(children, {
13
22
  isCustomNavigator: !0,
14
23
  contextKey
@@ -33,13 +42,16 @@ function QualifiedNavigator({
33
42
  contextKey,
34
43
  router = StackRouter
35
44
  }) {
36
- const { state, navigation, descriptors, NavigationContent } = useNavigationBuilder(router, {
37
- // Used for getting the parent with navigation.getParent('/normalized/path')
38
- id: contextKey,
39
- children: screens,
40
- screenOptions,
41
- initialRouteName
42
- }), value = React.useMemo(() => ({
45
+ const { state, navigation, descriptors, NavigationContent } = useNavigationBuilder(
46
+ router,
47
+ {
48
+ // Used for getting the parent with navigation.getParent('/normalized/path')
49
+ id: contextKey,
50
+ children: screens,
51
+ screenOptions,
52
+ initialRouteName
53
+ }
54
+ ), value = React.useMemo(() => ({
43
55
  contextKey,
44
56
  state,
45
57
  navigation,
@@ -55,8 +67,14 @@ function useNavigatorContext() {
55
67
  return context;
56
68
  }
57
69
  function useSlot() {
58
- const context = useNavigatorContext(), { state, descriptors } = context, current = state.routes.find((route, i) => state.index === i);
59
- return current ? descriptors[current.key]?.render() ?? null : null;
70
+ const context = useNavigatorContext(), flags = React.useContext(FlagsContext), { state, descriptors } = context, current = state.routes.find((route, i) => state.index === i);
71
+ if (!current)
72
+ return null;
73
+ let renderedElement = descriptors[current.key]?.render() ?? null;
74
+ return flags.experimentalPreventLayoutRemounting && renderedElement !== null && (renderedElement = {
75
+ ...renderedElement,
76
+ key: "one-uses-a-static-key-here-for-slot-navigator"
77
+ }), renderedElement;
60
78
  }
61
79
  const Slot = React.memo(function(props) {
62
80
  const contextKey = useContextKey();
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/views/Navigator.tsx"],
4
- "mappings": "AACA,SAAS,aAAa,4BAAgD;AACtE,YAAY,WAAW;AACvB,SAAS,oBAAoB;AAC7B,SAAS,+BAA+B;AACxC,SAAS,qBAAqB;AAC9B,SAAS,wBAAwB;AACjC,SAAS,cAAc;AA0CnB;AArCG,MAAM,mBAAmB,MAAM,cAM5B,IAAI;AAEV,QAAQ,IAAI,aAAa,iBAC3B,iBAAiB,cAAc;AAW1B,SAAS,UAAU,EAAE,kBAAkB,eAAe,UAAU,OAAO,GAAmB;AAC/F,QAAM,aAAa,cAAc,GAG3B,EAAE,SAAS,UAAU,UAAU,IAAI,wBAAwB,UAAU;AAAA,IACzE,mBAAmB;AAAA,IACnB;AAAA,EACF,CAAC,GAEK,SAAS,iBAAiB,WAAW,CAAC,CAAC;AAE7C,SAAK,OAAO,SAMV;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA,SAAS;AAAA,MACT;AAAA,MACA;AAAA,MAEC;AAAA;AAAA,EACH,KAbA,QAAQ,KAAK,iBAAiB,UAAU,oBAAoB,GACrD;AAcX;AAEA,SAAS,mBAAmB;AAAA,EAC1B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,SAAS;AACX,GAAwE;AACtE,QAAM,EAAE,OAAO,YAAY,aAAa,kBAAkB,IAAI,qBAAqB,QAAQ;AAAA;AAAA,IAEzF,IAAI;AAAA,IACJ,UAAU;AAAA,IACV;AAAA,IACA;AAAA,EACF,CAAC,GAEK,QAAQ,MAAM,QAAQ,OACnB;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IACC,CAAC,YAAY,OAAO,YAAY,aAAa,MAAM,CAAC;AAEvD,SACE,oBAAC,iBAAiB,UAAjB,EAA0B,OACzB,8BAAC,qBAAmB,UAAS,GAC/B;AAEJ;AAEO,SAAS,sBAAsB;AACpC,QAAM,UAAU,MAAM,WAAW,gBAAgB;AACjD,MAAI,CAAC;AACH,UAAM,IAAI,MAAM,yDAAyD;AAE3E,SAAO;AACT;AAEO,SAAS,UAAU;AACxB,QAAM,UAAU,oBAAoB,GAE9B,EAAE,OAAO,YAAY,IAAI,SAEzB,UAAU,MAAM,OAAO,KAAK,CAAC,OAAO,MACjC,MAAM,UAAU,CACxB;AAED,SAAK,UAIE,YAAY,QAAQ,GAAG,GAAG,OAAO,KAAK,OAHpC;AAIX;AAGO,MAAM,OAAO,MAAM,KAAK,SAAc,OAAyC;AACpF,QAAM,aAAa,cAAc;AAIjC,SAHgB,MAAM,WAAW,gBAAgB,GAGpC,eAAe,aAGxB,oBAAC,aAAW,GAAG,OACb,8BAAC,iBAAc,GACjB,IAIG,oBAAC,iBAAc;AACxB,CAAC;AAEM,SAAS,gBAAgB;AAC9B,SAAO,QAAQ;AACjB;AAEO,SAAS,mBAAmB;AACjC,SACE,oBAAC,gBAAa,OAAO,EAAE,MAAM,EAAE,GAC7B,8BAAC,aACC,8BAAC,iBAAc,GACjB,GACF;AAEJ;AAEA,UAAU,OAAO;AACjB,UAAU,aAAa;AAGvB,UAAU,SAAS;",
4
+ "mappings": "AACA;AAAA,EACE;AAAA,EACA;AAAA,OAEK;AACP,YAAY,WAAW;AACvB,SAAS,oBAAoB;AAC7B,SAAS,+BAA+B;AACxC,SAAS,qBAAqB;AAC9B,SAAS,wBAAwB;AACjC,SAAS,cAAc;AACvB,SAAS,oBAAoB;AA+CzB;AA1CG,MAAM,mBAAmB,MAAM,cAM5B,IAAI;AAEV,QAAQ,IAAI,aAAa,iBAC3B,iBAAiB,cAAc;AAW1B,SAAS,UAAU;AAAA,EACxB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAAmB;AACjB,QAAM,aAAa,cAAc,GAG3B,EAAE,SAAS,UAAU,UAAU,IAAI,wBAAwB,UAAU;AAAA,IACzE,mBAAmB;AAAA,IACnB;AAAA,EACF,CAAC,GAEK,SAAS,iBAAiB,WAAW,CAAC,CAAC;AAE7C,SAAK,OAAO,SAMV;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA,SAAS;AAAA,MACT;AAAA,MACA;AAAA,MAEC;AAAA;AAAA,EACH,KAbA,QAAQ,KAAK,iBAAiB,UAAU,oBAAoB,GACrD;AAcX;AAEA,SAAS,mBAAmB;AAAA,EAC1B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,SAAS;AACX,GAAwE;AACtE,QAAM,EAAE,OAAO,YAAY,aAAa,kBAAkB,IAAI;AAAA,IAC5D;AAAA,IACA;AAAA;AAAA,MAEE,IAAI;AAAA,MACJ,UAAU;AAAA,MACV;AAAA,MACA;AAAA,IACF;AAAA,EACF,GAEM,QAAQ,MAAM,QAAQ,OACnB;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IACC,CAAC,YAAY,OAAO,YAAY,aAAa,MAAM,CAAC;AAEvD,SACE,oBAAC,iBAAiB,UAAjB,EAA0B,OACzB,8BAAC,qBAAmB,UAAS,GAC/B;AAEJ;AAEO,SAAS,sBAAsB;AACpC,QAAM,UAAU,MAAM,WAAW,gBAAgB;AACjD,MAAI,CAAC;AACH,UAAM,IAAI,MAAM,yDAAyD;AAE3E,SAAO;AACT;AAEO,SAAS,UAAU;AACxB,QAAM,UAAU,oBAAoB,GAC9B,QAAQ,MAAM,WAAW,YAAY,GAErC,EAAE,OAAO,YAAY,IAAI,SAEzB,UAAU,MAAM,OAAO,KAAK,CAAC,OAAO,MACjC,MAAM,UAAU,CACxB;AAED,MAAI,CAAC;AACH,WAAO;AAGT,MAAI,kBAAkB,YAAY,QAAQ,GAAG,GAAG,OAAO,KAAK;AAE5D,SAAI,MAAM,uCAAuC,oBAAoB,SAEnE,kBAAkB;AAAA,IAChB,GAAG;AAAA,IACH,KAAK;AAAA,EACP,IAGK;AACT;AAGO,MAAM,OAAO,MAAM,KAAK,SAAc,OAAyC;AACpF,QAAM,aAAa,cAAc;AAIjC,SAHgB,MAAM,WAAW,gBAAgB,GAGpC,eAAe,aAGxB,oBAAC,aAAW,GAAG,OACb,8BAAC,iBAAc,GACjB,IAIG,oBAAC,iBAAc;AACxB,CAAC;AAEM,SAAS,gBAAgB;AAC9B,SAAO,QAAQ;AACjB;AAEO,SAAS,mBAAmB;AACjC,SACE,oBAAC,gBAAa,OAAO,EAAE,MAAM,EAAE,GAC7B,8BAAC,aACC,8BAAC,iBAAc,GACjB,GACF;AAEJ;AAEA,UAAU,OAAO;AACjB,UAAU,aAAa;AAGvB,UAAU,SAAS;",
5
5
  "names": []
6
6
  }
@@ -5,6 +5,7 @@ import { useFilterScreenChildren } from "../layouts/withLayoutContext.mjs";
5
5
  import { useContextKey } from "../router/Route.mjs";
6
6
  import { useSortedScreens } from "../router/useScreens.mjs";
7
7
  import { Screen } from "./Screen.mjs";
8
+ import { FlagsContext } from "../router/FlagsContext.mjs";
8
9
  import { jsx } from "react/jsx-runtime";
9
10
  const NavigatorContext = React.createContext(null);
10
11
  process.env.NODE_ENV !== "production" && (NavigatorContext.displayName = "NavigatorContext");
@@ -73,12 +74,18 @@ function useNavigatorContext() {
73
74
  }
74
75
  function useSlot() {
75
76
  const context = useNavigatorContext(),
77
+ flags = React.useContext(FlagsContext),
76
78
  {
77
79
  state,
78
80
  descriptors
79
81
  } = context,
80
82
  current = state.routes.find((route, i) => state.index === i);
81
- return current ? descriptors[current.key]?.render() ?? null : null;
83
+ if (!current) return null;
84
+ let renderedElement = descriptors[current.key]?.render() ?? null;
85
+ return flags.experimentalPreventLayoutRemounting && renderedElement !== null && (renderedElement = {
86
+ ...renderedElement,
87
+ key: "one-uses-a-static-key-here-for-slot-navigator"
88
+ }), renderedElement;
82
89
  }
83
90
  const Slot = React.memo(function (props) {
84
91
  const contextKey = useContextKey();
@@ -1 +1 @@
1
- {"version":3,"names":["StackRouter","useNavigationBuilder","React","SafeAreaView","useFilterScreenChildren","useContextKey","useSortedScreens","Screen","jsx","NavigatorContext","createContext","process","env","NODE_ENV","displayName","Navigator","initialRouteName","screenOptions","children","router","contextKey","screens","otherSlot","isCustomNavigator","sorted","length","QualifiedNavigator","console","warn","state","navigation","descriptors","NavigationContent","id","value","useMemo","Provider","useNavigatorContext","context","useContext","Error","useSlot","current","routes","find","route","i","index","key","render","Slot","memo","props","QualifiedSlot","DefaultNavigator","style","flex"],"sources":["../../../src/views/Navigator.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["StackRouter","useNavigationBuilder","React","SafeAreaView","useFilterScreenChildren","useContextKey","useSortedScreens","Screen","FlagsContext","jsx","NavigatorContext","createContext","process","env","NODE_ENV","displayName","Navigator","initialRouteName","screenOptions","children","router","contextKey","screens","otherSlot","isCustomNavigator","sorted","length","QualifiedNavigator","console","warn","state","navigation","descriptors","NavigationContent","id","value","useMemo","Provider","useNavigatorContext","context","useContext","Error","useSlot","flags","current","routes","find","route","i","index","renderedElement","key","render","experimentalPreventLayoutRemounting","Slot","memo","props","QualifiedSlot","DefaultNavigator","style","flex"],"sources":["../../../src/views/Navigator.tsx"],"sourcesContent":[null],"mappings":"AACA,SACEA,WAAA,EACAC,oBAAA,QAEK;AACP,YAAYC,KAAA,MAAW;AACvB,SAASC,YAAA,QAAoB;AAC7B,SAASC,uBAAA,QAA+B;AACxC,SAASC,aAAA,QAAqB;AAC9B,SAASC,gBAAA,QAAwB;AACjC,SAASC,MAAA,QAAc;AACvB,SAASC,YAAA,QAAoB;AA+CzB,SAAAC,GAAA;AA1CG,MAAMC,gBAAA,GAAmBR,KAAA,CAAMS,aAAA,CAM5B,IAAI;AAEVC,OAAA,CAAQC,GAAA,CAAIC,QAAA,KAAa,iBAC3BJ,gBAAA,CAAiBK,WAAA,GAAc;AAW1B,SAASC,UAAU;EACxBC,gBAAA;EACAC,aAAA;EACAC,QAAA;EACAC;AACF,GAAmB;EACjB,MAAMC,UAAA,GAAahB,aAAA,CAAc;IAG3B;MAAEiB,OAAA;MAASH,QAAA,EAAUI;IAAU,IAAInB,uBAAA,CAAwBe,QAAA,EAAU;MACzEK,iBAAA,EAAmB;MACnBH;IACF,CAAC;IAEKI,MAAA,GAASnB,gBAAA,CAAiBgB,OAAA,IAAW,EAAE;EAE7C,OAAKG,MAAA,CAAOC,MAAA,GAMV,eAAAjB,GAAA,CAACkB,kBAAA;IACCV,gBAAA;IACAC,aAAA;IACAI,OAAA,EAASG,MAAA;IACTJ,UAAA;IACAD,MAAA;IAECD,QAAA,EAAAI;EAAA,CACH,KAbAK,OAAA,CAAQC,IAAA,CAAK,iBAAiBR,UAAU,oBAAoB,GACrD;AAcX;AAEA,SAASM,mBAAmB;EAC1BV,gBAAA;EACAC,aAAA;EACAC,QAAA;EACAG,OAAA;EACAD,UAAA;EACAD,MAAA,GAASpB;AACX,GAAwE;EACtE,MAAM;MAAE8B,KAAA;MAAOC,UAAA;MAAYC,WAAA;MAAaC;IAAkB,IAAIhC,oBAAA,CAC5DmB,MAAA,EACA;MAAA;MAEEc,EAAA,EAAIb,UAAA;MACJF,QAAA,EAAUG,OAAA;MACVJ,aAAA;MACAD;IACF,CACF;IAEMkB,KAAA,GAAQjC,KAAA,CAAMkC,OAAA,CAAQ,OACnB;MACLf,UAAA;MACAS,KAAA;MACAC,UAAA;MACAC,WAAA;MACAZ;IACF,IACC,CAACC,UAAA,EAAYS,KAAA,EAAOC,UAAA,EAAYC,WAAA,EAAaZ,MAAM,CAAC;EAEvD,OACE,eAAAX,GAAA,CAACC,gBAAA,CAAiB2B,QAAA,EAAjB;IAA0BF,KAAA;IACzBhB,QAAA,iBAAAV,GAAA,CAACwB,iBAAA;MAAmBd;IAAA,CAAS;EAAA,CAC/B;AAEJ;AAEO,SAASmB,oBAAA,EAAsB;EACpC,MAAMC,OAAA,GAAUrC,KAAA,CAAMsC,UAAA,CAAW9B,gBAAgB;EACjD,IAAI,CAAC6B,OAAA,EACH,MAAM,IAAIE,KAAA,CAAM,yDAAyD;EAE3E,OAAOF,OAAA;AACT;AAEO,SAASG,QAAA,EAAU;EACxB,MAAMH,OAAA,GAAUD,mBAAA,CAAoB;IAC9BK,KAAA,GAAQzC,KAAA,CAAMsC,UAAA,CAAWhC,YAAY;IAErC;MAAEsB,KAAA;MAAOE;IAAY,IAAIO,OAAA;IAEzBK,OAAA,GAAUd,KAAA,CAAMe,MAAA,CAAOC,IAAA,CAAK,CAACC,KAAA,EAAOC,CAAA,KACjClB,KAAA,CAAMmB,KAAA,KAAUD,CACxB;EAED,IAAI,CAACJ,OAAA,EACH,OAAO;EAGT,IAAIM,eAAA,GAAkBlB,WAAA,CAAYY,OAAA,CAAQO,GAAG,GAAGC,MAAA,CAAO,KAAK;EAE5D,OAAIT,KAAA,CAAMU,mCAAA,IAAuCH,eAAA,KAAoB,SAEnEA,eAAA,GAAkB;IAChB,GAAGA,eAAA;IACHC,GAAA,EAAK;EACP,IAGKD,eAAA;AACT;AAGO,MAAMI,IAAA,GAAOpD,KAAA,CAAMqD,IAAA,CAAK,UAAcC,KAAA,EAAyC;EACpF,MAAMnC,UAAA,GAAahB,aAAA,CAAc;EAIjC,OAHgBH,KAAA,CAAMsC,UAAA,CAAW9B,gBAAgB,GAGpCW,UAAA,KAAeA,UAAA,GAGxB,eAAAZ,GAAA,CAACO,SAAA;IAAW,GAAGwC,KAAA;IACbrC,QAAA,iBAAAV,GAAA,CAACgD,aAAA,IAAc;EAAA,CACjB,IAIG,eAAAhD,GAAA,CAACgD,aAAA,IAAc;AACxB,CAAC;AAEM,SAASA,cAAA,EAAgB;EAC9B,OAAOf,OAAA,CAAQ;AACjB;AAEO,SAASgB,iBAAA,EAAmB;EACjC,OACE,eAAAjD,GAAA,CAACN,YAAA;IAAawD,KAAA,EAAO;MAAEC,IAAA,EAAM;IAAE;IAC7BzC,QAAA,iBAAAV,GAAA,CAACO,SAAA;MACCG,QAAA,iBAAAV,GAAA,CAACgD,aAAA,IAAc;IAAA,CACjB;EAAA,CACF;AAEJ;AAEAzC,SAAA,CAAUsC,IAAA,GAAOA,IAAA;AACjBtC,SAAA,CAAUwB,UAAA,GAAaF,mBAAA;AAGvBtB,SAAA,CAAUT,MAAA,GAASA,MAAA","ignoreList":[]}
@@ -6,6 +6,7 @@ import { useFilterScreenChildren } from "../layouts/withLayoutContext.native.js"
6
6
  import { useContextKey } from "../router/Route.native.js";
7
7
  import { useSortedScreens } from "../router/useScreens.native.js";
8
8
  import { Screen } from "./Screen.native.js";
9
+ import { FlagsContext } from "../router/FlagsContext.native.js";
9
10
  var NavigatorContext = /* @__PURE__ */React.createContext(null);
10
11
  process.env.NODE_ENV !== "production" && (NavigatorContext.displayName = "NavigatorContext");
11
12
  function Navigator(param) {
@@ -78,6 +79,7 @@ function useNavigatorContext() {
78
79
  function useSlot() {
79
80
  var _descriptors_current_key,
80
81
  context = useNavigatorContext(),
82
+ flags = React.useContext(FlagsContext),
81
83
  {
82
84
  state,
83
85
  descriptors
@@ -86,8 +88,12 @@ function useSlot() {
86
88
  return state.index === i;
87
89
  });
88
90
  if (!current) return null;
89
- var _descriptors_current_key_render;
90
- return (_descriptors_current_key_render = (_descriptors_current_key = descriptors[current.key]) === null || _descriptors_current_key === void 0 ? void 0 : _descriptors_current_key.render()) !== null && _descriptors_current_key_render !== void 0 ? _descriptors_current_key_render : null;
91
+ var _descriptors_current_key_render,
92
+ renderedElement = (_descriptors_current_key_render = (_descriptors_current_key = descriptors[current.key]) === null || _descriptors_current_key === void 0 ? void 0 : _descriptors_current_key.render()) !== null && _descriptors_current_key_render !== void 0 ? _descriptors_current_key_render : null;
93
+ return flags.experimentalPreventLayoutRemounting && renderedElement !== null && (renderedElement = {
94
+ ...renderedElement,
95
+ key: "one-uses-a-static-key-here-for-slot-navigator"
96
+ }), renderedElement;
91
97
  }
92
98
  var Slot = /* @__PURE__ */React.memo(function (props) {
93
99
  var contextKey = useContextKey(),
@@ -1 +1 @@
1
- {"version":3,"names":["jsx","_jsx","StackRouter","useNavigationBuilder","React","SafeAreaView","useFilterScreenChildren","useContextKey","useSortedScreens","Screen","NavigatorContext","createContext","process","env","NODE_ENV","displayName","Navigator","param","initialRouteName","screenOptions","children","router","contextKey","screens","otherSlot","isCustomNavigator","sorted","length","QualifiedNavigator","console","warn","state","navigation","descriptors","NavigationContent","id","value","useMemo","Provider","useNavigatorContext","context","useContext","Error","useSlot","_descriptors_current_key","current","routes","find","route","i","index","_descriptors_current_key_render","key","render","Slot","memo","props","QualifiedSlot"],"sources":["../../../src/views/Navigator.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["jsx","_jsx","StackRouter","useNavigationBuilder","React","SafeAreaView","useFilterScreenChildren","useContextKey","useSortedScreens","Screen","FlagsContext","NavigatorContext","createContext","process","env","NODE_ENV","displayName","Navigator","param","initialRouteName","screenOptions","children","router","contextKey","screens","otherSlot","isCustomNavigator","sorted","length","QualifiedNavigator","console","warn","state","navigation","descriptors","NavigationContent","id","value","useMemo","Provider","useNavigatorContext","context","useContext","Error","useSlot","_descriptors_current_key","flags","current","routes","find","route","i","index","_descriptors_current_key_render","renderedElement","key","render","experimentalPreventLayoutRemounting","Slot","memo","props","QualifiedSlot","DefaultNavigator","style","flex"],"sources":["../../../src/views/Navigator.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -299,7 +299,11 @@ function one(options = {}) {
299
299
  }
300
300
  };
301
301
  })(), nativeWebDevAndProdPlugsin = [clientTreeShakePlugin(), reactScanPlugin];
302
- return globalThis.__vxrnAddNativePlugins = nativeWebDevAndProdPlugsin, globalThis.__vxrnAddWebPluginsProd = devAndProdPlugins, [
302
+ globalThis.__vxrnAddNativePlugins = nativeWebDevAndProdPlugsin, globalThis.__vxrnAddWebPluginsProd = devAndProdPlugins;
303
+ const flags = {
304
+ experimentalPreventLayoutRemounting: options.router?.experimental?.preventLayoutRemounting
305
+ };
306
+ return [
303
307
  ...devAndProdPlugins,
304
308
  ...nativeWebDevAndProdPlugsin,
305
309
  /**
@@ -310,6 +314,7 @@ function one(options = {}) {
310
314
  fixDependenciesPlugin(options.deps),
311
315
  createVirtualEntry({
312
316
  ...options,
317
+ flags,
313
318
  root: "app"
314
319
  }),
315
320
  {