eddev 0.1.37 → 0.1.40-beta-2
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/blocks/inlineEditing.js +1 -1
- package/components/BrowserRouter.js +33 -10
- package/package.json +1 -1
- package/routing/remoteProps.js +20 -19
- package/routing/routing.d.ts +1 -1
- package/routing/routing.js +12 -8
package/blocks/inlineEditing.js
CHANGED
|
@@ -40,6 +40,7 @@ function EditableText(_a) {
|
|
|
40
40
|
}
|
|
41
41
|
else {
|
|
42
42
|
var value = (0, blockAttributes_1.useInlineEditableValue)(id)[0];
|
|
43
|
+
var router_1 = (0, __1.useRouter)();
|
|
43
44
|
var otherProps = __assign({}, props);
|
|
44
45
|
delete otherProps.inlineToolbar;
|
|
45
46
|
delete otherProps.disableLineBreaks;
|
|
@@ -54,7 +55,6 @@ function EditableText(_a) {
|
|
|
54
55
|
return null;
|
|
55
56
|
}
|
|
56
57
|
}
|
|
57
|
-
var router_1 = (0, __1.useRouter)();
|
|
58
58
|
return (0, react_1.createElement)(as || "div", __assign({ dangerouslySetInnerHTML: { __html: value }, onClick: function (e) {
|
|
59
59
|
if (e.target && e.target instanceof HTMLAnchorElement) {
|
|
60
60
|
if ((0, remoteProps_1.isSameOrigin)(e.target.href) && router_1) {
|
|
@@ -29,12 +29,15 @@ var updateHeadTags_1 = require("../routing/updateHeadTags");
|
|
|
29
29
|
var hasPopulatedCache = false;
|
|
30
30
|
function BrowserRouter(props) {
|
|
31
31
|
var setAppData = (0, hooks_1.useAppDataStore)(function (s) { return s.setAppData; });
|
|
32
|
-
var _a = (0, react_1.useState)(function () {
|
|
33
|
-
var _b = (0, react_1.useState)(function () {
|
|
32
|
+
var _a = (0, react_1.useState)(function () {
|
|
34
33
|
setAppData(_PAGE_DATA.appData.data);
|
|
35
|
-
return
|
|
36
|
-
|
|
37
|
-
|
|
34
|
+
return {
|
|
35
|
+
url: document.location.href,
|
|
36
|
+
data: _PAGE_DATA,
|
|
37
|
+
};
|
|
38
|
+
}), state = _a[0], setState = _a[1];
|
|
39
|
+
var url = state.url, data = state.data;
|
|
40
|
+
var _b = (0, react_1.useState)(null), pending = _b[0], setPendingUrl = _b[1];
|
|
38
41
|
var setIsLoading = (0, usePageLoad_1.usePageLoad)(function (s) { return s.setIsLoading; });
|
|
39
42
|
(0, react_1.useEffect)(function () {
|
|
40
43
|
if (data.errorStack) {
|
|
@@ -45,9 +48,12 @@ function BrowserRouter(props) {
|
|
|
45
48
|
hasPopulatedCache = true;
|
|
46
49
|
(0, remoteProps_1.setInitialProps)(url, data);
|
|
47
50
|
}
|
|
51
|
+
(0, react_1.useEffect)(function () {
|
|
52
|
+
history.scrollRestoration = "manual";
|
|
53
|
+
}, []);
|
|
48
54
|
(0, react_1.useEffect)(function () {
|
|
49
55
|
var handle = function (e) {
|
|
50
|
-
setPendingUrl({ popped: true, url: document.location.href });
|
|
56
|
+
setPendingUrl({ popped: true, url: document.location.href, scrollPosition: e.state.scrollPosition });
|
|
51
57
|
};
|
|
52
58
|
window.addEventListener("popstate", handle);
|
|
53
59
|
return function () {
|
|
@@ -64,9 +70,12 @@ function BrowserRouter(props) {
|
|
|
64
70
|
(0, remoteProps_1.fetchProps)(pending.url).then(function (data) {
|
|
65
71
|
var view = views_1.default[data.view];
|
|
66
72
|
var finish = function () {
|
|
67
|
-
var _a;
|
|
68
|
-
|
|
69
|
-
|
|
73
|
+
var _a, _b;
|
|
74
|
+
setState({
|
|
75
|
+
url: pending.url,
|
|
76
|
+
data: data,
|
|
77
|
+
});
|
|
78
|
+
// setData(data)
|
|
70
79
|
if (data.appData) {
|
|
71
80
|
setAppData(data.appData.data);
|
|
72
81
|
}
|
|
@@ -76,6 +85,7 @@ function BrowserRouter(props) {
|
|
|
76
85
|
(0, updateHeadTags_1.updateHeadTags)(data.meta.head);
|
|
77
86
|
setIsLoading(false);
|
|
78
87
|
if (!pending.popped) {
|
|
88
|
+
history.replaceState({ scrollPosition: (_b = document.scrollingElement) === null || _b === void 0 ? void 0 : _b.scrollTop }, "", document.location.href);
|
|
79
89
|
history.pushState({}, "", pending.url);
|
|
80
90
|
}
|
|
81
91
|
};
|
|
@@ -92,12 +102,25 @@ function BrowserRouter(props) {
|
|
|
92
102
|
cancelled = true;
|
|
93
103
|
};
|
|
94
104
|
}, [pending]);
|
|
105
|
+
var _c = (0, react_1.useState)({ value: null }), scrollPosition = _c[0], setScrollPosition = _c[1];
|
|
106
|
+
(0, react_1.useEffect)(function () {
|
|
107
|
+
if (document.scrollingElement && typeof scrollPosition.value === "number") {
|
|
108
|
+
document.scrollingElement.scrollTop = scrollPosition.value;
|
|
109
|
+
}
|
|
110
|
+
}, [scrollPosition]);
|
|
95
111
|
return ((0, jsx_runtime_1.jsx)(routing_1.RouterRoot, __assign({ url: url, data: data, onNavigateRequest: function (url) {
|
|
96
112
|
setPendingUrl({ popped: false, url: url });
|
|
97
113
|
}, onPreload: function (url) {
|
|
98
114
|
if ((0, remoteProps_1.isSameOrigin)(url)) {
|
|
99
115
|
(0, remoteProps_1.fetchProps)(url);
|
|
100
116
|
}
|
|
101
|
-
}, onNavigated: function () {
|
|
117
|
+
}, onNavigated: function () {
|
|
118
|
+
if (pending && typeof pending.scrollPosition === "number") {
|
|
119
|
+
setScrollPosition({ value: pending.scrollPosition });
|
|
120
|
+
}
|
|
121
|
+
else {
|
|
122
|
+
setScrollPosition({ value: 0 });
|
|
123
|
+
}
|
|
124
|
+
} }, { children: props.children }), void 0));
|
|
102
125
|
}
|
|
103
126
|
exports.BrowserRouter = BrowserRouter;
|
package/package.json
CHANGED
package/routing/remoteProps.js
CHANGED
|
@@ -42,6 +42,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
42
42
|
exports.hasCachedProps = exports.fetchProps = exports.isSameOrigin = exports.setInitialProps = exports.parseURL = void 0;
|
|
43
43
|
var url_parse_1 = __importDefault(require("url-parse"));
|
|
44
44
|
var qs_1 = __importDefault(require("qs"));
|
|
45
|
+
var pending = {};
|
|
45
46
|
var cache = {};
|
|
46
47
|
function parseURL(url) {
|
|
47
48
|
return (0, url_parse_1.default)(url, qs_1.default.parse);
|
|
@@ -63,26 +64,26 @@ function isSameOrigin(url) {
|
|
|
63
64
|
exports.isSameOrigin = isSameOrigin;
|
|
64
65
|
function fetchProps(url) {
|
|
65
66
|
return __awaiter(this, void 0, void 0, function () {
|
|
66
|
-
var parsed, cacheKey, requestUrl,
|
|
67
|
+
var parsed, cacheKey, requestUrl, promise;
|
|
67
68
|
return __generator(this, function (_a) {
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
69
|
+
parsed = parseURL(url);
|
|
70
|
+
cacheKey = getRouteCacheKey(url);
|
|
71
|
+
// Cached value?
|
|
72
|
+
if (cacheKey in cache)
|
|
73
|
+
return [2 /*return*/, Promise.resolve(cache[cacheKey])];
|
|
74
|
+
if (cacheKey in pending)
|
|
75
|
+
return [2 /*return*/, pending[cacheKey]];
|
|
76
|
+
parsed.query["_props"] = "1";
|
|
77
|
+
requestUrl = parsed.toString();
|
|
78
|
+
promise = fetch(requestUrl)
|
|
79
|
+
.then(function (response) { return response.json(); })
|
|
80
|
+
.then(function (data) {
|
|
81
|
+
delete pending[cacheKey];
|
|
82
|
+
cache[cacheKey] = data;
|
|
83
|
+
return data;
|
|
84
|
+
});
|
|
85
|
+
pending[cacheKey] = promise;
|
|
86
|
+
return [2 /*return*/, promise];
|
|
86
87
|
});
|
|
87
88
|
});
|
|
88
89
|
}
|
package/routing/routing.d.ts
CHANGED
|
@@ -55,7 +55,7 @@ declare type RouterRootProps = {
|
|
|
55
55
|
children: ReactNode;
|
|
56
56
|
onNavigateRequest?: (url: string) => void;
|
|
57
57
|
onPreload?: (url: string) => void;
|
|
58
|
-
onNavigated?: (
|
|
58
|
+
onNavigated?: (item: RouteItem) => void;
|
|
59
59
|
};
|
|
60
60
|
export declare function RouterRoot(props: RouterRootProps): JSX.Element;
|
|
61
61
|
declare type SwitchProps = {
|
package/routing/routing.js
CHANGED
|
@@ -213,15 +213,7 @@ function useForkedRouter(conf, opts) {
|
|
|
213
213
|
var ctx = (0, react_1.useMemo)(function () {
|
|
214
214
|
return parent.fork(conf, opts);
|
|
215
215
|
}, [parent]);
|
|
216
|
-
// useEffect(() => {
|
|
217
|
-
// if (onChange) {
|
|
218
|
-
// return ctx.subscribe(onChange);
|
|
219
|
-
// }
|
|
220
|
-
// }, [ctx, onChange]);
|
|
221
216
|
Object.assign(ctx.config, conf);
|
|
222
|
-
// ctx.config.match = conf.match;
|
|
223
|
-
// ctx.config.beforeLeave = conf.beforeLeave;
|
|
224
|
-
// ctx.config.beforeLeave = conf.beforeLeave;
|
|
225
217
|
(0, react_1.useEffect)(function () {
|
|
226
218
|
return function () { return ctx.dispose(); };
|
|
227
219
|
}, [ctx]);
|
|
@@ -301,6 +293,9 @@ function RouterRoot(props) {
|
|
|
301
293
|
ctx.propagateCandidate(item, ctx.item).then(function () {
|
|
302
294
|
if (!cancelled) {
|
|
303
295
|
ctx.propagateChange(item, true);
|
|
296
|
+
if (props.onNavigated) {
|
|
297
|
+
props.onNavigated(item);
|
|
298
|
+
}
|
|
304
299
|
}
|
|
305
300
|
});
|
|
306
301
|
return function () {
|
|
@@ -308,6 +303,15 @@ function RouterRoot(props) {
|
|
|
308
303
|
};
|
|
309
304
|
}
|
|
310
305
|
}, [props.url, props.data]);
|
|
306
|
+
// useEffect(() => {
|
|
307
|
+
// return ctx.subscribe((route, status) => {
|
|
308
|
+
// if (status === "active") {
|
|
309
|
+
// if (props.onNavigated) {
|
|
310
|
+
// props.onNavigated(route.pathname)
|
|
311
|
+
// }
|
|
312
|
+
// }
|
|
313
|
+
// })
|
|
314
|
+
// }, [props.onNavigated])
|
|
311
315
|
return (0, jsx_runtime_1.jsx)(RouterContext.Provider, __assign({ value: ctx }, { children: props.children }), void 0);
|
|
312
316
|
}
|
|
313
317
|
exports.RouterRoot = RouterRoot;
|