@multiplatform.one/router 5.0.26 → 6.0.0

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 (249) hide show
  1. package/dist/cjs/hooks/index.cjs +31 -0
  2. package/dist/cjs/hooks/index.native.js +34 -0
  3. package/dist/cjs/hooks/index.native.js.map +1 -0
  4. package/dist/cjs/hooks/useUrlState.cjs +185 -0
  5. package/dist/cjs/hooks/useUrlState.native.js +203 -0
  6. package/dist/cjs/hooks/useUrlState.native.js.map +1 -0
  7. package/dist/cjs/hooks/useUrlState.spec.cjs +280 -0
  8. package/dist/cjs/hooks/useUrlState.spec.native.js +315 -0
  9. package/dist/cjs/hooks/useUrlState.spec.native.js.map +1 -0
  10. package/dist/cjs/index.cjs +9 -6
  11. package/dist/cjs/index.native.js +16 -13
  12. package/dist/cjs/index.native.js.map +1 -6
  13. package/dist/cjs/index.storybook.cjs +34 -0
  14. package/dist/cjs/index.storybook.native.js +37 -0
  15. package/dist/cjs/index.storybook.native.js.map +1 -0
  16. package/dist/cjs/router/EmptyRouter.cjs +78 -0
  17. package/dist/cjs/router/EmptyRouter.native.js +106 -0
  18. package/dist/cjs/router/EmptyRouter.native.js.map +1 -0
  19. package/dist/cjs/router/ReactRouter.cjs +107 -0
  20. package/dist/cjs/router/ReactRouter.native.js +135 -0
  21. package/dist/cjs/router/ReactRouter.native.js.map +1 -0
  22. package/dist/cjs/router/index.cjs +17 -67
  23. package/dist/cjs/router/index.native.js +22 -81
  24. package/dist/cjs/router/index.native.js.map +1 -6
  25. package/dist/cjs/router/index.storybook-expo.cjs +8 -6
  26. package/dist/cjs/router/index.storybook-expo.native.js +14 -11
  27. package/dist/cjs/router/index.storybook-expo.native.js.map +1 -6
  28. package/dist/cjs/router/index.storybook.cjs +8 -6
  29. package/dist/cjs/router/index.storybook.native.js +14 -11
  30. package/dist/cjs/router/index.storybook.native.js.map +1 -6
  31. package/dist/cjs/router/index.webext.cjs +8 -6
  32. package/dist/cjs/router/index.webext.native.js +14 -11
  33. package/dist/cjs/router/index.webext.native.js.map +1 -6
  34. package/dist/cjs/types.cjs +7 -5
  35. package/dist/cjs/types.native.js +11 -5
  36. package/dist/cjs/types.native.js.map +1 -6
  37. package/dist/esm/hooks/index.mjs +3 -0
  38. package/dist/esm/hooks/index.mjs.map +1 -0
  39. package/dist/esm/hooks/index.native.js +3 -0
  40. package/dist/esm/hooks/index.native.js.map +1 -0
  41. package/dist/esm/hooks/useUrlState.mjs +157 -0
  42. package/dist/esm/hooks/useUrlState.mjs.map +1 -0
  43. package/dist/esm/hooks/useUrlState.native.js +172 -0
  44. package/dist/esm/hooks/useUrlState.native.js.map +1 -0
  45. package/dist/esm/hooks/useUrlState.spec.mjs +257 -0
  46. package/dist/esm/hooks/useUrlState.spec.mjs.map +1 -0
  47. package/dist/esm/hooks/useUrlState.spec.native.js +289 -0
  48. package/dist/esm/hooks/useUrlState.spec.native.js.map +1 -0
  49. package/dist/esm/index.mjs +1 -0
  50. package/dist/esm/index.mjs.map +1 -1
  51. package/dist/esm/index.native.js +4 -3
  52. package/dist/esm/index.native.js.map +1 -6
  53. package/dist/esm/index.storybook.mjs +5 -0
  54. package/dist/esm/index.storybook.mjs.map +1 -0
  55. package/dist/esm/index.storybook.native.js +5 -0
  56. package/dist/esm/index.storybook.native.js.map +1 -0
  57. package/dist/esm/router/EmptyRouter.mjs +49 -0
  58. package/dist/esm/router/EmptyRouter.mjs.map +1 -0
  59. package/dist/esm/router/EmptyRouter.native.js +74 -0
  60. package/dist/esm/router/EmptyRouter.native.js.map +1 -0
  61. package/dist/esm/router/ReactRouter.mjs +79 -0
  62. package/dist/esm/router/ReactRouter.mjs.map +1 -0
  63. package/dist/esm/router/ReactRouter.native.js +104 -0
  64. package/dist/esm/router/ReactRouter.native.js.map +1 -0
  65. package/dist/esm/router/index.mjs +1 -53
  66. package/dist/esm/router/index.mjs.map +1 -1
  67. package/dist/esm/router/index.native.js +3 -71
  68. package/dist/esm/router/index.native.js.map +1 -6
  69. package/dist/esm/router/index.storybook-expo.mjs +1 -1
  70. package/dist/esm/router/index.storybook-expo.mjs.map +1 -1
  71. package/dist/esm/router/index.storybook-expo.native.js +2 -2
  72. package/dist/esm/router/index.storybook-expo.native.js.map +1 -6
  73. package/dist/esm/router/index.storybook.mjs +1 -1
  74. package/dist/esm/router/index.storybook.mjs.map +1 -1
  75. package/dist/esm/router/index.storybook.native.js +2 -2
  76. package/dist/esm/router/index.storybook.native.js.map +1 -6
  77. package/dist/esm/router/index.webext.mjs +1 -1
  78. package/dist/esm/router/index.webext.mjs.map +1 -1
  79. package/dist/esm/router/index.webext.native.js +2 -2
  80. package/dist/esm/router/index.webext.native.js.map +1 -6
  81. package/dist/esm/types.native.js +2 -1
  82. package/dist/esm/types.native.js.map +1 -6
  83. package/dist/jsx/hooks/index.mjs +3 -0
  84. package/dist/jsx/hooks/index.mjs.map +1 -0
  85. package/dist/jsx/hooks/index.native.js +34 -0
  86. package/dist/jsx/hooks/index.native.js.map +1 -0
  87. package/dist/jsx/hooks/useUrlState.mjs +157 -0
  88. package/dist/jsx/hooks/useUrlState.mjs.map +1 -0
  89. package/dist/jsx/hooks/useUrlState.native.js +203 -0
  90. package/dist/jsx/hooks/useUrlState.native.js.map +1 -0
  91. package/dist/jsx/hooks/useUrlState.spec.mjs +257 -0
  92. package/dist/jsx/hooks/useUrlState.spec.mjs.map +1 -0
  93. package/dist/jsx/hooks/useUrlState.spec.native.js +315 -0
  94. package/dist/jsx/hooks/useUrlState.spec.native.js.map +1 -0
  95. package/dist/jsx/index.js +3 -2
  96. package/dist/jsx/index.js.map +1 -6
  97. package/dist/jsx/index.mjs +1 -0
  98. package/dist/jsx/index.mjs.map +1 -1
  99. package/dist/jsx/index.native.js +25 -3
  100. package/dist/jsx/index.native.js.map +1 -6
  101. package/dist/jsx/index.storybook.mjs +5 -0
  102. package/dist/jsx/index.storybook.mjs.map +1 -0
  103. package/dist/jsx/index.storybook.native.js +37 -0
  104. package/dist/jsx/index.storybook.native.js.map +1 -0
  105. package/dist/jsx/router/EmptyRouter.mjs +49 -0
  106. package/dist/jsx/router/EmptyRouter.mjs.map +1 -0
  107. package/dist/jsx/router/EmptyRouter.native.js +106 -0
  108. package/dist/jsx/router/EmptyRouter.native.js.map +1 -0
  109. package/dist/jsx/router/ReactRouter.mjs +79 -0
  110. package/dist/jsx/router/ReactRouter.mjs.map +1 -0
  111. package/dist/jsx/router/ReactRouter.native.js +135 -0
  112. package/dist/jsx/router/ReactRouter.native.js.map +1 -0
  113. package/dist/jsx/router/index.mjs +1 -53
  114. package/dist/jsx/router/index.mjs.map +1 -1
  115. package/dist/jsx/router/index.native.js +31 -68
  116. package/dist/jsx/router/index.native.js.map +1 -6
  117. package/dist/jsx/router/index.storybook-expo.mjs +1 -1
  118. package/dist/jsx/router/index.storybook-expo.mjs.map +1 -1
  119. package/dist/jsx/router/index.storybook-expo.native.js +23 -2
  120. package/dist/jsx/router/index.storybook-expo.native.js.map +1 -6
  121. package/dist/jsx/router/index.storybook.mjs +1 -1
  122. package/dist/jsx/router/index.storybook.mjs.map +1 -1
  123. package/dist/jsx/router/index.storybook.native.js +23 -2
  124. package/dist/jsx/router/index.storybook.native.js.map +1 -6
  125. package/dist/jsx/router/index.webext.mjs +1 -1
  126. package/dist/jsx/router/index.webext.mjs.map +1 -1
  127. package/dist/jsx/router/index.webext.native.js +23 -2
  128. package/dist/jsx/router/index.webext.native.js.map +1 -6
  129. package/dist/jsx/types.native.js +21 -1
  130. package/dist/jsx/types.native.js.map +1 -6
  131. package/package.json +46 -36
  132. package/src/hooks/README.md +232 -0
  133. package/src/hooks/index.ts +8 -0
  134. package/src/hooks/useUrlState.spec.ts +219 -0
  135. package/src/hooks/useUrlState.ts +231 -0
  136. package/src/index.storybook.ts +3 -0
  137. package/src/index.ts +1 -21
  138. package/src/router/EmptyRouter.tsx +50 -0
  139. package/src/router/{reactRouter.tsx → ReactRouter.tsx} +27 -22
  140. package/src/router/index.storybook-expo.tsx +1 -22
  141. package/src/router/index.storybook.tsx +1 -22
  142. package/src/router/index.tsx +1 -97
  143. package/src/router/index.webext.tsx +1 -22
  144. package/src/types.tsx +3 -24
  145. package/dist/cjs/index.js +0 -16
  146. package/dist/cjs/index.js.map +0 -6
  147. package/dist/cjs/router/emptyRouter.cjs +0 -55
  148. package/dist/cjs/router/emptyRouter.js +0 -47
  149. package/dist/cjs/router/emptyRouter.js.map +0 -6
  150. package/dist/cjs/router/emptyRouter.native.js +0 -77
  151. package/dist/cjs/router/emptyRouter.native.js.map +0 -6
  152. package/dist/cjs/router/index.electron.cjs +0 -18
  153. package/dist/cjs/router/index.electron.js +0 -15
  154. package/dist/cjs/router/index.electron.js.map +0 -6
  155. package/dist/cjs/router/index.electron.native.js +0 -20
  156. package/dist/cjs/router/index.electron.native.js.map +0 -6
  157. package/dist/cjs/router/index.js +0 -63
  158. package/dist/cjs/router/index.js.map +0 -6
  159. package/dist/cjs/router/index.storybook-expo.js +0 -15
  160. package/dist/cjs/router/index.storybook-expo.js.map +0 -6
  161. package/dist/cjs/router/index.storybook.js +0 -15
  162. package/dist/cjs/router/index.storybook.js.map +0 -6
  163. package/dist/cjs/router/index.webext.js +0 -15
  164. package/dist/cjs/router/index.webext.js.map +0 -6
  165. package/dist/cjs/router/reactRouter.cjs +0 -74
  166. package/dist/cjs/router/reactRouter.js +0 -48
  167. package/dist/cjs/router/reactRouter.js.map +0 -6
  168. package/dist/cjs/router/reactRouter.native.js +0 -96
  169. package/dist/cjs/router/reactRouter.native.js.map +0 -6
  170. package/dist/cjs/types.js +0 -14
  171. package/dist/cjs/types.js.map +0 -6
  172. package/dist/esm/index.js +0 -3
  173. package/dist/esm/index.js.map +0 -6
  174. package/dist/esm/router/emptyRouter.js +0 -31
  175. package/dist/esm/router/emptyRouter.js.map +0 -6
  176. package/dist/esm/router/emptyRouter.mjs +0 -29
  177. package/dist/esm/router/emptyRouter.mjs.map +0 -1
  178. package/dist/esm/router/emptyRouter.native.js +0 -54
  179. package/dist/esm/router/emptyRouter.native.js.map +0 -6
  180. package/dist/esm/router/index.electron.js +0 -2
  181. package/dist/esm/router/index.electron.js.map +0 -6
  182. package/dist/esm/router/index.electron.mjs +0 -2
  183. package/dist/esm/router/index.electron.mjs.map +0 -1
  184. package/dist/esm/router/index.electron.native.js +0 -2
  185. package/dist/esm/router/index.electron.native.js.map +0 -6
  186. package/dist/esm/router/index.js +0 -52
  187. package/dist/esm/router/index.js.map +0 -6
  188. package/dist/esm/router/index.storybook-expo.js +0 -2
  189. package/dist/esm/router/index.storybook-expo.js.map +0 -6
  190. package/dist/esm/router/index.storybook.js +0 -2
  191. package/dist/esm/router/index.storybook.js.map +0 -6
  192. package/dist/esm/router/index.webext.js +0 -2
  193. package/dist/esm/router/index.webext.js.map +0 -6
  194. package/dist/esm/router/reactRouter.js +0 -38
  195. package/dist/esm/router/reactRouter.js.map +0 -6
  196. package/dist/esm/router/reactRouter.mjs +0 -48
  197. package/dist/esm/router/reactRouter.mjs.map +0 -1
  198. package/dist/esm/router/reactRouter.native.js +0 -74
  199. package/dist/esm/router/reactRouter.native.js.map +0 -6
  200. package/dist/esm/types.js +0 -1
  201. package/dist/esm/types.js.map +0 -6
  202. package/dist/jsx/router/emptyRouter.js +0 -31
  203. package/dist/jsx/router/emptyRouter.js.map +0 -6
  204. package/dist/jsx/router/emptyRouter.mjs +0 -29
  205. package/dist/jsx/router/emptyRouter.mjs.map +0 -1
  206. package/dist/jsx/router/emptyRouter.native.js +0 -54
  207. package/dist/jsx/router/emptyRouter.native.js.map +0 -6
  208. package/dist/jsx/router/index.electron.js +0 -2
  209. package/dist/jsx/router/index.electron.js.map +0 -6
  210. package/dist/jsx/router/index.electron.mjs +0 -2
  211. package/dist/jsx/router/index.electron.mjs.map +0 -1
  212. package/dist/jsx/router/index.electron.native.js +0 -2
  213. package/dist/jsx/router/index.electron.native.js.map +0 -6
  214. package/dist/jsx/router/index.js +0 -52
  215. package/dist/jsx/router/index.js.map +0 -6
  216. package/dist/jsx/router/index.storybook-expo.js +0 -2
  217. package/dist/jsx/router/index.storybook-expo.js.map +0 -6
  218. package/dist/jsx/router/index.storybook.js +0 -2
  219. package/dist/jsx/router/index.storybook.js.map +0 -6
  220. package/dist/jsx/router/index.webext.js +0 -2
  221. package/dist/jsx/router/index.webext.js.map +0 -6
  222. package/dist/jsx/router/reactRouter.js +0 -38
  223. package/dist/jsx/router/reactRouter.js.map +0 -6
  224. package/dist/jsx/router/reactRouter.mjs +0 -48
  225. package/dist/jsx/router/reactRouter.mjs.map +0 -1
  226. package/dist/jsx/router/reactRouter.native.js +0 -74
  227. package/dist/jsx/router/reactRouter.native.js.map +0 -6
  228. package/dist/jsx/types.js +0 -1
  229. package/dist/jsx/types.js.map +0 -6
  230. package/src/router/emptyRouter.tsx +0 -56
  231. package/src/router/index.electron.tsx +0 -22
  232. package/types/index.d.ts +0 -3
  233. package/types/index.d.ts.map +0 -1
  234. package/types/router/emptyRouter.d.ts +0 -26
  235. package/types/router/emptyRouter.d.ts.map +0 -1
  236. package/types/router/index.d.ts +0 -27
  237. package/types/router/index.d.ts.map +0 -1
  238. package/types/router/index.electron.d.ts +0 -22
  239. package/types/router/index.electron.d.ts.map +0 -1
  240. package/types/router/index.storybook-expo.d.ts +0 -22
  241. package/types/router/index.storybook-expo.d.ts.map +0 -1
  242. package/types/router/index.storybook.d.ts +0 -22
  243. package/types/router/index.storybook.d.ts.map +0 -1
  244. package/types/router/index.webext.d.ts +0 -22
  245. package/types/router/index.webext.d.ts.map +0 -1
  246. package/types/router/reactRouter.d.ts +0 -27
  247. package/types/router/reactRouter.d.ts.map +0 -1
  248. package/types/types.d.ts +0 -60
  249. package/types/types.d.ts.map +0 -1
@@ -0,0 +1,289 @@
1
+ import { act, renderHook, waitFor } from "@testing-library/react";
2
+ import { beforeEach, describe, expect, it, vi } from "vitest";
3
+ import * as router from "../router/index.native.js";
4
+ import { useSearchParams, useTypedSearchParams, useUrlState } from "./useUrlState.native.js";
5
+ vi.mock("../router", function () {
6
+ var mockSetParams = vi.fn();
7
+ return {
8
+ useParams: vi.fn(function () {
9
+ return {};
10
+ }),
11
+ useRouter: vi.fn(function () {
12
+ return {
13
+ setParams: mockSetParams
14
+ };
15
+ })
16
+ };
17
+ });
18
+ var mockUseParams = router.useParams;
19
+ var mockUseRouter = router.useRouter;
20
+ describe("useUrlState", function () {
21
+ beforeEach(function () {
22
+ vi.clearAllMocks();
23
+ });
24
+ describe("useSearchParams", function () {
25
+ it("should return current search params", function () {
26
+ mockUseParams.mockReturnValue({
27
+ foo: "bar",
28
+ baz: "qux"
29
+ });
30
+ var {
31
+ result
32
+ } = renderHook(function () {
33
+ return useSearchParams();
34
+ });
35
+ var [params] = result.current;
36
+ expect(params).toEqual({
37
+ foo: "bar",
38
+ baz: "qux"
39
+ });
40
+ });
41
+ it("should update search params", function () {
42
+ var setParamsMock = vi.fn();
43
+ mockUseRouter.mockReturnValue({
44
+ setParams: setParamsMock
45
+ });
46
+ var {
47
+ result
48
+ } = renderHook(function () {
49
+ return useSearchParams();
50
+ });
51
+ var [, setParams] = result.current;
52
+ act(function () {
53
+ setParams({
54
+ foo: "bar"
55
+ });
56
+ });
57
+ expect(setParamsMock).toHaveBeenCalledWith({
58
+ foo: "bar"
59
+ });
60
+ });
61
+ it("should support function updates", function () {
62
+ var setParamsMock = vi.fn();
63
+ mockUseParams.mockReturnValue({
64
+ existing: "value"
65
+ });
66
+ mockUseRouter.mockReturnValue({
67
+ setParams: setParamsMock
68
+ });
69
+ var {
70
+ result
71
+ } = renderHook(function () {
72
+ return useSearchParams();
73
+ });
74
+ var [, setParams] = result.current;
75
+ act(function () {
76
+ setParams(function (prev) {
77
+ return {
78
+ ...prev,
79
+ new: "param"
80
+ };
81
+ });
82
+ });
83
+ expect(setParamsMock).toHaveBeenCalledWith({
84
+ existing: "value",
85
+ new: "param"
86
+ });
87
+ });
88
+ it("should debounce updates when specified", async function () {
89
+ var setParamsMock = vi.fn();
90
+ mockUseRouter.mockReturnValue({
91
+ setParams: setParamsMock
92
+ });
93
+ var {
94
+ result
95
+ } = renderHook(function () {
96
+ return useSearchParams();
97
+ });
98
+ var [, setParams] = result.current;
99
+ act(function () {
100
+ setParams({
101
+ foo: "bar"
102
+ }, {
103
+ debounceMs: 100
104
+ });
105
+ });
106
+ expect(setParamsMock).not.toHaveBeenCalled();
107
+ await waitFor(function () {
108
+ expect(setParamsMock).toHaveBeenCalledWith({
109
+ foo: "bar"
110
+ });
111
+ }, {
112
+ timeout: 200
113
+ });
114
+ });
115
+ });
116
+ describe("useUrlState", function () {
117
+ it("should initialize with default values", function () {
118
+ mockUseParams.mockReturnValue({});
119
+ var defaultValues = {
120
+ name: "",
121
+ age: 0,
122
+ active: false
123
+ };
124
+ var {
125
+ result
126
+ } = renderHook(function () {
127
+ return useUrlState(defaultValues);
128
+ });
129
+ var [state] = result.current;
130
+ expect(state).toEqual(defaultValues);
131
+ });
132
+ it("should deserialize URL params", function () {
133
+ mockUseParams.mockReturnValue({
134
+ name: "John",
135
+ age: "25",
136
+ active: "true"
137
+ });
138
+ var defaultValues = {
139
+ name: "",
140
+ age: 0,
141
+ active: false
142
+ };
143
+ var {
144
+ result
145
+ } = renderHook(function () {
146
+ return useUrlState(defaultValues);
147
+ });
148
+ var [state] = result.current;
149
+ expect(state).toEqual({
150
+ name: "John",
151
+ age: 25,
152
+ active: true
153
+ });
154
+ });
155
+ it("should serialize state to URL params", function () {
156
+ var setParamsMock = vi.fn();
157
+ mockUseParams.mockReturnValue({});
158
+ mockUseRouter.mockReturnValue({
159
+ setParams: setParamsMock
160
+ });
161
+ var defaultValues = {
162
+ name: "",
163
+ age: 0,
164
+ active: false
165
+ };
166
+ var {
167
+ result
168
+ } = renderHook(function () {
169
+ return useUrlState(defaultValues, {
170
+ debounceMs: 0
171
+ });
172
+ });
173
+ var [, setState] = result.current;
174
+ act(function () {
175
+ setState({
176
+ name: "John",
177
+ age: 25,
178
+ active: true
179
+ });
180
+ });
181
+ expect(setParamsMock).toHaveBeenCalledWith({
182
+ name: "John",
183
+ age: "25",
184
+ active: "true"
185
+ });
186
+ });
187
+ it("should handle arrays", function () {
188
+ mockUseParams.mockReturnValue({
189
+ tags: ["react", "typescript"]
190
+ });
191
+ var defaultValues = {
192
+ tags: []
193
+ };
194
+ var {
195
+ result
196
+ } = renderHook(function () {
197
+ return useUrlState(defaultValues);
198
+ });
199
+ var [state] = result.current;
200
+ expect(state).toEqual({
201
+ tags: ["react", "typescript"]
202
+ });
203
+ });
204
+ it("should handle objects with JSON serialization", function () {
205
+ mockUseParams.mockReturnValue({
206
+ config: '{"theme":"dark","lang":"en"}'
207
+ });
208
+ var defaultValues = {
209
+ config: {
210
+ theme: "light",
211
+ lang: "en"
212
+ }
213
+ };
214
+ var {
215
+ result
216
+ } = renderHook(function () {
217
+ return useUrlState(defaultValues);
218
+ });
219
+ var [state] = result.current;
220
+ expect(state).toEqual({
221
+ config: {
222
+ theme: "dark",
223
+ lang: "en"
224
+ }
225
+ });
226
+ });
227
+ });
228
+ describe("useTypedSearchParams", function () {
229
+ it("should parse params with schema", function () {
230
+ mockUseParams.mockReturnValue({
231
+ page: "2",
232
+ limit: "50",
233
+ search: "test"
234
+ });
235
+ var schema = {
236
+ page: {
237
+ default: 1,
238
+ parse: function parse(value) {
239
+ return value ? Number.parseInt(String(value), 10) : 1;
240
+ }
241
+ },
242
+ limit: {
243
+ default: 20,
244
+ parse: function parse(value) {
245
+ return value ? Number.parseInt(String(value), 10) : 20;
246
+ }
247
+ },
248
+ search: {
249
+ default: ""
250
+ }
251
+ };
252
+ var {
253
+ result
254
+ } = renderHook(function () {
255
+ return useTypedSearchParams(schema);
256
+ });
257
+ expect(result.current).toEqual({
258
+ page: 2,
259
+ limit: 50,
260
+ search: "test"
261
+ });
262
+ });
263
+ it("should use defaults for missing params", function () {
264
+ mockUseParams.mockReturnValue({});
265
+ var schema = {
266
+ page: {
267
+ default: 1
268
+ },
269
+ limit: {
270
+ default: 20
271
+ },
272
+ search: {
273
+ default: ""
274
+ }
275
+ };
276
+ var {
277
+ result
278
+ } = renderHook(function () {
279
+ return useTypedSearchParams(schema);
280
+ });
281
+ expect(result.current).toEqual({
282
+ page: 1,
283
+ limit: 20,
284
+ search: ""
285
+ });
286
+ });
287
+ });
288
+ });
289
+ //# sourceMappingURL=useUrlState.spec.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["act","renderHook","waitFor","beforeEach","describe","expect","it","vi","router","useSearchParams","useTypedSearchParams","useUrlState","mock","mockSetParams","fn","useParams","useRouter","setParams","mockUseParams","mockUseRouter","clearAllMocks","mockReturnValue","foo","baz","result","params","current","toEqual","setParamsMock","toHaveBeenCalledWith","existing","prev","new","debounceMs","not","toHaveBeenCalled","timeout","defaultValues","name","age","active","state","setState"],"sources":["../../../src/hooks/useUrlState.spec.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,3 +1,4 @@
1
1
  export * from "./router/index.mjs";
2
2
  export * from "./types.mjs";
3
+ export * from "./hooks/index.mjs";
3
4
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAqBA,cAAc;AACd,cAAc","ignoreList":[]}
1
+ {"version":3,"names":[],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA,cAAc;AACd,cAAc;AACd,cAAc","ignoreList":[]}
@@ -1,3 +1,4 @@
1
- export * from "./router/index";
2
- export * from "./types";
3
- //# sourceMappingURL=index.js.map
1
+ export * from "./router/index.native.js";
2
+ export * from "./types.native.js";
3
+ export * from "./hooks/index.native.js";
4
+ //# sourceMappingURL=index.native.js.map
@@ -1,6 +1 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/home/clayrisser/Projects/bitspur/multiplatform.one/multiplatform.one/packages/router/src/index.ts"],
4
- "mappings": "AAqBA,cAAc;AACd,cAAc;",
5
- "names": []
6
- }
1
+ {"version":3,"names":[],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA,cAAc;AACd,cAAc;AACd,cAAc","ignoreList":[]}
@@ -0,0 +1,5 @@
1
+ import { useRouter, usePathname, useParams, Link } from "./router/EmptyRouter.mjs";
2
+ export * from "./types.mjs";
3
+ export * from "./hooks/index.mjs";
4
+ export { Link, useParams, usePathname, useRouter };
5
+ //# sourceMappingURL=index.storybook.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useRouter","usePathname","useParams","Link"],"sources":["../../src/index.storybook.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,SAAA,EAAWC,WAAA,EAAaC,SAAA,EAAWC,IAAA,QAAY;AACxD,cAAc;AACd,cAAc","ignoreList":[]}
@@ -0,0 +1,5 @@
1
+ import { useRouter, usePathname, useParams, Link } from "./router/EmptyRouter.native.js";
2
+ export * from "./types.native.js";
3
+ export * from "./hooks/index.native.js";
4
+ export { Link, useParams, usePathname, useRouter };
5
+ //# sourceMappingURL=index.storybook.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useRouter","usePathname","useParams","Link"],"sources":["../../src/index.storybook.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,SAAA,EAAWC,WAAA,EAAaC,SAAA,EAAWC,IAAA,QAAY;AACxD,cAAc;AACd,cAAc","ignoreList":[]}
@@ -0,0 +1,49 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ const prefix = "[router]";
3
+ const useRouter = () => {
4
+ return {
5
+ back: () => console.log(prefix, "back()"),
6
+ canGoBack: () => false,
7
+ push: href => console.log(prefix, "push", String(href)),
8
+ navigate: href => console.log(prefix, "navigate", String(href)),
9
+ replace: href => console.log(prefix, "replace", String(href)),
10
+ dismiss: count => console.log(prefix, "dismiss", count ?? 1),
11
+ dismissAll: () => console.log(prefix, "dismissAll()"),
12
+ canDismiss: () => false,
13
+ setParams: params => console.log(prefix, "setParams", params),
14
+ subscribe: listener => {
15
+ listener("success");
16
+ return () => {};
17
+ },
18
+ onLoadState: listener => {
19
+ listener("loaded");
20
+ return () => {};
21
+ }
22
+ };
23
+ };
24
+ const usePathname = () => "/";
25
+ const useParams = () => ({});
26
+ const Link = ({
27
+ href,
28
+ replace,
29
+ children,
30
+ ...props
31
+ }) => {
32
+ const handleClick = e => {
33
+ e.preventDefault();
34
+ console.log(prefix, replace ? "replace" : "push", String(href));
35
+ };
36
+ return /* @__PURE__ */jsx("a", {
37
+ href,
38
+ onClick: handleClick,
39
+ ...props,
40
+ children
41
+ });
42
+ };
43
+ Link.resolveHref = href => href.toString();
44
+ function useUrlState(defaultValues) {
45
+ const setState = () => {};
46
+ return [defaultValues, setState];
47
+ }
48
+ export { Link, useParams, usePathname, useRouter, useUrlState };
49
+ //# sourceMappingURL=EmptyRouter.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["jsx","prefix","useRouter","back","console","log","canGoBack","push","href","String","navigate","replace","dismiss","count","dismissAll","canDismiss","setParams","params","subscribe","listener","onLoadState","usePathname","useParams","Link","children","props","handleClick","e","preventDefault","onClick","resolveHref","toString","useUrlState","defaultValues","setState"],"sources":["../../../src/router/EmptyRouter.tsx"],"sourcesContent":[null],"mappings":"AAoCI,SAAAA,GAAA;AAlCJ,MAAMC,MAAA,GAAS;AAER,MAAMC,SAAA,GAAYA,CAAA,KAAc;EACrC,OAAO;IACLC,IAAA,EAAMA,CAAA,KAAMC,OAAA,CAAQC,GAAA,CAAIJ,MAAA,EAAQ,QAAQ;IACxCK,SAAA,EAAWA,CAAA,KAAM;IACjBC,IAAA,EAAOC,IAAA,IAAeJ,OAAA,CAAQC,GAAA,CAAIJ,MAAA,EAAQ,QAAQQ,MAAA,CAAOD,IAAI,CAAC;IAC9DE,QAAA,EAAWF,IAAA,IAAeJ,OAAA,CAAQC,GAAA,CAAIJ,MAAA,EAAQ,YAAYQ,MAAA,CAAOD,IAAI,CAAC;IACtEG,OAAA,EAAUH,IAAA,IAAeJ,OAAA,CAAQC,GAAA,CAAIJ,MAAA,EAAQ,WAAWQ,MAAA,CAAOD,IAAI,CAAC;IACpEI,OAAA,EAAUC,KAAA,IAAmBT,OAAA,CAAQC,GAAA,CAAIJ,MAAA,EAAQ,WAAWY,KAAA,IAAS,CAAC;IACtEC,UAAA,EAAYA,CAAA,KAAMV,OAAA,CAAQC,GAAA,CAAIJ,MAAA,EAAQ,cAAc;IACpDc,UAAA,EAAYA,CAAA,KAAM;IAClBC,SAAA,EAAYC,MAAA,IAAWb,OAAA,CAAQC,GAAA,CAAIJ,MAAA,EAAQ,aAAagB,MAAM;IAC9DC,SAAA,EAAYC,QAAA,IAAa;MACvBA,QAAA,CAAS,SAAS;MAClB,OAAO,MAAM,CAAC;IAChB;IACAC,WAAA,EAAcD,QAAA,IAAa;MACzBA,QAAA,CAAS,QAAQ;MACjB,OAAO,MAAM,CAAC;IAChB;EACF;AACF;AAEO,MAAME,WAAA,GAAcA,CAAA,KAAc;AAElC,MAAMC,SAAA,GAAYA,CAAA,MAAO,CAAC;AAE1B,MAAMC,IAAA,GAAsBA,CAAC;EAAEf,IAAA;EAAMG,OAAA;EAASa,QAAA;EAAU,GAAGC;AAAM,MAAM;EAC5E,MAAMC,WAAA,GAAeC,CAAA,IAAwB;IAC3CA,CAAA,CAAEC,cAAA,CAAe;IACjBxB,OAAA,CAAQC,GAAA,CAAIJ,MAAA,EAAQU,OAAA,GAAU,YAAY,QAAQF,MAAA,CAAOD,IAAI,CAAC;EAChE;EACA,OACE,eAAAR,GAAA,CAAC;IAAEQ,IAAA;IAAsBqB,OAAA,EAASH,WAAA;IAAc,GAAGD,KAAA;IAChDD;EAAA,CACH;AAEJ;AAEAD,IAAA,CAAKO,WAAA,GAAetB,IAAA,IAAeA,IAAA,CAAKuB,QAAA,CAAS;AAE1C,SAASC,YACdC,aAAA,EACiE;EACjE,MAAMC,QAAA,GAAWA,CAAA,KAAM,CAAC;EACxB,OAAO,CAACD,aAAA,EAAeC,QAAQ;AACjC","ignoreList":[]}
@@ -0,0 +1,74 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ var prefix = "[router]";
3
+ var useRouter = function useRouter2() {
4
+ return {
5
+ back: function back() {
6
+ return console.log(prefix, "back()");
7
+ },
8
+ canGoBack: function canGoBack() {
9
+ return false;
10
+ },
11
+ push: function push(href) {
12
+ return console.log(prefix, "push", String(href));
13
+ },
14
+ navigate: function navigate(href) {
15
+ return console.log(prefix, "navigate", String(href));
16
+ },
17
+ replace: function replace(href) {
18
+ return console.log(prefix, "replace", String(href));
19
+ },
20
+ dismiss: function dismiss(count) {
21
+ return console.log(prefix, "dismiss", count !== null && count !== void 0 ? count : 1);
22
+ },
23
+ dismissAll: function dismissAll() {
24
+ return console.log(prefix, "dismissAll()");
25
+ },
26
+ canDismiss: function canDismiss() {
27
+ return false;
28
+ },
29
+ setParams: function setParams(params) {
30
+ return console.log(prefix, "setParams", params);
31
+ },
32
+ subscribe: function subscribe(listener) {
33
+ listener("success");
34
+ return function () {};
35
+ },
36
+ onLoadState: function onLoadState(listener) {
37
+ listener("loaded");
38
+ return function () {};
39
+ }
40
+ };
41
+ };
42
+ var usePathname = function usePathname2() {
43
+ return "/";
44
+ };
45
+ var useParams = function useParams2() {
46
+ return {};
47
+ };
48
+ var Link = function Link2(param) {
49
+ var {
50
+ href,
51
+ replace,
52
+ children,
53
+ ...props
54
+ } = param;
55
+ var handleClick = function handleClick2(e) {
56
+ e.preventDefault();
57
+ console.log(prefix, replace ? "replace" : "push", String(href));
58
+ };
59
+ return /* @__PURE__ */_jsx("a", {
60
+ href,
61
+ onClick: handleClick,
62
+ ...props,
63
+ children
64
+ });
65
+ };
66
+ Link.resolveHref = function (href) {
67
+ return href.toString();
68
+ };
69
+ function useUrlState(defaultValues) {
70
+ var setState = function setState2() {};
71
+ return [defaultValues, setState];
72
+ }
73
+ export { Link, useParams, usePathname, useRouter, useUrlState };
74
+ //# sourceMappingURL=EmptyRouter.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["jsx","_jsx","prefix","useRouter","useRouter2","back","console","log","canGoBack","push","href","String","navigate","replace","dismiss","count","dismissAll","canDismiss","setParams","params","subscribe","listener","onLoadState"],"sources":["../../../src/router/EmptyRouter.tsx"],"sourcesContent":[null],"mappings":"AAoCI,SAAAA,GAAA,IAAAC,IAAA;AAlCJ,IAAAC,MAAM,aAAS;AAER,IAAAC,SAAM,YAA0BC,WAAA;EACrC,OAAO;IACLC,IAAA,EAAM,SAAMA,KAAA,EAAQ;MACpB,OAAAC,OAAW,CAAMC,GAAA,CAAAL,MAAA;IACjB;IACAM,SAAA,EAAW,SAAeA,SAAQA,CAAA,EAAI;MACtC,OAAS,KAAC;IACV;IACAC,IAAA,WAAYA,IAAMA,CAAAC,IAAA,EAAQ;MAC1B,OAAAJ,OAAY,CAAAC,GAAM,CAAAL,MAAA,UAAAS,MAAA,CAAAD,IAAA;IAClB;IACAE,QAAA,WAAYA,QAAaA,CAAAF,IAAA;MACvB,OAAAJ,OAAS,CAAAC,GAAS,CAAAL,MAAA,cAAAS,MAAA,CAAAD,IAAA;IAClB;IAAaG,OAAC,WAAAA,QAAAH,IAAA;MAChB,OAAAJ,OAAA,CAAAC,GAAA,CAAAL,MAAA,aAAAS,MAAA,CAAAD,IAAA;IACA;IACEI,OAAA,WAASA,OAAQA,CAAAC,KAAA;MACjB,OAAOT,OAAM,CAAAC,GAAA,CAAAL,MAAA,aAAAa,KAAA,aAAAA,KAAA,cAAAA,KAAA;IAAA;IACfC,UAAA,WAAAA,WAAA;MACF,OAAAV,OAAA,CAAAC,GAAA,CAAAL,MAAA;IACF;IAEOe,UAAM,WAAcA,UAAcA,CAAA;MAE5B,YAAY;IAElB;IACLC,SAAM,WAAeA,SAAwBA,CAAAC,MAAA;MACzC,OAAAb,OAAA,CAAeC,GAAA,CAAAL,MAAA,eAAAiB,MAAA;IACjB;IACFC,SAAA,WAAAA,UAAAC,QAAA;MACAA,QACE;MAIJ,oBAEK;IAEE;IAGLC,WAAM,WAAiBA,YAAAD,QAAA;MAACA,QAAA;MACxB,OAAQ,aACV","ignoreList":[]}
@@ -0,0 +1,79 @@
1
+ import { Link as ReactRouterLink, useLocation, useNavigate, useParams as useReactParams, useSearchParams as useReactSearchParams } from "react-router-dom";
2
+ import { jsx } from "react/jsx-runtime";
3
+ const useRouter = () => {
4
+ const location = useLocation();
5
+ const navigate = useNavigate();
6
+ return {
7
+ back: () => navigate(-1),
8
+ canGoBack: () => true,
9
+ push: href => navigate(href, {
10
+ replace: false
11
+ }),
12
+ navigate: href => navigate(href, {
13
+ replace: false
14
+ }),
15
+ replace: href => navigate(href, {
16
+ replace: true
17
+ }),
18
+ dismiss: count => navigate(-1 * (count || 1)),
19
+ dismissAll: () => navigate("/"),
20
+ canDismiss: () => true,
21
+ setParams: params => {
22
+ const searchParams = new URLSearchParams(location.search);
23
+ if (params) {
24
+ Object.entries(params).forEach(([key, value]) => {
25
+ if (value === void 0 || value === null) {
26
+ searchParams.delete(key);
27
+ } else {
28
+ searchParams.set(key, String(value));
29
+ }
30
+ });
31
+ }
32
+ navigate({
33
+ search: searchParams.toString()
34
+ });
35
+ },
36
+ subscribe: listener => {
37
+ listener("success");
38
+ return () => {};
39
+ },
40
+ onLoadState: listener => {
41
+ listener("loaded");
42
+ return () => {};
43
+ }
44
+ };
45
+ };
46
+ const usePathname = () => useLocation().pathname;
47
+ const useParams = () => {
48
+ const routeParams = useReactParams();
49
+ const [searchParams] = useReactSearchParams();
50
+ const params = {};
51
+ Object.entries(routeParams).forEach(([key, value]) => {
52
+ if (value !== void 0) {
53
+ params[key] = value;
54
+ }
55
+ });
56
+ searchParams.forEach((value, key) => {
57
+ if (params[key]) {
58
+ const existing = params[key];
59
+ params[key] = Array.isArray(existing) ? [...existing, value] : [existing, value];
60
+ } else {
61
+ params[key] = value;
62
+ }
63
+ });
64
+ return params;
65
+ };
66
+ const Link = ({
67
+ href,
68
+ replace,
69
+ children,
70
+ ...props
71
+ }) => /* @__PURE__ */jsx(ReactRouterLink, {
72
+ to: href,
73
+ replace,
74
+ ...props,
75
+ children
76
+ });
77
+ Link.resolveHref = href => href.toString();
78
+ export { Link, useParams, usePathname, useRouter };
79
+ //# sourceMappingURL=ReactRouter.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Link","ReactRouterLink","useLocation","useNavigate","useParams","useReactParams","useSearchParams","useReactSearchParams","jsx","useRouter","location","navigate","back","canGoBack","push","href","replace","dismiss","count","dismissAll","canDismiss","setParams","params","searchParams","URLSearchParams","search","Object","entries","forEach","key","value","delete","set","String","toString","subscribe","listener","onLoadState","usePathname","pathname","routeParams","existing","Array","isArray","children","props","to","resolveHref"],"sources":["../../../src/router/ReactRouter.tsx"],"sourcesContent":[null],"mappings":"AAAA,SACEA,IAAA,IAAQC,eAAA,EACRC,WAAA,EACAC,WAAA,EACAC,SAAA,IAAaC,cAAA,EACbC,eAAA,IAAmBC,oBAAA,QACd;AA6EL,SAAAC,GAAA;AApEK,MAAMC,SAAA,GAAYA,CAAA,KAAc;EACrC,MAAMC,QAAA,GAAWR,WAAA,CAAY;EAC7B,MAAMS,QAAA,GAAWR,WAAA,CAAY;EAC7B,OAAO;IACLS,IAAA,EAAMA,CAAA,KAAMD,QAAA,CAAS,EAAE;IACvBE,SAAA,EAAWA,CAAA,KAAM;IACjBC,IAAA,EAAOC,IAAA,IAAeJ,QAAA,CAASI,IAAA,EAAgB;MAAEC,OAAA,EAAS;IAAM,CAAC;IACjEL,QAAA,EAAWI,IAAA,IAAeJ,QAAA,CAASI,IAAA,EAAgB;MAAEC,OAAA,EAAS;IAAM,CAAC;IACrEA,OAAA,EAAUD,IAAA,IAAeJ,QAAA,CAASI,IAAA,EAAgB;MAAEC,OAAA,EAAS;IAAK,CAAC;IACnEC,OAAA,EAAUC,KAAA,IAAmBP,QAAA,CAAS,MAAMO,KAAA,IAAS,EAAE;IACvDC,UAAA,EAAYA,CAAA,KAAMR,QAAA,CAAS,GAAG;IAC9BS,UAAA,EAAYA,CAAA,KAAM;IAClBC,SAAA,EACEC,MAAA,IACG;MACH,MAAMC,YAAA,GAAe,IAAIC,eAAA,CAAgBd,QAAA,CAASe,MAAM;MACxD,IAAIH,MAAA,EAAQ;QACVI,MAAA,CAAOC,OAAA,CAAQL,MAAM,EAAEM,OAAA,CAAQ,CAAC,CAACC,GAAA,EAAKC,KAAK,MAAM;UAC/C,IAAIA,KAAA,KAAU,UAAaA,KAAA,KAAU,MAAM;YACzCP,YAAA,CAAaQ,MAAA,CAAOF,GAAG;UACzB,OAAO;YACLN,YAAA,CAAaS,GAAA,CAAIH,GAAA,EAAKI,MAAA,CAAOH,KAAK,CAAC;UACrC;QACF,CAAC;MACH;MACAnB,QAAA,CAAS;QAAEc,MAAA,EAAQF,YAAA,CAAaW,QAAA,CAAS;MAAE,CAAC;IAC9C;IACAC,SAAA,EAAYC,QAAA,IAAa;MACvBA,QAAA,CAAS,SAAS;MAClB,OAAO,MAAM,CAAC;IAChB;IACAC,WAAA,EAAcD,QAAA,IAAa;MACzBA,QAAA,CAAS,QAAQ;MACjB,OAAO,MAAM,CAAC;IAChB;EACF;AACF;AAEO,MAAME,WAAA,GAAcA,CAAA,KAAcpC,WAAA,CAAY,EAAEqC,QAAA;AAGhD,MAAMnC,SAAA,GAAYA,CAAA,KAAM;EAC7B,MAAMoC,WAAA,GAAcnC,cAAA,CAAe;EACnC,MAAM,CAACkB,YAAY,IAAIhB,oBAAA,CAAqB;EAC5C,MAAMe,MAAA,GAAwD,CAAC;EAG/DI,MAAA,CAAOC,OAAA,CAAQa,WAAW,EAAEZ,OAAA,CAAQ,CAAC,CAACC,GAAA,EAAKC,KAAK,MAAM;IACpD,IAAIA,KAAA,KAAU,QAAW;MACvBR,MAAA,CAAOO,GAAG,IAAIC,KAAA;IAChB;EACF,CAAC;EAGDP,YAAA,CAAaK,OAAA,CAAQ,CAACE,KAAA,EAAOD,GAAA,KAAQ;IACnC,IAAIP,MAAA,CAAOO,GAAG,GAAG;MAEf,MAAMY,QAAA,GAAWnB,MAAA,CAAOO,GAAG;MAC3BP,MAAA,CAAOO,GAAG,IAAIa,KAAA,CAAMC,OAAA,CAAQF,QAAQ,IAAI,CAAC,GAAGA,QAAA,EAAUX,KAAK,IAAI,CAACW,QAAA,EAAoBX,KAAK;IAC3F,OAAO;MACLR,MAAA,CAAOO,GAAG,IAAIC,KAAA;IAChB;EACF,CAAC;EAED,OAAOR,MAAA;AACT;AAEO,MAAMtB,IAAA,GAAsBA,CAAC;EAAEe,IAAA;EAAMC,OAAA;EAAS4B,QAAA;EAAU,GAAGC;AAAM,MACtE,eAAArC,GAAA,CAACP,eAAA;EAAgB6C,EAAA,EAAI/B,IAAA;EAAgBC,OAAA;EAAmB,GAAG6B,KAAA;EACxDD;AAAA,CACH;AAGF5C,IAAA,CAAK+C,WAAA,GAAehC,IAAA,IAAeA,IAAA,CAAKmB,QAAA,CAAS","ignoreList":[]}
@@ -0,0 +1,104 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Link as ReactRouterLink, useLocation, useNavigate, useParams as useReactParams, useSearchParams as useReactSearchParams } from "react-router-dom";
3
+ var useRouter = function useRouter2() {
4
+ var location = useLocation();
5
+ var navigate = useNavigate();
6
+ return {
7
+ back: function back() {
8
+ return navigate(-1);
9
+ },
10
+ canGoBack: function canGoBack() {
11
+ return true;
12
+ },
13
+ push: function push(href) {
14
+ return navigate(href, {
15
+ replace: false
16
+ });
17
+ },
18
+ navigate: function navigate1(href) {
19
+ return navigate(href, {
20
+ replace: false
21
+ });
22
+ },
23
+ replace: function replace(href) {
24
+ return navigate(href, {
25
+ replace: true
26
+ });
27
+ },
28
+ dismiss: function dismiss(count) {
29
+ return navigate(-1 * (count || 1));
30
+ },
31
+ dismissAll: function dismissAll() {
32
+ return navigate("/");
33
+ },
34
+ canDismiss: function canDismiss() {
35
+ return true;
36
+ },
37
+ setParams: function setParams(params) {
38
+ var searchParams = new URLSearchParams(location.search);
39
+ if (params) {
40
+ Object.entries(params).forEach(function (param) {
41
+ var [key, value] = param;
42
+ if (value === void 0 || value === null) {
43
+ searchParams.delete(key);
44
+ } else {
45
+ searchParams.set(key, String(value));
46
+ }
47
+ });
48
+ }
49
+ navigate({
50
+ search: searchParams.toString()
51
+ });
52
+ },
53
+ subscribe: function subscribe(listener) {
54
+ listener("success");
55
+ return function () {};
56
+ },
57
+ onLoadState: function onLoadState(listener) {
58
+ listener("loaded");
59
+ return function () {};
60
+ }
61
+ };
62
+ };
63
+ var usePathname = function usePathname2() {
64
+ return useLocation().pathname;
65
+ };
66
+ var useParams = function useParams2() {
67
+ var routeParams = useReactParams();
68
+ var [searchParams] = useReactSearchParams();
69
+ var params = {};
70
+ Object.entries(routeParams).forEach(function (param) {
71
+ var [key, value] = param;
72
+ if (value !== void 0) {
73
+ params[key] = value;
74
+ }
75
+ });
76
+ searchParams.forEach(function (value, key) {
77
+ if (params[key]) {
78
+ var existing = params[key];
79
+ params[key] = Array.isArray(existing) ? [...existing, value] : [existing, value];
80
+ } else {
81
+ params[key] = value;
82
+ }
83
+ });
84
+ return params;
85
+ };
86
+ var Link = function Link2(param) {
87
+ var {
88
+ href,
89
+ replace,
90
+ children,
91
+ ...props
92
+ } = param;
93
+ return /* @__PURE__ */_jsx(ReactRouterLink, {
94
+ to: href,
95
+ replace,
96
+ ...props,
97
+ children
98
+ });
99
+ };
100
+ Link.resolveHref = function (href) {
101
+ return href.toString();
102
+ };
103
+ export { Link, useParams, usePathname, useRouter };
104
+ //# sourceMappingURL=ReactRouter.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["jsx","_jsx","Link","ReactRouterLink","useLocation","useNavigate","useParams","useReactParams","useSearchParams","useReactSearchParams","useRouter","useRouter2","location","navigate","back","canGoBack","push","href","replace","navigate1","dismiss","count","dismissAll","canDismiss","setParams","params","searchParams","URLSearchParams","search","Object","entries","forEach","param","key","value","delete","set","String","toString","subscribe","listener","onLoadState","usePathname","usePathname2","pathname"],"sources":["../../../src/router/ReactRouter.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAAAA,GAAA,IAAAC,IAAA;AAAA,SACEC,IAAQ,IAAAC,eAAA,EAAAC,WAAA,EAAAC,WAAA,EAAAC,SAAA,IAAAC,cAAA,EAAAC,eAAA,IAAAC,oBAAA;AAAA,IACRC,SAAA,YAAAC,WAAA;EACA,IAAAC,QAAA,GAAAR,WAAA;EACA,IAAAS,QAAA,GAAaR,WAAA;EACb;IAAmBS,IACd,WAAAA,KAAA;MA6EL,OAAAD,QAAA;IApEK;IACLE,SAAM,WAAWA,SAAYA,CAAA;MAC7B,OAAM;IACN;IACEC,IAAA,EAAM,SAAMA,KAAAC,IAAW;MACvB,OAAAJ,QAAiB,CAAAI,IAAA;QACjBC,OAAO;MACP;IACA;IACAL,QAAA,EAAU,SAAAM,SAAmBA,CAASF,IAAA,EAAM;MAC5C,OAAAJ,QAAY,CAAMI,IAAA;QAClBC,OAAA,EAAY;MACZ;IAGE;IACAA,OAAI,WAAQA,QAAAD,IAAA;MACV,OAAAJ,QAAO,CAAAI,IAAQ;QACbC,OAAI;MACF;IAAuB;IAEvBE,OAAA,WAAAA,OAAiBA,CAAAC,KAAK;MAAa,OACrCR,QAAA,OAAAQ,KAAA;IAAA;IACDC,UACH,WAAAA,WAAA;MACA,OAAAT,QAAW,IAAQ;IACrB;IACAU,UAAA,EAAY,SAAAA,UAAaA,CAAA;MACvB,WAAS;IACT;IAAaC,SAAC,WAAAA,UAAAC,MAAA;MAChB,IAAAC,YAAA,OAAAC,eAAA,CAAAf,QAAA,CAAAgB,MAAA;MACA,IAAAH,MAAA,EAAc;QACZI,MAAA,CAASC,OAAA,CAAQL,MAAA,EAAAM,OAAA,WAAAC,KAAA;UACjB,IAAO,CAAAC,GAAA,EAAMC,KAAA,IAAAF,KAAA;UAAC,IAAAE,KAAA,eAAAA,KAAA;YAChBR,YAAA,CAAAS,MAAA,CAAAF,GAAA;UACF;YACFP,YAAA,CAAAU,GAAA,CAAAH,GAAA,EAAAI,MAAA,CAAAH,KAAA;UAEa;QAGA;MACX;MACArB,QAAO;QACDe,MAAA,EAAAF,YAAyD,CAAAY,QAAA;MAG/D;IACE;IACEC,SAAO,WAAOA,UAAAC,QAAA;MAChBA,QAAA;MACD,oBAGD;IACE;IAEEC,WAAM,WAAWA,WAAUA,CAAAD,QAAA;MAC3BA,QAAO,SAAO;MAChB,OAAO,aACL;IACF;EACF,CAAC;AAED;AACF,IAAAE,WAAA,YAAAC,aAAA;EAEO,OAAMvC,WAAyB,EAAM,CAAAwC,QAAS;AAMrD","ignoreList":[]}