@multiplatform.one/router 5.0.27 → 6.0.1
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/hooks/index.cjs +31 -0
- package/dist/cjs/hooks/index.native.js +34 -0
- package/dist/cjs/hooks/index.native.js.map +1 -0
- package/dist/cjs/hooks/useUrlState.cjs +185 -0
- package/dist/cjs/hooks/useUrlState.native.js +203 -0
- package/dist/cjs/hooks/useUrlState.native.js.map +1 -0
- package/dist/cjs/hooks/useUrlState.spec.cjs +280 -0
- package/dist/cjs/hooks/useUrlState.spec.native.js +315 -0
- package/dist/cjs/hooks/useUrlState.spec.native.js.map +1 -0
- package/dist/cjs/index.cjs +9 -6
- package/dist/cjs/index.native.js +16 -13
- package/dist/cjs/index.native.js.map +1 -6
- package/dist/cjs/index.storybook.cjs +34 -0
- package/dist/cjs/index.storybook.native.js +37 -0
- package/dist/cjs/index.storybook.native.js.map +1 -0
- package/dist/cjs/router/EmptyRouter.cjs +78 -0
- package/dist/cjs/router/EmptyRouter.native.js +106 -0
- package/dist/cjs/router/EmptyRouter.native.js.map +1 -0
- package/dist/cjs/router/ReactRouter.cjs +107 -0
- package/dist/cjs/router/ReactRouter.native.js +135 -0
- package/dist/cjs/router/ReactRouter.native.js.map +1 -0
- package/dist/cjs/router/index.cjs +17 -67
- package/dist/cjs/router/index.native.js +22 -81
- package/dist/cjs/router/index.native.js.map +1 -6
- package/dist/cjs/router/index.storybook-expo.cjs +8 -6
- package/dist/cjs/router/index.storybook-expo.native.js +14 -11
- package/dist/cjs/router/index.storybook-expo.native.js.map +1 -6
- package/dist/cjs/router/index.storybook.cjs +8 -6
- package/dist/cjs/router/index.storybook.native.js +14 -11
- package/dist/cjs/router/index.storybook.native.js.map +1 -6
- package/dist/cjs/router/index.webext.cjs +8 -6
- package/dist/cjs/router/index.webext.native.js +14 -11
- package/dist/cjs/router/index.webext.native.js.map +1 -6
- package/dist/cjs/types.cjs +7 -5
- package/dist/cjs/types.native.js +11 -5
- package/dist/cjs/types.native.js.map +1 -6
- package/dist/esm/hooks/index.mjs +3 -0
- package/dist/esm/hooks/index.mjs.map +1 -0
- package/dist/esm/hooks/index.native.js +3 -0
- package/dist/esm/hooks/index.native.js.map +1 -0
- package/dist/esm/hooks/useUrlState.mjs +157 -0
- package/dist/esm/hooks/useUrlState.mjs.map +1 -0
- package/dist/esm/hooks/useUrlState.native.js +172 -0
- package/dist/esm/hooks/useUrlState.native.js.map +1 -0
- package/dist/esm/hooks/useUrlState.spec.mjs +257 -0
- package/dist/esm/hooks/useUrlState.spec.mjs.map +1 -0
- package/dist/esm/hooks/useUrlState.spec.native.js +289 -0
- package/dist/esm/hooks/useUrlState.spec.native.js.map +1 -0
- package/dist/esm/index.mjs +1 -0
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/index.native.js +4 -3
- package/dist/esm/index.native.js.map +1 -6
- package/dist/esm/index.storybook.mjs +5 -0
- package/dist/esm/index.storybook.mjs.map +1 -0
- package/dist/esm/index.storybook.native.js +5 -0
- package/dist/esm/index.storybook.native.js.map +1 -0
- package/dist/esm/router/EmptyRouter.mjs +49 -0
- package/dist/esm/router/EmptyRouter.mjs.map +1 -0
- package/dist/esm/router/EmptyRouter.native.js +74 -0
- package/dist/esm/router/EmptyRouter.native.js.map +1 -0
- package/dist/esm/router/ReactRouter.mjs +79 -0
- package/dist/esm/router/ReactRouter.mjs.map +1 -0
- package/dist/esm/router/ReactRouter.native.js +104 -0
- package/dist/esm/router/ReactRouter.native.js.map +1 -0
- package/dist/esm/router/index.mjs +1 -53
- package/dist/esm/router/index.mjs.map +1 -1
- package/dist/esm/router/index.native.js +3 -71
- package/dist/esm/router/index.native.js.map +1 -6
- package/dist/esm/router/index.storybook-expo.mjs +1 -1
- package/dist/esm/router/index.storybook-expo.mjs.map +1 -1
- package/dist/esm/router/index.storybook-expo.native.js +2 -2
- package/dist/esm/router/index.storybook-expo.native.js.map +1 -6
- package/dist/esm/router/index.storybook.mjs +1 -1
- package/dist/esm/router/index.storybook.mjs.map +1 -1
- package/dist/esm/router/index.storybook.native.js +2 -2
- package/dist/esm/router/index.storybook.native.js.map +1 -6
- package/dist/esm/router/index.webext.mjs +1 -1
- package/dist/esm/router/index.webext.mjs.map +1 -1
- package/dist/esm/router/index.webext.native.js +2 -2
- package/dist/esm/router/index.webext.native.js.map +1 -6
- package/dist/esm/types.native.js +2 -1
- package/dist/esm/types.native.js.map +1 -6
- package/dist/jsx/hooks/index.mjs +3 -0
- package/dist/jsx/hooks/index.mjs.map +1 -0
- package/dist/jsx/hooks/index.native.js +34 -0
- package/dist/jsx/hooks/index.native.js.map +1 -0
- package/dist/jsx/hooks/useUrlState.mjs +157 -0
- package/dist/jsx/hooks/useUrlState.mjs.map +1 -0
- package/dist/jsx/hooks/useUrlState.native.js +203 -0
- package/dist/jsx/hooks/useUrlState.native.js.map +1 -0
- package/dist/jsx/hooks/useUrlState.spec.mjs +257 -0
- package/dist/jsx/hooks/useUrlState.spec.mjs.map +1 -0
- package/dist/jsx/hooks/useUrlState.spec.native.js +315 -0
- package/dist/jsx/hooks/useUrlState.spec.native.js.map +1 -0
- package/dist/jsx/index.js +3 -2
- package/dist/jsx/index.js.map +1 -6
- package/dist/jsx/index.mjs +1 -0
- package/dist/jsx/index.mjs.map +1 -1
- package/dist/jsx/index.native.js +25 -3
- package/dist/jsx/index.native.js.map +1 -6
- package/dist/jsx/index.storybook.mjs +5 -0
- package/dist/jsx/index.storybook.mjs.map +1 -0
- package/dist/jsx/index.storybook.native.js +37 -0
- package/dist/jsx/index.storybook.native.js.map +1 -0
- package/dist/jsx/router/EmptyRouter.mjs +49 -0
- package/dist/jsx/router/EmptyRouter.mjs.map +1 -0
- package/dist/jsx/router/EmptyRouter.native.js +106 -0
- package/dist/jsx/router/EmptyRouter.native.js.map +1 -0
- package/dist/jsx/router/ReactRouter.mjs +79 -0
- package/dist/jsx/router/ReactRouter.mjs.map +1 -0
- package/dist/jsx/router/ReactRouter.native.js +135 -0
- package/dist/jsx/router/ReactRouter.native.js.map +1 -0
- package/dist/jsx/router/index.mjs +1 -53
- package/dist/jsx/router/index.mjs.map +1 -1
- package/dist/jsx/router/index.native.js +31 -68
- package/dist/jsx/router/index.native.js.map +1 -6
- package/dist/jsx/router/index.storybook-expo.mjs +1 -1
- package/dist/jsx/router/index.storybook-expo.mjs.map +1 -1
- package/dist/jsx/router/index.storybook-expo.native.js +23 -2
- package/dist/jsx/router/index.storybook-expo.native.js.map +1 -6
- package/dist/jsx/router/index.storybook.mjs +1 -1
- package/dist/jsx/router/index.storybook.mjs.map +1 -1
- package/dist/jsx/router/index.storybook.native.js +23 -2
- package/dist/jsx/router/index.storybook.native.js.map +1 -6
- package/dist/jsx/router/index.webext.mjs +1 -1
- package/dist/jsx/router/index.webext.mjs.map +1 -1
- package/dist/jsx/router/index.webext.native.js +23 -2
- package/dist/jsx/router/index.webext.native.js.map +1 -6
- package/dist/jsx/types.native.js +21 -1
- package/dist/jsx/types.native.js.map +1 -6
- package/package.json +46 -36
- package/src/hooks/README.md +232 -0
- package/src/hooks/index.ts +8 -0
- package/src/hooks/useUrlState.spec.ts +219 -0
- package/src/hooks/useUrlState.ts +231 -0
- package/src/index.storybook.ts +3 -0
- package/src/index.ts +1 -21
- package/src/router/EmptyRouter.tsx +50 -0
- package/src/router/{reactRouter.tsx → ReactRouter.tsx} +27 -22
- package/src/router/index.storybook-expo.tsx +1 -22
- package/src/router/index.storybook.tsx +1 -22
- package/src/router/index.tsx +1 -97
- package/src/router/index.webext.tsx +1 -22
- package/src/types.tsx +3 -24
- package/dist/cjs/index.js +0 -16
- package/dist/cjs/index.js.map +0 -6
- package/dist/cjs/router/emptyRouter.cjs +0 -55
- package/dist/cjs/router/emptyRouter.js +0 -47
- package/dist/cjs/router/emptyRouter.js.map +0 -6
- package/dist/cjs/router/emptyRouter.native.js +0 -77
- package/dist/cjs/router/emptyRouter.native.js.map +0 -6
- package/dist/cjs/router/index.electron.cjs +0 -18
- package/dist/cjs/router/index.electron.js +0 -15
- package/dist/cjs/router/index.electron.js.map +0 -6
- package/dist/cjs/router/index.electron.native.js +0 -20
- package/dist/cjs/router/index.electron.native.js.map +0 -6
- package/dist/cjs/router/index.js +0 -63
- package/dist/cjs/router/index.js.map +0 -6
- package/dist/cjs/router/index.storybook-expo.js +0 -15
- package/dist/cjs/router/index.storybook-expo.js.map +0 -6
- package/dist/cjs/router/index.storybook.js +0 -15
- package/dist/cjs/router/index.storybook.js.map +0 -6
- package/dist/cjs/router/index.webext.js +0 -15
- package/dist/cjs/router/index.webext.js.map +0 -6
- package/dist/cjs/router/reactRouter.cjs +0 -74
- package/dist/cjs/router/reactRouter.js +0 -48
- package/dist/cjs/router/reactRouter.js.map +0 -6
- package/dist/cjs/router/reactRouter.native.js +0 -96
- package/dist/cjs/router/reactRouter.native.js.map +0 -6
- package/dist/cjs/types.js +0 -14
- package/dist/cjs/types.js.map +0 -6
- package/dist/esm/index.js +0 -3
- package/dist/esm/index.js.map +0 -6
- package/dist/esm/router/emptyRouter.js +0 -31
- package/dist/esm/router/emptyRouter.js.map +0 -6
- package/dist/esm/router/emptyRouter.mjs +0 -29
- package/dist/esm/router/emptyRouter.mjs.map +0 -1
- package/dist/esm/router/emptyRouter.native.js +0 -54
- package/dist/esm/router/emptyRouter.native.js.map +0 -6
- package/dist/esm/router/index.electron.js +0 -2
- package/dist/esm/router/index.electron.js.map +0 -6
- package/dist/esm/router/index.electron.mjs +0 -2
- package/dist/esm/router/index.electron.mjs.map +0 -1
- package/dist/esm/router/index.electron.native.js +0 -2
- package/dist/esm/router/index.electron.native.js.map +0 -6
- package/dist/esm/router/index.js +0 -52
- package/dist/esm/router/index.js.map +0 -6
- package/dist/esm/router/index.storybook-expo.js +0 -2
- package/dist/esm/router/index.storybook-expo.js.map +0 -6
- package/dist/esm/router/index.storybook.js +0 -2
- package/dist/esm/router/index.storybook.js.map +0 -6
- package/dist/esm/router/index.webext.js +0 -2
- package/dist/esm/router/index.webext.js.map +0 -6
- package/dist/esm/router/reactRouter.js +0 -38
- package/dist/esm/router/reactRouter.js.map +0 -6
- package/dist/esm/router/reactRouter.mjs +0 -48
- package/dist/esm/router/reactRouter.mjs.map +0 -1
- package/dist/esm/router/reactRouter.native.js +0 -74
- package/dist/esm/router/reactRouter.native.js.map +0 -6
- package/dist/esm/types.js +0 -1
- package/dist/esm/types.js.map +0 -6
- package/dist/jsx/router/emptyRouter.js +0 -31
- package/dist/jsx/router/emptyRouter.js.map +0 -6
- package/dist/jsx/router/emptyRouter.mjs +0 -29
- package/dist/jsx/router/emptyRouter.mjs.map +0 -1
- package/dist/jsx/router/emptyRouter.native.js +0 -54
- package/dist/jsx/router/emptyRouter.native.js.map +0 -6
- package/dist/jsx/router/index.electron.js +0 -2
- package/dist/jsx/router/index.electron.js.map +0 -6
- package/dist/jsx/router/index.electron.mjs +0 -2
- package/dist/jsx/router/index.electron.mjs.map +0 -1
- package/dist/jsx/router/index.electron.native.js +0 -2
- package/dist/jsx/router/index.electron.native.js.map +0 -6
- package/dist/jsx/router/index.js +0 -52
- package/dist/jsx/router/index.js.map +0 -6
- package/dist/jsx/router/index.storybook-expo.js +0 -2
- package/dist/jsx/router/index.storybook-expo.js.map +0 -6
- package/dist/jsx/router/index.storybook.js +0 -2
- package/dist/jsx/router/index.storybook.js.map +0 -6
- package/dist/jsx/router/index.webext.js +0 -2
- package/dist/jsx/router/index.webext.js.map +0 -6
- package/dist/jsx/router/reactRouter.js +0 -38
- package/dist/jsx/router/reactRouter.js.map +0 -6
- package/dist/jsx/router/reactRouter.mjs +0 -48
- package/dist/jsx/router/reactRouter.mjs.map +0 -1
- package/dist/jsx/router/reactRouter.native.js +0 -74
- package/dist/jsx/router/reactRouter.native.js.map +0 -6
- package/dist/jsx/types.js +0 -1
- package/dist/jsx/types.js.map +0 -6
- package/src/router/emptyRouter.tsx +0 -56
- package/src/router/index.electron.tsx +0 -22
- package/types/index.d.ts +0 -3
- package/types/index.d.ts.map +0 -1
- package/types/router/emptyRouter.d.ts +0 -26
- package/types/router/emptyRouter.d.ts.map +0 -1
- package/types/router/index.d.ts +0 -27
- package/types/router/index.d.ts.map +0 -1
- package/types/router/index.electron.d.ts +0 -22
- package/types/router/index.electron.d.ts.map +0 -1
- package/types/router/index.storybook-expo.d.ts +0 -22
- package/types/router/index.storybook-expo.d.ts.map +0 -1
- package/types/router/index.storybook.d.ts +0 -22
- package/types/router/index.storybook.d.ts.map +0 -1
- package/types/router/index.webext.d.ts +0 -22
- package/types/router/index.webext.d.ts.map +0 -1
- package/types/router/reactRouter.d.ts +0 -27
- package/types/router/reactRouter.d.ts.map +0 -1
- package/types/types.d.ts +0 -60
- package/types/types.d.ts.map +0 -1
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __export = (target, all) => {
|
|
6
|
+
for (var name in all) __defProp(target, name, {
|
|
7
|
+
get: all[name],
|
|
8
|
+
enumerable: true
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
14
|
+
get: () => from[key],
|
|
15
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
21
|
+
value: true
|
|
22
|
+
}), mod);
|
|
23
|
+
var hooks_exports = {};
|
|
24
|
+
__export(hooks_exports, {
|
|
25
|
+
useSearchParams: () => import_useUrlState.useSearchParams,
|
|
26
|
+
useShareableUrl: () => import_useUrlState.useShareableUrl,
|
|
27
|
+
useTypedSearchParams: () => import_useUrlState.useTypedSearchParams,
|
|
28
|
+
useUrlState: () => import_useUrlState.useUrlState
|
|
29
|
+
});
|
|
30
|
+
module.exports = __toCommonJS(hooks_exports);
|
|
31
|
+
var import_useUrlState = require("./useUrlState.cjs");
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all) __defProp(target, name, {
|
|
9
|
+
get: all[name],
|
|
10
|
+
enumerable: true
|
|
11
|
+
});
|
|
12
|
+
};
|
|
13
|
+
var __copyProps = (to, from, except, desc) => {
|
|
14
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
15
|
+
for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
16
|
+
get: () => from[key],
|
|
17
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
return to;
|
|
21
|
+
};
|
|
22
|
+
var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
23
|
+
value: true
|
|
24
|
+
}), mod);
|
|
25
|
+
var hooks_exports = {};
|
|
26
|
+
__export(hooks_exports, {
|
|
27
|
+
useSearchParams: () => import_useUrlState.useSearchParams,
|
|
28
|
+
useShareableUrl: () => import_useUrlState.useShareableUrl,
|
|
29
|
+
useTypedSearchParams: () => import_useUrlState.useTypedSearchParams,
|
|
30
|
+
useUrlState: () => import_useUrlState.useUrlState
|
|
31
|
+
});
|
|
32
|
+
module.exports = __toCommonJS(hooks_exports);
|
|
33
|
+
var import_useUrlState = require("./useUrlState.native.js");
|
|
34
|
+
//# sourceMappingURL=index.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","hooks_exports","__export","useSearchParams","import_useUrlState","useShareableUrl","useTypedSearchParams","useUrlState","module","exports"],"sources":["../../../src/hooks/index.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,GAAA,IAAAC,WAAA,CAAAC,SAAA;EAAAC,KAAA;AAAA,IAAAH,GAAA;AAAA,IAAAI,aAAA;AAAAC,QAAA,CAAAD,aAAA;EAAAE,eAAA,EAAAA,CAAA,KAAAC,kBAAA,CAAAD,eAAA;EAAAE,eAAA,EAAAA,CAAA,KAAAD,kBAAA,CAAAC,eAAA;EAAAC,oBAAA,EAAAA,CAAA,KAAAF,kBAAA,CAAAE,oBAAA;EAAAC,WAAA,EAAAA,CAAA,KAAAH,kBAAA,CAAAG;AAAA;AAAAC,MAAA,CAAAC,OAAA,GAAAb,YAOO,CAAAK,aAAA","ignoreList":[]}
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __export = (target, all) => {
|
|
6
|
+
for (var name in all) __defProp(target, name, {
|
|
7
|
+
get: all[name],
|
|
8
|
+
enumerable: true
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
14
|
+
get: () => from[key],
|
|
15
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
21
|
+
value: true
|
|
22
|
+
}), mod);
|
|
23
|
+
var useUrlState_exports = {};
|
|
24
|
+
__export(useUrlState_exports, {
|
|
25
|
+
useSearchParams: () => useSearchParams,
|
|
26
|
+
useShareableUrl: () => useShareableUrl,
|
|
27
|
+
useTypedSearchParams: () => useTypedSearchParams,
|
|
28
|
+
useUrlState: () => useUrlState
|
|
29
|
+
});
|
|
30
|
+
module.exports = __toCommonJS(useUrlState_exports);
|
|
31
|
+
var import_react = require("react");
|
|
32
|
+
var import_platform = require("@multiplatform.one/platform");
|
|
33
|
+
var import_router = require("../router/index.cjs");
|
|
34
|
+
function useSearchParams() {
|
|
35
|
+
const router = (0, import_router.useRouter)();
|
|
36
|
+
const currentParams = (0, import_router.useParams)();
|
|
37
|
+
const debounceTimerRef = (0, import_react.useRef)(void 0);
|
|
38
|
+
const searchParams = (0, import_react.useMemo)(() => {
|
|
39
|
+
const params = {};
|
|
40
|
+
Object.entries(currentParams).forEach(([key, value]) => {
|
|
41
|
+
if (value !== void 0 && value !== null) {
|
|
42
|
+
params[key] = value;
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
return params;
|
|
46
|
+
}, [currentParams]);
|
|
47
|
+
const setSearchParams = (0, import_react.useCallback)((newParams, options = {}) => {
|
|
48
|
+
const {
|
|
49
|
+
replace: _replace = true,
|
|
50
|
+
debounceMs = 0
|
|
51
|
+
} = options;
|
|
52
|
+
const updateParams = () => {
|
|
53
|
+
const updatedParams = typeof newParams === "function" ? newParams(searchParams) : newParams;
|
|
54
|
+
const cleanParams = {};
|
|
55
|
+
Object.entries(updatedParams).forEach(([key, value]) => {
|
|
56
|
+
if (value !== void 0 && value !== null && value !== "") {
|
|
57
|
+
cleanParams[key] = value;
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
router.setParams(cleanParams);
|
|
61
|
+
};
|
|
62
|
+
if (debounceMs > 0) {
|
|
63
|
+
if (debounceTimerRef.current) {
|
|
64
|
+
clearTimeout(debounceTimerRef.current);
|
|
65
|
+
}
|
|
66
|
+
debounceTimerRef.current = setTimeout(updateParams, debounceMs);
|
|
67
|
+
} else {
|
|
68
|
+
updateParams();
|
|
69
|
+
}
|
|
70
|
+
}, [router, searchParams]);
|
|
71
|
+
(0, import_react.useEffect)(() => {
|
|
72
|
+
return () => {
|
|
73
|
+
if (debounceTimerRef.current) {
|
|
74
|
+
clearTimeout(debounceTimerRef.current);
|
|
75
|
+
}
|
|
76
|
+
};
|
|
77
|
+
}, []);
|
|
78
|
+
return [searchParams, setSearchParams];
|
|
79
|
+
}
|
|
80
|
+
function useUrlState(defaultValues, options = {}) {
|
|
81
|
+
const {
|
|
82
|
+
debounceMs = 500,
|
|
83
|
+
serialize = value => {
|
|
84
|
+
const params = {};
|
|
85
|
+
Object.entries(value).forEach(([key, val]) => {
|
|
86
|
+
if (val !== void 0 && val !== null && val !== "") {
|
|
87
|
+
if (Array.isArray(val)) {
|
|
88
|
+
params[key] = val.map(String);
|
|
89
|
+
} else if (typeof val === "object") {
|
|
90
|
+
params[key] = JSON.stringify(val);
|
|
91
|
+
} else {
|
|
92
|
+
params[key] = String(val);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
});
|
|
96
|
+
return params;
|
|
97
|
+
},
|
|
98
|
+
deserialize = params => {
|
|
99
|
+
const result = {};
|
|
100
|
+
Object.entries(params).forEach(([key, value]) => {
|
|
101
|
+
if (key in defaultValues) {
|
|
102
|
+
const defaultValue = defaultValues[key];
|
|
103
|
+
if (value === void 0) {
|
|
104
|
+
result[key] = defaultValue;
|
|
105
|
+
} else if (Array.isArray(defaultValue)) {
|
|
106
|
+
result[key] = Array.isArray(value) ? value : [value];
|
|
107
|
+
} else if (typeof defaultValue === "boolean") {
|
|
108
|
+
result[key] = value === "true";
|
|
109
|
+
} else if (typeof defaultValue === "number") {
|
|
110
|
+
result[key] = Number(value);
|
|
111
|
+
} else if (typeof defaultValue === "object" && defaultValue !== null) {
|
|
112
|
+
try {
|
|
113
|
+
result[key] = JSON.parse(String(value));
|
|
114
|
+
} catch {
|
|
115
|
+
result[key] = defaultValue;
|
|
116
|
+
}
|
|
117
|
+
} else {
|
|
118
|
+
result[key] = value;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
});
|
|
122
|
+
Object.keys(defaultValues).forEach(key => {
|
|
123
|
+
if (!(key in result)) {
|
|
124
|
+
result[key] = defaultValues[key];
|
|
125
|
+
}
|
|
126
|
+
});
|
|
127
|
+
return result;
|
|
128
|
+
}
|
|
129
|
+
} = options;
|
|
130
|
+
const [searchParams, setSearchParams] = useSearchParams();
|
|
131
|
+
const currentState = (0, import_react.useMemo)(() => {
|
|
132
|
+
return deserialize(searchParams);
|
|
133
|
+
}, [searchParams, deserialize]);
|
|
134
|
+
const setState = (0, import_react.useCallback)(newState => {
|
|
135
|
+
const updatedState = typeof newState === "function" ? newState(currentState) : newState;
|
|
136
|
+
const mergedState = {
|
|
137
|
+
...currentState,
|
|
138
|
+
...updatedState
|
|
139
|
+
};
|
|
140
|
+
const serialized = serialize(mergedState);
|
|
141
|
+
setSearchParams(serialized, {
|
|
142
|
+
debounceMs
|
|
143
|
+
});
|
|
144
|
+
}, [currentState, serialize, setSearchParams, debounceMs]);
|
|
145
|
+
return [currentState, setState];
|
|
146
|
+
}
|
|
147
|
+
function useShareableUrl() {
|
|
148
|
+
const params = (0, import_router.useParams)();
|
|
149
|
+
const shareableUrl = (0, import_react.useMemo)(() => {
|
|
150
|
+
if (!import_platform.isWeb || typeof window === "undefined") {
|
|
151
|
+
return "";
|
|
152
|
+
}
|
|
153
|
+
const url = new URL(window.location.href);
|
|
154
|
+
url.search = "";
|
|
155
|
+
Object.entries(params).forEach(([key, value]) => {
|
|
156
|
+
if (value !== void 0 && value !== null && value !== "") {
|
|
157
|
+
if (Array.isArray(value)) {
|
|
158
|
+
value.forEach(v => url.searchParams.append(key, String(v)));
|
|
159
|
+
} else {
|
|
160
|
+
url.searchParams.set(key, String(value));
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
});
|
|
164
|
+
return url.toString();
|
|
165
|
+
}, [params]);
|
|
166
|
+
return shareableUrl;
|
|
167
|
+
}
|
|
168
|
+
function useTypedSearchParams(schema) {
|
|
169
|
+
const params = (0, import_router.useParams)();
|
|
170
|
+
const typedParams = (0, import_react.useMemo)(() => {
|
|
171
|
+
const result = {};
|
|
172
|
+
Object.entries(schema).forEach(([key, config]) => {
|
|
173
|
+
const rawValue = params[key];
|
|
174
|
+
if (config.parse) {
|
|
175
|
+
result[key] = config.parse(rawValue);
|
|
176
|
+
} else if (rawValue === void 0) {
|
|
177
|
+
result[key] = config.default;
|
|
178
|
+
} else {
|
|
179
|
+
result[key] = rawValue;
|
|
180
|
+
}
|
|
181
|
+
});
|
|
182
|
+
return result;
|
|
183
|
+
}, [params, schema]);
|
|
184
|
+
return typedParams;
|
|
185
|
+
}
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all) __defProp(target, name, {
|
|
9
|
+
get: all[name],
|
|
10
|
+
enumerable: true
|
|
11
|
+
});
|
|
12
|
+
};
|
|
13
|
+
var __copyProps = (to, from, except, desc) => {
|
|
14
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
15
|
+
for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
16
|
+
get: () => from[key],
|
|
17
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
return to;
|
|
21
|
+
};
|
|
22
|
+
var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
23
|
+
value: true
|
|
24
|
+
}), mod);
|
|
25
|
+
var useUrlState_exports = {};
|
|
26
|
+
__export(useUrlState_exports, {
|
|
27
|
+
useSearchParams: () => useSearchParams,
|
|
28
|
+
useShareableUrl: () => useShareableUrl,
|
|
29
|
+
useTypedSearchParams: () => useTypedSearchParams,
|
|
30
|
+
useUrlState: () => useUrlState
|
|
31
|
+
});
|
|
32
|
+
module.exports = __toCommonJS(useUrlState_exports);
|
|
33
|
+
var import_react = require("react");
|
|
34
|
+
var import_platform = require("@multiplatform.one/platform");
|
|
35
|
+
var import_router = require("../router/index.native.js");
|
|
36
|
+
function _type_of(obj) {
|
|
37
|
+
"@swc/helpers - typeof";
|
|
38
|
+
|
|
39
|
+
return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
|
|
40
|
+
}
|
|
41
|
+
function useSearchParams() {
|
|
42
|
+
var router = (0, import_router.useRouter)();
|
|
43
|
+
var currentParams = (0, import_router.useParams)();
|
|
44
|
+
var debounceTimerRef = (0, import_react.useRef)(void 0);
|
|
45
|
+
var searchParams = (0, import_react.useMemo)(function () {
|
|
46
|
+
var params = {};
|
|
47
|
+
Object.entries(currentParams).forEach(function (param) {
|
|
48
|
+
var [key, value] = param;
|
|
49
|
+
if (value !== void 0 && value !== null) {
|
|
50
|
+
params[key] = value;
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
return params;
|
|
54
|
+
}, [currentParams]);
|
|
55
|
+
var setSearchParams = (0, import_react.useCallback)(function (newParams) {
|
|
56
|
+
var options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
|
|
57
|
+
var {
|
|
58
|
+
replace: _replace = true,
|
|
59
|
+
debounceMs = 0
|
|
60
|
+
} = options;
|
|
61
|
+
var updateParams = function updateParams2() {
|
|
62
|
+
var updatedParams = typeof newParams === "function" ? newParams(searchParams) : newParams;
|
|
63
|
+
var cleanParams = {};
|
|
64
|
+
Object.entries(updatedParams).forEach(function (param) {
|
|
65
|
+
var [key, value] = param;
|
|
66
|
+
if (value !== void 0 && value !== null && value !== "") {
|
|
67
|
+
cleanParams[key] = value;
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
router.setParams(cleanParams);
|
|
71
|
+
};
|
|
72
|
+
if (debounceMs > 0) {
|
|
73
|
+
if (debounceTimerRef.current) {
|
|
74
|
+
clearTimeout(debounceTimerRef.current);
|
|
75
|
+
}
|
|
76
|
+
debounceTimerRef.current = setTimeout(updateParams, debounceMs);
|
|
77
|
+
} else {
|
|
78
|
+
updateParams();
|
|
79
|
+
}
|
|
80
|
+
}, [router, searchParams]);
|
|
81
|
+
(0, import_react.useEffect)(function () {
|
|
82
|
+
return function () {
|
|
83
|
+
if (debounceTimerRef.current) {
|
|
84
|
+
clearTimeout(debounceTimerRef.current);
|
|
85
|
+
}
|
|
86
|
+
};
|
|
87
|
+
}, []);
|
|
88
|
+
return [searchParams, setSearchParams];
|
|
89
|
+
}
|
|
90
|
+
function useUrlState(defaultValues) {
|
|
91
|
+
var options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
|
|
92
|
+
var {
|
|
93
|
+
debounceMs = 500,
|
|
94
|
+
serialize = function (value) {
|
|
95
|
+
var params = {};
|
|
96
|
+
Object.entries(value).forEach(function (param) {
|
|
97
|
+
var [key, val] = param;
|
|
98
|
+
if (val !== void 0 && val !== null && val !== "") {
|
|
99
|
+
if (Array.isArray(val)) {
|
|
100
|
+
params[key] = val.map(String);
|
|
101
|
+
} else if ((typeof val === "undefined" ? "undefined" : _type_of(val)) === "object") {
|
|
102
|
+
params[key] = JSON.stringify(val);
|
|
103
|
+
} else {
|
|
104
|
+
params[key] = String(val);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
});
|
|
108
|
+
return params;
|
|
109
|
+
},
|
|
110
|
+
deserialize = function (params) {
|
|
111
|
+
var result = {};
|
|
112
|
+
Object.entries(params).forEach(function (param) {
|
|
113
|
+
var [key, value] = param;
|
|
114
|
+
if (key in defaultValues) {
|
|
115
|
+
var defaultValue = defaultValues[key];
|
|
116
|
+
if (value === void 0) {
|
|
117
|
+
result[key] = defaultValue;
|
|
118
|
+
} else if (Array.isArray(defaultValue)) {
|
|
119
|
+
result[key] = Array.isArray(value) ? value : [value];
|
|
120
|
+
} else if (typeof defaultValue === "boolean") {
|
|
121
|
+
result[key] = value === "true";
|
|
122
|
+
} else if (typeof defaultValue === "number") {
|
|
123
|
+
result[key] = Number(value);
|
|
124
|
+
} else if ((typeof defaultValue === "undefined" ? "undefined" : _type_of(defaultValue)) === "object" && defaultValue !== null) {
|
|
125
|
+
try {
|
|
126
|
+
result[key] = JSON.parse(String(value));
|
|
127
|
+
} catch (unused) {
|
|
128
|
+
result[key] = defaultValue;
|
|
129
|
+
}
|
|
130
|
+
} else {
|
|
131
|
+
result[key] = value;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
});
|
|
135
|
+
Object.keys(defaultValues).forEach(function (key) {
|
|
136
|
+
if (!(key in result)) {
|
|
137
|
+
result[key] = defaultValues[key];
|
|
138
|
+
}
|
|
139
|
+
});
|
|
140
|
+
return result;
|
|
141
|
+
}
|
|
142
|
+
} = options;
|
|
143
|
+
var [searchParams, setSearchParams] = useSearchParams();
|
|
144
|
+
var currentState = (0, import_react.useMemo)(function () {
|
|
145
|
+
return deserialize(searchParams);
|
|
146
|
+
}, [searchParams, deserialize]);
|
|
147
|
+
var setState = (0, import_react.useCallback)(function (newState) {
|
|
148
|
+
var updatedState = typeof newState === "function" ? newState(currentState) : newState;
|
|
149
|
+
var mergedState = {
|
|
150
|
+
...currentState,
|
|
151
|
+
...updatedState
|
|
152
|
+
};
|
|
153
|
+
var serialized = serialize(mergedState);
|
|
154
|
+
setSearchParams(serialized, {
|
|
155
|
+
debounceMs
|
|
156
|
+
});
|
|
157
|
+
}, [currentState, serialize, setSearchParams, debounceMs]);
|
|
158
|
+
return [currentState, setState];
|
|
159
|
+
}
|
|
160
|
+
function useShareableUrl() {
|
|
161
|
+
var params = (0, import_router.useParams)();
|
|
162
|
+
var shareableUrl = (0, import_react.useMemo)(function () {
|
|
163
|
+
if (!import_platform.isWeb || typeof window === "undefined") {
|
|
164
|
+
return "";
|
|
165
|
+
}
|
|
166
|
+
var url = new URL(window.location.href);
|
|
167
|
+
url.search = "";
|
|
168
|
+
Object.entries(params).forEach(function (param) {
|
|
169
|
+
var [key, value] = param;
|
|
170
|
+
if (value !== void 0 && value !== null && value !== "") {
|
|
171
|
+
if (Array.isArray(value)) {
|
|
172
|
+
value.forEach(function (v) {
|
|
173
|
+
return url.searchParams.append(key, String(v));
|
|
174
|
+
});
|
|
175
|
+
} else {
|
|
176
|
+
url.searchParams.set(key, String(value));
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
});
|
|
180
|
+
return url.toString();
|
|
181
|
+
}, [params]);
|
|
182
|
+
return shareableUrl;
|
|
183
|
+
}
|
|
184
|
+
function useTypedSearchParams(schema) {
|
|
185
|
+
var params = (0, import_router.useParams)();
|
|
186
|
+
var typedParams = (0, import_react.useMemo)(function () {
|
|
187
|
+
var result = {};
|
|
188
|
+
Object.entries(schema).forEach(function (param) {
|
|
189
|
+
var [key, config] = param;
|
|
190
|
+
var rawValue = params[key];
|
|
191
|
+
if (config.parse) {
|
|
192
|
+
result[key] = config.parse(rawValue);
|
|
193
|
+
} else if (rawValue === void 0) {
|
|
194
|
+
result[key] = config.default;
|
|
195
|
+
} else {
|
|
196
|
+
result[key] = rawValue;
|
|
197
|
+
}
|
|
198
|
+
});
|
|
199
|
+
return result;
|
|
200
|
+
}, [params, schema]);
|
|
201
|
+
return typedParams;
|
|
202
|
+
}
|
|
203
|
+
//# sourceMappingURL=useUrlState.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","useUrlState_exports","__export","useSearchParams","useShareableUrl","useTypedSearchParams","useUrlState","module","exports","import_react","require","import_platform","import_router","_type_of","obj","Symbol","constructor","router","useRouter","currentParams","useParams","debounceTimerRef","useRef","searchParams","useMemo","params","Object","entries","forEach","param","key","setSearchParams","useCallback","newParams","options","arguments","length","replace","_replace","debounceMs","updateParams","updateParams2","updatedParams","cleanParams","setParams","current","clearTimeout","setTimeout","useEffect","defaultValues","serialize","val","Array","isArray","map","String","JSON","stringify","deserialize","result","defaultValue","Number","parse","unused","keys","currentState","setState","newState","updatedState","mergedState","serialized","shareableUrl","isWeb","window","url","URL","location","href","search"],"sources":["../../../src/hooks/useUrlState.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|