@multiplatform.one/router 6.1.0 → 6.3.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.
- package/README.md +51 -0
- package/dist/cjs/hooks/useUrlState.cjs +30 -9
- package/dist/cjs/hooks/useUrlState.native.js +32 -9
- package/dist/cjs/hooks/useUrlState.native.js.map +1 -1
- package/dist/cjs/seam/DomNavigationHost.cjs +122 -0
- package/dist/cjs/seam/DomNavigationHost.native.js +186 -0
- package/dist/cjs/seam/DomNavigationHost.native.js.map +1 -0
- package/dist/cjs/seam/index.cjs +47 -0
- package/dist/cjs/seam/index.native.js +50 -0
- package/dist/cjs/seam/index.native.js.map +1 -0
- package/dist/cjs/seam/navigator.cjs +309 -0
- package/dist/cjs/seam/navigator.native.js +479 -0
- package/dist/cjs/seam/navigator.native.js.map +1 -0
- package/dist/cjs/seam/oneAdapter.cjs +128 -0
- package/dist/cjs/seam/oneAdapter.native.js +141 -0
- package/dist/cjs/seam/oneAdapter.native.js.map +1 -0
- package/dist/esm/hooks/useUrlState.mjs +31 -10
- package/dist/esm/hooks/useUrlState.mjs.map +1 -1
- package/dist/esm/hooks/useUrlState.native.js +33 -10
- package/dist/esm/hooks/useUrlState.native.js.map +1 -1
- package/dist/esm/seam/DomNavigationHost.mjs +96 -0
- package/dist/esm/seam/DomNavigationHost.mjs.map +1 -0
- package/dist/esm/seam/DomNavigationHost.native.js +157 -0
- package/dist/esm/seam/DomNavigationHost.native.js.map +1 -0
- package/dist/esm/seam/index.mjs +5 -0
- package/dist/esm/seam/index.mjs.map +1 -0
- package/dist/esm/seam/index.native.js +5 -0
- package/dist/esm/seam/index.native.js.map +1 -0
- package/dist/esm/seam/navigator.mjs +279 -0
- package/dist/esm/seam/navigator.mjs.map +1 -0
- package/dist/esm/seam/navigator.native.js +446 -0
- package/dist/esm/seam/navigator.native.js.map +1 -0
- package/dist/esm/seam/oneAdapter.mjs +90 -0
- package/dist/esm/seam/oneAdapter.mjs.map +1 -0
- package/dist/esm/seam/oneAdapter.native.js +100 -0
- package/dist/esm/seam/oneAdapter.native.js.map +1 -0
- package/dist/jsx/hooks/useUrlState.mjs +31 -10
- package/dist/jsx/hooks/useUrlState.mjs.map +1 -1
- package/dist/jsx/hooks/useUrlState.native.js +32 -9
- package/dist/jsx/hooks/useUrlState.native.js.map +1 -1
- package/dist/jsx/seam/DomNavigationHost.mjs +96 -0
- package/dist/jsx/seam/DomNavigationHost.mjs.map +1 -0
- package/dist/jsx/seam/DomNavigationHost.native.js +186 -0
- package/dist/jsx/seam/DomNavigationHost.native.js.map +1 -0
- package/dist/jsx/seam/index.mjs +5 -0
- package/dist/jsx/seam/index.mjs.map +1 -0
- package/dist/jsx/seam/index.native.js +50 -0
- package/dist/jsx/seam/index.native.js.map +1 -0
- package/dist/jsx/seam/navigator.mjs +279 -0
- package/dist/jsx/seam/navigator.mjs.map +1 -0
- package/dist/jsx/seam/navigator.native.js +479 -0
- package/dist/jsx/seam/navigator.native.js.map +1 -0
- package/dist/jsx/seam/oneAdapter.mjs +90 -0
- package/dist/jsx/seam/oneAdapter.mjs.map +1 -0
- package/dist/jsx/seam/oneAdapter.native.js +141 -0
- package/dist/jsx/seam/oneAdapter.native.js.map +1 -0
- package/package.json +26 -9
- package/src/hooks/urlStateEdges.spec.ts +98 -0
- package/src/hooks/useUrlState.ts +34 -8
- package/src/seam/DomNavigationHost.spec.tsx +78 -0
- package/src/seam/DomNavigationHost.tsx +150 -0
- package/src/seam/index.ts +41 -0
- package/src/seam/navigator.spec.ts +189 -0
- package/src/seam/navigator.ts +405 -0
- package/src/seam/oneAdapter.tsx +166 -0
- package/types/hooks/index.d.ts +2 -0
- package/types/hooks/index.d.ts.map +1 -0
- package/types/hooks/useUrlState.d.ts +36 -0
- package/types/hooks/useUrlState.d.ts.map +1 -0
- package/types/index.d.ts +4 -0
- package/types/index.d.ts.map +1 -0
- package/types/index.storybook.d.ts +4 -0
- package/types/index.storybook.d.ts.map +1 -0
- package/types/router/EmptyRouter.d.ts +7 -0
- package/types/router/EmptyRouter.d.ts.map +1 -0
- package/types/router/ReactRouter.d.ts +6 -0
- package/types/router/ReactRouter.d.ts.map +1 -0
- package/types/router/index.d.ts +2 -0
- package/types/router/index.d.ts.map +1 -0
- package/types/router/index.storybook-expo.d.ts +2 -0
- package/types/router/index.storybook-expo.d.ts.map +1 -0
- package/types/router/index.storybook.d.ts +2 -0
- package/types/router/index.storybook.d.ts.map +1 -0
- package/types/router/index.webext.d.ts +2 -0
- package/types/router/index.webext.d.ts.map +1 -0
- package/types/seam/DomNavigationHost.d.ts +33 -0
- package/types/seam/DomNavigationHost.d.ts.map +1 -0
- package/types/seam/index.d.ts +7 -0
- package/types/seam/index.d.ts.map +1 -0
- package/types/seam/navigator.d.ts +133 -0
- package/types/seam/navigator.d.ts.map +1 -0
- package/types/seam/oneAdapter.d.ts +57 -0
- package/types/seam/oneAdapter.d.ts.map +1 -0
- package/types/types.d.ts +40 -0
- package/types/types.d.ts.map +1 -0
- package/dist/cjs/hooks/useUrlState.spec.cjs +0 -280
- package/dist/cjs/hooks/useUrlState.spec.native.js +0 -315
- package/dist/cjs/hooks/useUrlState.spec.native.js.map +0 -1
- package/dist/esm/hooks/useUrlState.spec.mjs +0 -257
- package/dist/esm/hooks/useUrlState.spec.mjs.map +0 -1
- package/dist/esm/hooks/useUrlState.spec.native.js +0 -289
- package/dist/esm/hooks/useUrlState.spec.native.js.map +0 -1
- package/dist/jsx/hooks/useUrlState.spec.mjs +0 -257
- package/dist/jsx/hooks/useUrlState.spec.mjs.map +0 -1
- package/dist/jsx/hooks/useUrlState.spec.native.js +0 -315
- package/dist/jsx/hooks/useUrlState.spec.native.js.map +0 -1
|
@@ -0,0 +1,141 @@
|
|
|
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 oneAdapter_exports = {};
|
|
26
|
+
__export(oneAdapter_exports, {
|
|
27
|
+
Link: () => Link,
|
|
28
|
+
LoadProgressBar: () => LoadProgressBar,
|
|
29
|
+
Slot: () => Slot,
|
|
30
|
+
getUserScheme: () => import_color_scheme.getUserScheme,
|
|
31
|
+
onUserSchemeChange: () => import_color_scheme.onUserSchemeChange,
|
|
32
|
+
setUserScheme: () => import_color_scheme.setUserScheme,
|
|
33
|
+
useBlocker: () => useBlocker,
|
|
34
|
+
useLoader: () => useLoader,
|
|
35
|
+
useLocalSearchParams: () => useLocalSearchParams,
|
|
36
|
+
useMatches: () => useMatches,
|
|
37
|
+
useParams: () => useParams,
|
|
38
|
+
usePathname: () => usePathname,
|
|
39
|
+
useRouter: () => useRouter,
|
|
40
|
+
useUserScheme: () => import_color_scheme.useUserScheme
|
|
41
|
+
});
|
|
42
|
+
module.exports = __toCommonJS(oneAdapter_exports);
|
|
43
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
44
|
+
var import_react = require("react");
|
|
45
|
+
var import_navigator = require("./navigator.native.js");
|
|
46
|
+
var import_color_scheme = require("@vxrn/color-scheme");
|
|
47
|
+
function useLoader(_loader) {
|
|
48
|
+
var tag = (0, import_react.useContext)(import_navigator.RouteTagContext);
|
|
49
|
+
var fromRoute = (0, import_react.useSyncExternalStore)(import_navigator.stackNavigator.subscribe, function () {
|
|
50
|
+
return import_navigator.stackNavigator.loaderSnapshot(tag);
|
|
51
|
+
});
|
|
52
|
+
return fromRoute;
|
|
53
|
+
}
|
|
54
|
+
var ROUTER = {
|
|
55
|
+
push: import_navigator.stackNavigator.push,
|
|
56
|
+
navigate: import_navigator.stackNavigator.push,
|
|
57
|
+
replace: import_navigator.stackNavigator.replace,
|
|
58
|
+
back: import_navigator.stackNavigator.back,
|
|
59
|
+
canGoBack: function canGoBack() {
|
|
60
|
+
return import_navigator.stackNavigator.getSnapshot().canGoBack;
|
|
61
|
+
},
|
|
62
|
+
dismiss: function dismiss(count) {
|
|
63
|
+
for (var i = 0; i < (count !== null && count !== void 0 ? count : 1); i++) import_navigator.stackNavigator.back();
|
|
64
|
+
},
|
|
65
|
+
dismissAll: function dismissAll() {
|
|
66
|
+
var depth = import_navigator.stackNavigator.getSnapshot().depth;
|
|
67
|
+
for (var i = 1; i < depth; i++) import_navigator.stackNavigator.back();
|
|
68
|
+
},
|
|
69
|
+
canDismiss: function canDismiss() {
|
|
70
|
+
return import_navigator.stackNavigator.getSnapshot().canGoBack;
|
|
71
|
+
},
|
|
72
|
+
setParams: import_navigator.stackNavigator.setParams,
|
|
73
|
+
subscribe: function subscribe(listener) {
|
|
74
|
+
listener("success");
|
|
75
|
+
return function () {};
|
|
76
|
+
},
|
|
77
|
+
onLoadState: function onLoadState(listener) {
|
|
78
|
+
listener("loaded");
|
|
79
|
+
return function () {};
|
|
80
|
+
}
|
|
81
|
+
};
|
|
82
|
+
function useRouter() {
|
|
83
|
+
return ROUTER;
|
|
84
|
+
}
|
|
85
|
+
function Link(param) {
|
|
86
|
+
var {
|
|
87
|
+
href,
|
|
88
|
+
replace,
|
|
89
|
+
children,
|
|
90
|
+
style,
|
|
91
|
+
...rest
|
|
92
|
+
} = param;
|
|
93
|
+
if (!href || !import_navigator.stackNavigator.isConfigured) return children !== null && children !== void 0 ? children : null;
|
|
94
|
+
var hrefString = (0, import_navigator.hrefToString)(href);
|
|
95
|
+
var onClick = function onClick2(event) {
|
|
96
|
+
event.preventDefault();
|
|
97
|
+
if (replace) import_navigator.stackNavigator.replace(href);else import_navigator.stackNavigator.push(href);
|
|
98
|
+
};
|
|
99
|
+
return /* @__PURE__ */(0, import_jsx_runtime.jsx)("a", {
|
|
100
|
+
href: hrefString,
|
|
101
|
+
onClick,
|
|
102
|
+
// display:contents — the anchor contributes no box, so wrapping
|
|
103
|
+
// arbitrary flex/grid children never disturbs layout (clicks still
|
|
104
|
+
// bubble through it).
|
|
105
|
+
style: {
|
|
106
|
+
display: "contents",
|
|
107
|
+
color: "inherit",
|
|
108
|
+
textDecoration: "none",
|
|
109
|
+
...style
|
|
110
|
+
},
|
|
111
|
+
"data-seam-link": hrefString,
|
|
112
|
+
...rest,
|
|
113
|
+
children
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
function Slot(_props) {
|
|
117
|
+
return null;
|
|
118
|
+
}
|
|
119
|
+
function useParams() {
|
|
120
|
+
return (0, import_navigator.useRouteParams)();
|
|
121
|
+
}
|
|
122
|
+
function useLocalSearchParams() {
|
|
123
|
+
return (0, import_navigator.useRouteParams)();
|
|
124
|
+
}
|
|
125
|
+
function usePathname() {
|
|
126
|
+
return (0, import_navigator.useNavState)().pathname;
|
|
127
|
+
}
|
|
128
|
+
function useBlocker(_shouldBlock) {
|
|
129
|
+
return {
|
|
130
|
+
state: "unblocked",
|
|
131
|
+
proceed: function proceed() {},
|
|
132
|
+
reset: function reset() {}
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
function LoadProgressBar(_props) {
|
|
136
|
+
return null;
|
|
137
|
+
}
|
|
138
|
+
function useMatches() {
|
|
139
|
+
return [];
|
|
140
|
+
}
|
|
141
|
+
//# sourceMappingURL=oneAdapter.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","oneAdapter_exports","__export","Link","LoadProgressBar","Slot","getUserScheme","import_color_scheme","onUserSchemeChange","setUserScheme","useBlocker","useLoader","useLocalSearchParams","useMatches","useParams","usePathname","useRouter","useUserScheme","module","exports","import_jsx_runtime","require","import_react","import_navigator","_loader","tag","useContext","RouteTagContext","fromRoute","useSyncExternalStore","stackNavigator","subscribe","loaderSnapshot","ROUTER","push","navigate","replace","back","canGoBack","getSnapshot","dismiss","count","i","dismissAll","depth","canDismiss","setParams","listener","onLoadState","param","href","children","style","rest","isConfigured","hrefString","hrefToString","onClick","onClick2","event","preventDefault","jsx","display","color","textDecoration","_props","useRouteParams","useNavState","pathname","_shouldBlock"],"sources":["../../../src/seam/oneAdapter.tsx"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,GAAA,IAAAC,WAAA,CAAAC,SAAA;EAAAC,KAAA;AAAA,IAAAH,GAAA;AAAA,IAAAI,kBAAA;AAAAC,QAAA,CAAAD,kBAAA;EAAAE,IAAA,EAAAA,CAAA,KAAAA,IAAA;EAAAC,eAAA,EAAAA,CAAA,KAAAA,eAAA;EAAAC,IAAA,EAAAA,CAAA,KAAAA,IAAA;EAAAC,aAAA,EAAAA,CAAA,KAAAC,mBAAA,CAAAD,aAAA;EAAAE,kBAAA,EAAAA,CAAA,KAAAD,mBAAA,CAAAC,kBAAA;EAAAC,aAAA,EAAAA,CAAA,KAAAF,mBAAA,CAAAE,aAAA;EAAAC,UAAA,EAAAA,CAAA,KAAAA,UAAA;EAAAC,SAAA,EAAAA,CAAA,KAAAA,SAAA;EAAAC,oBAAA,EAAAA,CAAA,KAAAA,oBAAA;EAAAC,UAAA,EAAAA,CAAA,KAAAA,UAAA;EAAAC,SAAA,EAAAA,CAAA,KAAAA,SAAA;EAAAC,WAAA,EAAAA,CAAA,KAAAA,WAAA;EAAAC,SAAA,EAAAA,CAAA,KAAAA,SAAA;EAAAC,aAAA,EAAAA,CAAA,KAAAV,mBAAA,CAAAU;AAAA;AAqBAC,MAAA,CAAAC,OAAA,GAAAvB,YAAiD,CAAAK,kBAAA;AACjD,IAAAmB,kBAAA,GAQOC,OAAA;AAEP,IAAAC,YAAA,GAAAD,OAKO;AAuEH,IAAAE,gBAAA,GAAAF,OAAA;AA9DG,IAAAd,mBAAsB,GAAAc,OAAuD;AAClF,SAAMV,SAAMA,CAAAa,OAAA;EACZ,IAAAC,GAAM,OAAAH,YAAY,CAAAI,UAAA,EAAAH,gBAAA,CAAAI,eAAA;EAAA,IAAqBC,SAAA,OAAAN,YAAA,CAAAO,oBAAe,EAAAN,gBAAA,CAAAO,cAAA,CAAAC,SAAA;IAAW,OAC/DR,gBAAA,CAAAO,cAAe,CAAAE,cAAe,CAAAP,GAAG;EACnC;EACA,OAAOG,SAAA;AACT;AAMA,IAAAK,MAAM;EACJC,IAAA,EAAMX,gBAAA,CAAAO,cAAA,CAAeI,IAAA;EACrBC,QAAA,EAAUZ,gBAAA,CAAAO,cAAA,CAAeI,IAAA;EACzBE,OAAA,EAASb,gBAAA,CAAAO,cAAA,CAAeM,OAAA;EACxBC,IAAA,EAAMd,gBAAA,CAAAO,cAAA,CAAeO,IAAA;EACrBC,SAAA,EAAW,SAAMA,UAAA;IACjB,OAASf,gBAAoB,CAAAO,cAAA,CAAAS,WAAA,GAAAD,SAAA;EAC3B;EACFE,OAAA,WAAAA,QAAAC,KAAA;IACA,SAAAC,CAAY,MAAMA,CAAA,IAAAD,KAAA,aAAAA,KAAA,cAAAA,KAAA,OAAAC,CAAA,IAAAnB,gBAAA,CAAAO,cAAA,CAAAO,IAAA;EAChB;EACAM,UAAA,EAAS,SAAOA,UAAWA,CAAA,EAAK;IAClC,IAAAC,KAAA,GAAArB,gBAAA,CAAAO,cAAA,CAAAS,WAAA,GAAAK,KAAA;IACA,SAAAF,CAAY,MAAMA,CAAA,GAAAE,KAAA,EAAAF,CAAA,IAAAnB,gBAAe,CAAAO,cAAc,CAAAO,IAAA;EAC/C;EACAQ,UAAA,EAAY,SAAAA,UAAmDA,CAAA;IAC7D,OAAAtB,gBAAkB,CAAAO,cAAA,CAAAS,WAAA,GAAAD,SAAA;EAClB;EAAaQ,SAAC,EAAAvB,gBAAA,CAAAO,cAAA,CAAAgB,SAAA;EAChBf,SAAA,WAAAA,UAAAgB,QAAA;IACAA,QAAA,UAAc;IACZ,mBAAiB,CACjB;EAAa;EACfC,WAAA,WAAAA,YAAAD,QAAA;IACFA,QAAA;IAEO,OAAS,YAA2B,CACzC;EACF;AAcO;AACL,SAAK/B,SAASA,CAAA;EACd,OAAMiB,MAAA;AACN;AACE,SAAA9B,IAAMA,CAAA8C,KAAA;EACN;IAAIC,IAAA;IAAAd,OAAS;IAAAe,QAAA;IAAAC,KAAA;IAAA,GAAAC;EAAA,CAAe,GAAAJ,KAAQ;EAAI,KAAAC,IACnC,KAAA3B,gBAAA,CAAAO,cAAoB,CAAAwB,YAAI,SAAAH,QAAA,aAAAA,QAAA,cAAAA,QAAA;EAC/B,IAAAI,UAAA,OAAAhC,gBAAA,CAAAiC,YAAA,EAAAN,IAAA;EACA,IAAAO,OACE,YAAAC,SAAAC,KAAA;IAACA,KAAA,CAAAC,cAAA;IAAA,IAAAxB,OAAA,EAAAb,gBAAA,CAAAO,cAAA,CAAAM,OAAA,CAAAc,IAAA,OACC3B,gBAAM,CAAAO,cAAA,CAAAI,IAAA,CAAAgB,IAAA;EAAA;EACN,OAIA,eAAkB,IAAA9B,kBAAmB,CAAAyC,GAAA,KAAW;IAAiCX,IACjF,EAAAK,UAAA;IAAgBE,OACZ;IAAA;IAEH;IACH;IAEJL,KAAA;MAMOU,OAAS,EAAK,UAAuC;MAC1DC,KAAO;MACTC,cAAA;MAEO,GAASZ;IACd;IACF,kBAAAG,UAAA;IAEO,GAAAF,IAAS;IACdF;EACF;AAEO;AACL,SAAA9C,IAAOA,CAAA4D,MAAA;EACT;AAMO;AAKL,SAAOnD,SAASA,CAAA;EAA6B,OAAG,IAAOS,gBAAM,CAAA2C,cAAA;AAAA;AAC/D,SAAAtD,qBAAA;EAIO,OAAS,IAAAW,gBAAgB,CAAA2C,cAAuC;AACrE;AACF,SAAAnD,YAAA;EAIO,OAAS,IAAAQ,gBAAwB,CAAA4C,WAAA,IAAAC,QAAA;AACtC;AACF,SAAA1D,WAAA2D,YAAA","ignoreList":[]}
|
|
@@ -1,18 +1,35 @@
|
|
|
1
|
-
import { useCallback, useEffect, useMemo, useRef } from "react";
|
|
1
|
+
import { useCallback, useEffect, useMemo, useRef, useState } from "react";
|
|
2
2
|
import { isWeb } from "@multiplatform.one/platform";
|
|
3
3
|
import { useParams, useRouter } from "../router/index.mjs";
|
|
4
|
+
const hasRouter = typeof useRouter === "function" && typeof useParams === "function";
|
|
5
|
+
const emptyParams = {};
|
|
6
|
+
function useOptionalRouter() {
|
|
7
|
+
if (!hasRouter) return {};
|
|
8
|
+
try {
|
|
9
|
+
return {
|
|
10
|
+
router: useRouter(),
|
|
11
|
+
params: useParams()
|
|
12
|
+
};
|
|
13
|
+
} catch {
|
|
14
|
+
return {};
|
|
15
|
+
}
|
|
16
|
+
}
|
|
4
17
|
function useSearchParams() {
|
|
5
|
-
const
|
|
6
|
-
const
|
|
18
|
+
const [localParams, setLocalParams] = useState({});
|
|
19
|
+
const {
|
|
20
|
+
router,
|
|
21
|
+
params
|
|
22
|
+
} = useOptionalRouter();
|
|
23
|
+
const currentParams = params ?? localParams;
|
|
7
24
|
const debounceTimerRef = useRef(void 0);
|
|
8
25
|
const searchParams = useMemo(() => {
|
|
9
|
-
const
|
|
26
|
+
const params2 = {};
|
|
10
27
|
Object.entries(currentParams).forEach(([key, value]) => {
|
|
11
28
|
if (value !== void 0 && value !== null) {
|
|
12
|
-
|
|
29
|
+
params2[key] = value;
|
|
13
30
|
}
|
|
14
31
|
});
|
|
15
|
-
return
|
|
32
|
+
return params2;
|
|
16
33
|
}, [currentParams]);
|
|
17
34
|
const setSearchParams = useCallback((newParams, options = {}) => {
|
|
18
35
|
const {
|
|
@@ -27,7 +44,11 @@ function useSearchParams() {
|
|
|
27
44
|
cleanParams[key] = value;
|
|
28
45
|
}
|
|
29
46
|
});
|
|
30
|
-
router
|
|
47
|
+
if (router && params) {
|
|
48
|
+
router.setParams(cleanParams);
|
|
49
|
+
} else {
|
|
50
|
+
setLocalParams(cleanParams);
|
|
51
|
+
}
|
|
31
52
|
};
|
|
32
53
|
if (debounceMs > 0) {
|
|
33
54
|
if (debounceTimerRef.current) {
|
|
@@ -37,7 +58,7 @@ function useSearchParams() {
|
|
|
37
58
|
} else {
|
|
38
59
|
updateParams();
|
|
39
60
|
}
|
|
40
|
-
}, [router, searchParams]);
|
|
61
|
+
}, [router, params, searchParams]);
|
|
41
62
|
useEffect(() => {
|
|
42
63
|
return () => {
|
|
43
64
|
if (debounceTimerRef.current) {
|
|
@@ -115,7 +136,7 @@ function useUrlState(defaultValues, options = {}) {
|
|
|
115
136
|
return [currentState, setState];
|
|
116
137
|
}
|
|
117
138
|
function useShareableUrl() {
|
|
118
|
-
const params =
|
|
139
|
+
const params = useOptionalRouter().params ?? emptyParams;
|
|
119
140
|
const shareableUrl = useMemo(() => {
|
|
120
141
|
if (!isWeb || typeof window === "undefined") {
|
|
121
142
|
return "";
|
|
@@ -136,7 +157,7 @@ function useShareableUrl() {
|
|
|
136
157
|
return shareableUrl;
|
|
137
158
|
}
|
|
138
159
|
function useTypedSearchParams(schema) {
|
|
139
|
-
const params =
|
|
160
|
+
const params = useOptionalRouter().params ?? emptyParams;
|
|
140
161
|
const typedParams = useMemo(() => {
|
|
141
162
|
const result = {};
|
|
142
163
|
Object.entries(schema).forEach(([key, config]) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useCallback","useEffect","useMemo","useRef","isWeb","useParams","useRouter","
|
|
1
|
+
{"version":3,"names":["useCallback","useEffect","useMemo","useRef","useState","isWeb","useParams","useRouter","hasRouter","emptyParams","useOptionalRouter","router","params","useSearchParams","localParams","setLocalParams","currentParams","debounceTimerRef","searchParams","params2","Object","entries","forEach","key","value","setSearchParams","newParams","options","replace","_replace","debounceMs","updateParams","updatedParams","cleanParams","setParams","current","clearTimeout","setTimeout","useUrlState","defaultValues","serialize","val","Array","isArray","map","String","JSON","stringify","deserialize","result","defaultValue","Number","parse","keys","currentState","setState","newState","updatedState","mergedState","serialized","useShareableUrl","shareableUrl","window","url","URL","location","href","search","v","append","set","toString","useTypedSearchParams","schema","typedParams","config","rawValue","default"],"sources":["../../../src/hooks/useUrlState.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { useCallback, useEffect, useMemo, useRef } from "react";
|
|
1
|
+
import { useCallback, useEffect, useMemo, useRef, useState } from "react";
|
|
2
2
|
import { isWeb } from "@multiplatform.one/platform";
|
|
3
3
|
import { useParams, useRouter } from "../router/index.native.js";
|
|
4
4
|
function _type_of(obj) {
|
|
@@ -6,19 +6,36 @@ function _type_of(obj) {
|
|
|
6
6
|
|
|
7
7
|
return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
|
|
8
8
|
}
|
|
9
|
+
var hasRouter = typeof useRouter === "function" && typeof useParams === "function";
|
|
10
|
+
var emptyParams = {};
|
|
11
|
+
function useOptionalRouter() {
|
|
12
|
+
if (!hasRouter) return {};
|
|
13
|
+
try {
|
|
14
|
+
return {
|
|
15
|
+
router: useRouter(),
|
|
16
|
+
params: useParams()
|
|
17
|
+
};
|
|
18
|
+
} catch (unused) {
|
|
19
|
+
return {};
|
|
20
|
+
}
|
|
21
|
+
}
|
|
9
22
|
function useSearchParams() {
|
|
10
|
-
var
|
|
11
|
-
var
|
|
23
|
+
var [localParams, setLocalParams] = useState({});
|
|
24
|
+
var {
|
|
25
|
+
router,
|
|
26
|
+
params
|
|
27
|
+
} = useOptionalRouter();
|
|
28
|
+
var currentParams = params !== null && params !== void 0 ? params : localParams;
|
|
12
29
|
var debounceTimerRef = useRef(void 0);
|
|
13
30
|
var searchParams = useMemo(function () {
|
|
14
|
-
var
|
|
31
|
+
var params2 = {};
|
|
15
32
|
Object.entries(currentParams).forEach(function (param) {
|
|
16
33
|
var [key, value] = param;
|
|
17
34
|
if (value !== void 0 && value !== null) {
|
|
18
|
-
|
|
35
|
+
params2[key] = value;
|
|
19
36
|
}
|
|
20
37
|
});
|
|
21
|
-
return
|
|
38
|
+
return params2;
|
|
22
39
|
}, [currentParams]);
|
|
23
40
|
var setSearchParams = useCallback(function (newParams) {
|
|
24
41
|
var options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
|
|
@@ -35,7 +52,11 @@ function useSearchParams() {
|
|
|
35
52
|
cleanParams[key] = value;
|
|
36
53
|
}
|
|
37
54
|
});
|
|
38
|
-
router
|
|
55
|
+
if (router && params) {
|
|
56
|
+
router.setParams(cleanParams);
|
|
57
|
+
} else {
|
|
58
|
+
setLocalParams(cleanParams);
|
|
59
|
+
}
|
|
39
60
|
};
|
|
40
61
|
if (debounceMs > 0) {
|
|
41
62
|
if (debounceTimerRef.current) {
|
|
@@ -45,7 +66,7 @@ function useSearchParams() {
|
|
|
45
66
|
} else {
|
|
46
67
|
updateParams();
|
|
47
68
|
}
|
|
48
|
-
}, [router, searchParams]);
|
|
69
|
+
}, [router, params, searchParams]);
|
|
49
70
|
useEffect(function () {
|
|
50
71
|
return function () {
|
|
51
72
|
if (debounceTimerRef.current) {
|
|
@@ -126,7 +147,8 @@ function useUrlState(defaultValues) {
|
|
|
126
147
|
return [currentState, setState];
|
|
127
148
|
}
|
|
128
149
|
function useShareableUrl() {
|
|
129
|
-
var
|
|
150
|
+
var _useOptionalRouter_params;
|
|
151
|
+
var params = (_useOptionalRouter_params = useOptionalRouter().params) !== null && _useOptionalRouter_params !== void 0 ? _useOptionalRouter_params : emptyParams;
|
|
130
152
|
var shareableUrl = useMemo(function () {
|
|
131
153
|
if (!isWeb || typeof window === "undefined") {
|
|
132
154
|
return "";
|
|
@@ -150,7 +172,8 @@ function useShareableUrl() {
|
|
|
150
172
|
return shareableUrl;
|
|
151
173
|
}
|
|
152
174
|
function useTypedSearchParams(schema) {
|
|
153
|
-
var
|
|
175
|
+
var _useOptionalRouter_params;
|
|
176
|
+
var params = (_useOptionalRouter_params = useOptionalRouter().params) !== null && _useOptionalRouter_params !== void 0 ? _useOptionalRouter_params : emptyParams;
|
|
154
177
|
var typedParams = useMemo(function () {
|
|
155
178
|
var result = {};
|
|
156
179
|
Object.entries(schema).forEach(function (param) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useCallback","useEffect","useMemo","useRef","isWeb","useParams","useRouter","_type_of","obj","Symbol","constructor","
|
|
1
|
+
{"version":3,"names":["useCallback","useEffect","useMemo","useRef","useState","isWeb","useParams","useRouter","_type_of","obj","Symbol","constructor","hasRouter","emptyParams","useOptionalRouter","router","params","unused","useSearchParams","localParams","setLocalParams","currentParams","debounceTimerRef","searchParams","params2","Object","entries","forEach","param","key","value","setSearchParams","newParams","options","arguments","length","replace","_replace","debounceMs","updateParams","updateParams2","updatedParams","cleanParams","setParams","current","clearTimeout","setTimeout","useUrlState","defaultValues","serialize","val","Array","isArray","map","String","JSON","stringify","deserialize","result","defaultValue","Number","parse","keys","currentState","setState","newState","updatedState","mergedState","serialized","useShareableUrl","_useOptionalRouter_params","shareableUrl","window","url","URL","location","href","search"],"sources":["../../../src/hooks/useUrlState.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { Suspense, useEffect, useRef } from "react";
|
|
2
|
+
import { RouteTagContext, stackNavigator, useNavState } from "./navigator.mjs";
|
|
3
|
+
import { jsx } from "react/jsx-runtime";
|
|
4
|
+
class DomStackAdapter {
|
|
5
|
+
stack;
|
|
6
|
+
onChanged;
|
|
7
|
+
constructor(rootTag, onChanged) {
|
|
8
|
+
this.stack = rootTag ? [rootTag] : [];
|
|
9
|
+
this.onChanged = onChanged;
|
|
10
|
+
}
|
|
11
|
+
push_by_tag(tag) {
|
|
12
|
+
this.stack.push(tag);
|
|
13
|
+
this.onChanged();
|
|
14
|
+
}
|
|
15
|
+
pop() {
|
|
16
|
+
if (this.stack.length <= 1) return false;
|
|
17
|
+
this.stack.pop();
|
|
18
|
+
this.onChanged();
|
|
19
|
+
return true;
|
|
20
|
+
}
|
|
21
|
+
pop_to_tag(tag) {
|
|
22
|
+
const idx = this.stack.lastIndexOf(tag);
|
|
23
|
+
if (idx === -1 || idx === this.stack.length - 1) return false;
|
|
24
|
+
this.stack = this.stack.slice(0, idx + 1);
|
|
25
|
+
this.onChanged();
|
|
26
|
+
return true;
|
|
27
|
+
}
|
|
28
|
+
replace_with_tags(tags) {
|
|
29
|
+
this.stack = [...tags];
|
|
30
|
+
this.onChanged();
|
|
31
|
+
}
|
|
32
|
+
get_navigation_stack() {
|
|
33
|
+
const snapshot = this.stack;
|
|
34
|
+
return {
|
|
35
|
+
get_n_items: () => snapshot.length,
|
|
36
|
+
get_item: index => index >= 0 && index < snapshot.length ? {
|
|
37
|
+
get_tag: () => snapshot[index] ?? null
|
|
38
|
+
} : null
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
const PAGE_STYLE = {
|
|
43
|
+
position: "absolute",
|
|
44
|
+
inset: 0,
|
|
45
|
+
display: "flex",
|
|
46
|
+
flexDirection: "column",
|
|
47
|
+
overflow: "auto"
|
|
48
|
+
};
|
|
49
|
+
function DomNavigationHost({
|
|
50
|
+
routes,
|
|
51
|
+
initialHref,
|
|
52
|
+
style
|
|
53
|
+
}) {
|
|
54
|
+
const adapterRef = useRef(null);
|
|
55
|
+
adapterRef.current ??= new DomStackAdapter(routes[0]?.tag ?? "", () => stackNavigator.syncFromHost());
|
|
56
|
+
const initialHrefRef = useRef(initialHref);
|
|
57
|
+
useEffect(() => {
|
|
58
|
+
const adapter = adapterRef.current;
|
|
59
|
+
if (!adapter) return;
|
|
60
|
+
stackNavigator.attach(adapter);
|
|
61
|
+
const restore = initialHrefRef.current;
|
|
62
|
+
if (restore) stackNavigator.replace(restore);
|
|
63
|
+
return () => stackNavigator.detach();
|
|
64
|
+
}, []);
|
|
65
|
+
const nav = useNavState();
|
|
66
|
+
return /* @__PURE__ */jsx("div", {
|
|
67
|
+
style: {
|
|
68
|
+
position: "relative",
|
|
69
|
+
flex: 1,
|
|
70
|
+
minHeight: 0,
|
|
71
|
+
height: "100%",
|
|
72
|
+
...style
|
|
73
|
+
},
|
|
74
|
+
children: routes.map(route => {
|
|
75
|
+
const active = nav.tag === route.tag;
|
|
76
|
+
const mounted = stackNavigator.isVisited(route.tag);
|
|
77
|
+
return /* @__PURE__ */jsx("div", {
|
|
78
|
+
"data-seam-page": route.tag,
|
|
79
|
+
"data-seam-active": active ? "true" : "false",
|
|
80
|
+
style: {
|
|
81
|
+
...PAGE_STYLE,
|
|
82
|
+
display: active ? "flex" : "none"
|
|
83
|
+
},
|
|
84
|
+
children: /* @__PURE__ */jsx(RouteTagContext.Provider, {
|
|
85
|
+
value: route.tag,
|
|
86
|
+
children: /* @__PURE__ */jsx(Suspense, {
|
|
87
|
+
fallback: null,
|
|
88
|
+
children: mounted ? route.element : null
|
|
89
|
+
})
|
|
90
|
+
})
|
|
91
|
+
}, route.tag);
|
|
92
|
+
})
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
export { DomNavigationHost, DomStackAdapter };
|
|
96
|
+
//# sourceMappingURL=DomNavigationHost.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Suspense","useEffect","useRef","RouteTagContext","stackNavigator","useNavState","jsx","DomStackAdapter","stack","onChanged","constructor","rootTag","push_by_tag","tag","push","pop","length","pop_to_tag","idx","lastIndexOf","slice","replace_with_tags","tags","get_navigation_stack","snapshot","get_n_items","get_item","index","get_tag","PAGE_STYLE","position","inset","display","flexDirection","overflow","DomNavigationHost","routes","initialHref","style","adapterRef","current","syncFromHost","initialHrefRef","adapter","attach","restore","replace","detach","nav","flex","minHeight","height","children","map","route","active","mounted","isVisited","Provider","value","fallback","element"],"sources":["../../../src/seam/DomNavigationHost.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { Suspense, useEffect, useRef } from "react";
|
|
3
|
+
import { RouteTagContext, stackNavigator, useNavState } from "./navigator.native.js";
|
|
4
|
+
function _class_call_check(instance, Constructor) {
|
|
5
|
+
if (!(instance instanceof Constructor)) {
|
|
6
|
+
throw new TypeError("Cannot call a class as a function");
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
function _defineProperties(target, props) {
|
|
10
|
+
for (var i = 0; i < props.length; i++) {
|
|
11
|
+
var descriptor = props[i];
|
|
12
|
+
descriptor.enumerable = descriptor.enumerable || false;
|
|
13
|
+
descriptor.configurable = true;
|
|
14
|
+
if ("value" in descriptor) descriptor.writable = true;
|
|
15
|
+
Object.defineProperty(target, descriptor.key, descriptor);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
function _create_class(Constructor, protoProps, staticProps) {
|
|
19
|
+
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
|
|
20
|
+
if (staticProps) _defineProperties(Constructor, staticProps);
|
|
21
|
+
return Constructor;
|
|
22
|
+
}
|
|
23
|
+
function _define_property(obj, key, value) {
|
|
24
|
+
if (key in obj) {
|
|
25
|
+
Object.defineProperty(obj, key, {
|
|
26
|
+
value,
|
|
27
|
+
enumerable: true,
|
|
28
|
+
configurable: true,
|
|
29
|
+
writable: true
|
|
30
|
+
});
|
|
31
|
+
} else {
|
|
32
|
+
obj[key] = value;
|
|
33
|
+
}
|
|
34
|
+
return obj;
|
|
35
|
+
}
|
|
36
|
+
var DomStackAdapter = /* @__PURE__ */function () {
|
|
37
|
+
"use strict";
|
|
38
|
+
|
|
39
|
+
function DomStackAdapter2(rootTag, onChanged) {
|
|
40
|
+
_class_call_check(this, DomStackAdapter2);
|
|
41
|
+
_define_property(this, "stack", void 0);
|
|
42
|
+
_define_property(this, "onChanged", void 0);
|
|
43
|
+
this.stack = rootTag ? [rootTag] : [];
|
|
44
|
+
this.onChanged = onChanged;
|
|
45
|
+
}
|
|
46
|
+
_create_class(DomStackAdapter2, [{
|
|
47
|
+
key: "push_by_tag",
|
|
48
|
+
value: function push_by_tag(tag) {
|
|
49
|
+
this.stack.push(tag);
|
|
50
|
+
this.onChanged();
|
|
51
|
+
}
|
|
52
|
+
}, {
|
|
53
|
+
key: "pop",
|
|
54
|
+
value: function pop() {
|
|
55
|
+
if (this.stack.length <= 1) return false;
|
|
56
|
+
this.stack.pop();
|
|
57
|
+
this.onChanged();
|
|
58
|
+
return true;
|
|
59
|
+
}
|
|
60
|
+
}, {
|
|
61
|
+
key: "pop_to_tag",
|
|
62
|
+
value: function pop_to_tag(tag) {
|
|
63
|
+
var idx = this.stack.lastIndexOf(tag);
|
|
64
|
+
if (idx === -1 || idx === this.stack.length - 1) return false;
|
|
65
|
+
this.stack = this.stack.slice(0, idx + 1);
|
|
66
|
+
this.onChanged();
|
|
67
|
+
return true;
|
|
68
|
+
}
|
|
69
|
+
}, {
|
|
70
|
+
key: "replace_with_tags",
|
|
71
|
+
value: function replace_with_tags(tags) {
|
|
72
|
+
this.stack = [...tags];
|
|
73
|
+
this.onChanged();
|
|
74
|
+
}
|
|
75
|
+
}, {
|
|
76
|
+
key: "get_navigation_stack",
|
|
77
|
+
value: function get_navigation_stack() {
|
|
78
|
+
var snapshot = this.stack;
|
|
79
|
+
return {
|
|
80
|
+
get_n_items: function get_n_items() {
|
|
81
|
+
return snapshot.length;
|
|
82
|
+
},
|
|
83
|
+
get_item: function get_item(index) {
|
|
84
|
+
return index >= 0 && index < snapshot.length ? {
|
|
85
|
+
get_tag: function get_tag() {
|
|
86
|
+
var _snapshot_index;
|
|
87
|
+
return (_snapshot_index = snapshot[index]) !== null && _snapshot_index !== void 0 ? _snapshot_index : null;
|
|
88
|
+
}
|
|
89
|
+
} : null;
|
|
90
|
+
}
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
}]);
|
|
94
|
+
return DomStackAdapter2;
|
|
95
|
+
}();
|
|
96
|
+
var PAGE_STYLE = {
|
|
97
|
+
position: "absolute",
|
|
98
|
+
inset: 0,
|
|
99
|
+
display: "flex",
|
|
100
|
+
flexDirection: "column",
|
|
101
|
+
overflow: "auto"
|
|
102
|
+
};
|
|
103
|
+
function DomNavigationHost(param) {
|
|
104
|
+
var {
|
|
105
|
+
routes,
|
|
106
|
+
initialHref,
|
|
107
|
+
style
|
|
108
|
+
} = param;
|
|
109
|
+
var _adapterRef, _current, _ref;
|
|
110
|
+
var _routes_;
|
|
111
|
+
var adapterRef = useRef(null);
|
|
112
|
+
(_current = (_adapterRef = adapterRef).current) !== null && _current !== void 0 ? _current : _adapterRef.current = new DomStackAdapter((_ref = (_routes_ = routes[0]) === null || _routes_ === void 0 ? void 0 : _routes_.tag) !== null && _ref !== void 0 ? _ref : "", function () {
|
|
113
|
+
return stackNavigator.syncFromHost();
|
|
114
|
+
});
|
|
115
|
+
var initialHrefRef = useRef(initialHref);
|
|
116
|
+
useEffect(function () {
|
|
117
|
+
var adapter = adapterRef.current;
|
|
118
|
+
if (!adapter) return;
|
|
119
|
+
stackNavigator.attach(adapter);
|
|
120
|
+
var restore = initialHrefRef.current;
|
|
121
|
+
if (restore) stackNavigator.replace(restore);
|
|
122
|
+
return function () {
|
|
123
|
+
return stackNavigator.detach();
|
|
124
|
+
};
|
|
125
|
+
}, []);
|
|
126
|
+
var nav = useNavState();
|
|
127
|
+
return /* @__PURE__ */_jsx("div", {
|
|
128
|
+
style: {
|
|
129
|
+
position: "relative",
|
|
130
|
+
flex: 1,
|
|
131
|
+
minHeight: 0,
|
|
132
|
+
height: "100%",
|
|
133
|
+
...style
|
|
134
|
+
},
|
|
135
|
+
children: routes.map(function (route) {
|
|
136
|
+
var active = nav.tag === route.tag;
|
|
137
|
+
var mounted = stackNavigator.isVisited(route.tag);
|
|
138
|
+
return /* @__PURE__ */_jsx("div", {
|
|
139
|
+
"data-seam-page": route.tag,
|
|
140
|
+
"data-seam-active": active ? "true" : "false",
|
|
141
|
+
style: {
|
|
142
|
+
...PAGE_STYLE,
|
|
143
|
+
display: active ? "flex" : "none"
|
|
144
|
+
},
|
|
145
|
+
children: /* @__PURE__ */_jsx(RouteTagContext.Provider, {
|
|
146
|
+
value: route.tag,
|
|
147
|
+
children: /* @__PURE__ */_jsx(Suspense, {
|
|
148
|
+
fallback: null,
|
|
149
|
+
children: mounted ? route.element : null
|
|
150
|
+
})
|
|
151
|
+
})
|
|
152
|
+
}, route.tag);
|
|
153
|
+
})
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
export { DomNavigationHost, DomStackAdapter };
|
|
157
|
+
//# sourceMappingURL=DomNavigationHost.native.js.map
|