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.
@@ -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) {
@@ -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 = opts.isAdmin && !isDev;
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 1:
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 2:
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 3:
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 () { return document.location.href; }), url = _a[0], setUrl = _a[1];
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 _PAGE_DATA;
36
- }), data = _b[0], setData = _b[1];
37
- var _c = (0, react_1.useState)(null), pending = _c[0], setPendingUrl = _c[1];
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
- setUrl(pending.url);
69
- setData(data);
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 () { } }, { children: props.children }), void 0));
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "eddev",
3
- "version": "0.1.36",
3
+ "version": "0.1.40-beta-1",
4
4
  "main": "./index.js",
5
5
  "license": "MIT",
6
6
  "bin": {
@@ -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, response, data;
67
+ var parsed, cacheKey, requestUrl, promise;
67
68
  return __generator(this, function (_a) {
68
- switch (_a.label) {
69
- case 0:
70
- parsed = parseURL(url);
71
- cacheKey = getRouteCacheKey(url);
72
- // Cached value?
73
- if (cache[cacheKey])
74
- return [2 /*return*/, Promise.resolve(cache[cacheKey])];
75
- parsed.query["_props"] = "1";
76
- requestUrl = parsed.toString();
77
- return [4 /*yield*/, fetch(requestUrl)];
78
- case 1:
79
- response = _a.sent();
80
- return [4 /*yield*/, response.json()];
81
- case 2:
82
- data = _a.sent();
83
- cache[cacheKey] = data;
84
- return [2 /*return*/, data];
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
  }
@@ -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?: (url: string) => void;
58
+ onNavigated?: (item: RouteItem) => void;
59
59
  };
60
60
  export declare function RouterRoot(props: RouterRootProps): JSX.Element;
61
61
  declare type SwitchProps = {
@@ -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;