eddev 0.1.36 → 0.1.40-beta-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/blocks/inlineEditing.js +1 -1
- package/build/clean.d.ts +1 -0
- package/build/clean.js +60 -0
- package/build/get-webpack-config.js +1 -1
- package/build/workers/webpack-worker-script.js +5 -1
- package/cli/build.dev.js +0 -1
- package/cli/build.prod.js +6 -2
- package/components/BrowserRouter.js +44 -10
- package/package.json +1 -1
- package/routing/remoteProps.js +20 -19
- package/routing/routing.d.ts +1 -1
- package/routing/routing.js +12 -0
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) {
|
package/build/clean.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function cleanOutput(): Promise<void>;
|
package/build/clean.js
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
+
function step(op) {
|
|
16
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
+
while (_) try {
|
|
18
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
+
switch (op[0]) {
|
|
21
|
+
case 0: case 1: t = op; break;
|
|
22
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
+
default:
|
|
26
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
+
if (t[2]) _.ops.pop();
|
|
31
|
+
_.trys.pop(); continue;
|
|
32
|
+
}
|
|
33
|
+
op = body.call(thisArg, _);
|
|
34
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
39
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
40
|
+
};
|
|
41
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
42
|
+
exports.cleanOutput = void 0;
|
|
43
|
+
var rimraf_1 = __importDefault(require("rimraf"));
|
|
44
|
+
var path_1 = require("path");
|
|
45
|
+
function cleanOutput() {
|
|
46
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
47
|
+
return __generator(this, function (_a) {
|
|
48
|
+
switch (_a.label) {
|
|
49
|
+
case 0: return [4 /*yield*/, new Promise(function (resolve) { return (0, rimraf_1.default)((0, path_1.join)(process.cwd(), "dist/frontend"), resolve); })];
|
|
50
|
+
case 1:
|
|
51
|
+
_a.sent();
|
|
52
|
+
return [4 /*yield*/, new Promise(function (resolve) { return (0, rimraf_1.default)((0, path_1.join)(process.cwd(), "dist/admin"), resolve); })];
|
|
53
|
+
case 2:
|
|
54
|
+
_a.sent();
|
|
55
|
+
return [2 /*return*/];
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
exports.cleanOutput = cleanOutput;
|
|
@@ -302,7 +302,7 @@ function getWebpackConfig(opts) {
|
|
|
302
302
|
var componentName = (0, change_case_1.pascalCase)(name);
|
|
303
303
|
return { relative: relative, name: name, module: module, componentName: componentName };
|
|
304
304
|
});
|
|
305
|
-
var useLoadableBlocks =
|
|
305
|
+
var useLoadableBlocks = false;
|
|
306
306
|
if (useLoadableBlocks) {
|
|
307
307
|
writeVirtualModule(ALIAS["@manifest/blocks"], "\n import coreBlocks from './blocks/_core.tsx'\n ".concat(!isServerless && "import loadable from '".concat(require.resolve("@loadable/component"), "';"), "\n\n export default {\n ...coreBlocks,\n ").concat(files
|
|
308
308
|
.map(function (_a) {
|
|
@@ -53,6 +53,7 @@ var webpack_1 = __importDefault(require("webpack"));
|
|
|
53
53
|
var webpack_dev_server_1 = __importDefault(require("webpack-dev-server"));
|
|
54
54
|
var worker_threads_1 = require("worker_threads");
|
|
55
55
|
var get_webpack_config_1 = __importDefault(require("../get-webpack-config"));
|
|
56
|
+
var clean_1 = require("../clean");
|
|
56
57
|
var sendSignal = function (sig) {
|
|
57
58
|
if (worker_threads_1.parentPort) {
|
|
58
59
|
worker_threads_1.parentPort.postMessage(sig);
|
|
@@ -82,9 +83,12 @@ function beginWork(opts) {
|
|
|
82
83
|
sendSignal({
|
|
83
84
|
code: "compiling",
|
|
84
85
|
});
|
|
86
|
+
return [4 /*yield*/, (0, clean_1.cleanOutput)()];
|
|
87
|
+
case 1:
|
|
88
|
+
_b.sent();
|
|
85
89
|
_a = webpack_1.default;
|
|
86
90
|
return [4 /*yield*/, (0, get_webpack_config_1.default)(opts)];
|
|
87
|
-
case
|
|
91
|
+
case 2:
|
|
88
92
|
compiler = _a.apply(void 0, [_b.sent()]);
|
|
89
93
|
if (opts.hotPort) {
|
|
90
94
|
server = new webpack_dev_server_1.default(compiler, {
|
package/cli/build.dev.js
CHANGED
|
@@ -60,7 +60,6 @@ function devCommand(opts) {
|
|
|
60
60
|
enableFrontend = !opts.mode || opts.mode === "frontend";
|
|
61
61
|
enableAdmin = !opts.mode || opts.mode === "admin";
|
|
62
62
|
enableCodegen = !opts.mode || opts.mode === "codegen";
|
|
63
|
-
console.log(opts);
|
|
64
63
|
frontendObservable = enableFrontend
|
|
65
64
|
? (0, create_webpack_worker_1.createWebpackWorker)({
|
|
66
65
|
title: "Frontend Bundle",
|
package/cli/build.prod.js
CHANGED
|
@@ -44,6 +44,7 @@ var get_webpack_config_1 = __importDefault(require("../build/get-webpack-config"
|
|
|
44
44
|
var webpack_1 = require("webpack");
|
|
45
45
|
var promptIfRepoNameIncorrect_1 = require("../utils/promptIfRepoNameIncorrect");
|
|
46
46
|
var path_1 = __importDefault(require("path"));
|
|
47
|
+
var clean_1 = require("../build/clean");
|
|
47
48
|
function prodCommand(opts) {
|
|
48
49
|
return __awaiter(this, void 0, void 0, function () {
|
|
49
50
|
var contentBase, themeName, compiler, _a, _b;
|
|
@@ -55,6 +56,9 @@ function prodCommand(opts) {
|
|
|
55
56
|
case 1:
|
|
56
57
|
_c.sent();
|
|
57
58
|
themeName = path_1.default.basename(process.cwd());
|
|
59
|
+
return [4 /*yield*/, (0, clean_1.cleanOutput)()];
|
|
60
|
+
case 2:
|
|
61
|
+
_c.sent();
|
|
58
62
|
_a = webpack_1.webpack;
|
|
59
63
|
return [4 /*yield*/, (0, get_webpack_config_1.default)({
|
|
60
64
|
title: "Frontend Client",
|
|
@@ -65,7 +69,7 @@ function prodCommand(opts) {
|
|
|
65
69
|
themeName: themeName,
|
|
66
70
|
isAdmin: false,
|
|
67
71
|
})];
|
|
68
|
-
case
|
|
72
|
+
case 3:
|
|
69
73
|
_b = [
|
|
70
74
|
_c.sent()
|
|
71
75
|
];
|
|
@@ -78,7 +82,7 @@ function prodCommand(opts) {
|
|
|
78
82
|
themeName: themeName,
|
|
79
83
|
isAdmin: true,
|
|
80
84
|
})];
|
|
81
|
-
case
|
|
85
|
+
case 4:
|
|
82
86
|
compiler = _a.apply(void 0, [_b.concat([
|
|
83
87
|
_c.sent()
|
|
84
88
|
])]);
|
|
@@ -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,7 +85,18 @@ 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);
|
|
90
|
+
// if (document.scrollingElement) {
|
|
91
|
+
// console.log("Scroll to top")
|
|
92
|
+
// document.scrollingElement.scrollTop = 0
|
|
93
|
+
// }
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
// if (document.scrollingElement) {
|
|
97
|
+
// console.log("Scroll to", pending.scrollPosition)
|
|
98
|
+
// document.scrollingElement.scrollTop = pending.scrollPosition || 0
|
|
99
|
+
// }
|
|
80
100
|
}
|
|
81
101
|
};
|
|
82
102
|
if (view && view.preload) {
|
|
@@ -92,12 +112,26 @@ function BrowserRouter(props) {
|
|
|
92
112
|
cancelled = true;
|
|
93
113
|
};
|
|
94
114
|
}, [pending]);
|
|
115
|
+
console.log("Passing", url, data);
|
|
116
|
+
var _c = (0, react_1.useState)(null), scrollPosition = _c[0], setScrollPosition = _c[1];
|
|
117
|
+
(0, react_1.useEffect)(function () {
|
|
118
|
+
if (document.scrollingElement && typeof scrollPosition === "number") {
|
|
119
|
+
document.scrollingElement.scrollTop = scrollPosition;
|
|
120
|
+
}
|
|
121
|
+
}, [scrollPosition]);
|
|
95
122
|
return ((0, jsx_runtime_1.jsx)(routing_1.RouterRoot, __assign({ url: url, data: data, onNavigateRequest: function (url) {
|
|
96
123
|
setPendingUrl({ popped: false, url: url });
|
|
97
124
|
}, onPreload: function (url) {
|
|
98
125
|
if ((0, remoteProps_1.isSameOrigin)(url)) {
|
|
99
126
|
(0, remoteProps_1.fetchProps)(url);
|
|
100
127
|
}
|
|
101
|
-
}, onNavigated: function () {
|
|
128
|
+
}, onNavigated: function () {
|
|
129
|
+
if (pending && typeof pending.scrollPosition === "number") {
|
|
130
|
+
setScrollPosition(pending.scrollPosition);
|
|
131
|
+
}
|
|
132
|
+
else {
|
|
133
|
+
setScrollPosition(0);
|
|
134
|
+
}
|
|
135
|
+
} }, { children: props.children }), void 0));
|
|
102
136
|
}
|
|
103
137
|
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
|
@@ -301,6 +301,9 @@ function RouterRoot(props) {
|
|
|
301
301
|
ctx.propagateCandidate(item, ctx.item).then(function () {
|
|
302
302
|
if (!cancelled) {
|
|
303
303
|
ctx.propagateChange(item, true);
|
|
304
|
+
if (props.onNavigated) {
|
|
305
|
+
props.onNavigated(item);
|
|
306
|
+
}
|
|
304
307
|
}
|
|
305
308
|
});
|
|
306
309
|
return function () {
|
|
@@ -308,6 +311,15 @@ function RouterRoot(props) {
|
|
|
308
311
|
};
|
|
309
312
|
}
|
|
310
313
|
}, [props.url, props.data]);
|
|
314
|
+
// useEffect(() => {
|
|
315
|
+
// return ctx.subscribe((route, status) => {
|
|
316
|
+
// if (status === "active") {
|
|
317
|
+
// if (props.onNavigated) {
|
|
318
|
+
// props.onNavigated(route.pathname)
|
|
319
|
+
// }
|
|
320
|
+
// }
|
|
321
|
+
// })
|
|
322
|
+
// }, [props.onNavigated])
|
|
311
323
|
return (0, jsx_runtime_1.jsx)(RouterContext.Provider, __assign({ value: ctx }, { children: props.children }), void 0);
|
|
312
324
|
}
|
|
313
325
|
exports.RouterRoot = RouterRoot;
|