eddev 0.1.38 → 0.1.41

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.
@@ -16,8 +16,7 @@ declare type BlocksContext = {
16
16
  current: ContentBlock;
17
17
  };
18
18
  export declare const BlocksContext: import("react").Context<BlocksContext | undefined>;
19
- declare type Props = {
20
- blocks: ContentBlock[];
19
+ export declare type ContentBlocksSettings = {
21
20
  wrapBlock?: (child: ReactElement, ctx: BlocksContext) => ReactElement;
22
21
  spacer?: (ctx: {
23
22
  ancestors: ContentBlock[];
@@ -26,6 +25,9 @@ declare type Props = {
26
25
  next: ContentBlock | null;
27
26
  }) => ReactElement | null;
28
27
  };
28
+ declare type Props = {
29
+ blocks: ContentBlock[];
30
+ } & ContentBlocksSettings;
29
31
  export declare type GenericBlockProps = {
30
32
  innerHTML?: string;
31
33
  innerContent?: string[];
@@ -1,4 +1,5 @@
1
1
  import { ElementType } from "react";
2
+ import { ContentBlocksSettings } from ".";
2
3
  declare type PropTypes<T extends ElementType> = {
3
4
  /** The 'key' of this editable text value */
4
5
  id: string;
@@ -18,6 +19,6 @@ declare type InnerBlocksProps = {
18
19
  templateLock?: any;
19
20
  template?: any;
20
21
  renderAppender?: any;
21
- };
22
+ } & ContentBlocksSettings;
22
23
  export declare function InnerBlocks(props: InnerBlocksProps): JSX.Element;
23
24
  export {};
@@ -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) {
@@ -74,7 +74,7 @@ function InnerBlocks(props) {
74
74
  }
75
75
  else {
76
76
  var blocks = (0, blockAttributes_1.useInnerBlocks)();
77
- return (0, jsx_runtime_1.jsx)(ContentBlocks_1.ContentBlocks, { blocks: blocks }, void 0);
77
+ return (0, jsx_runtime_1.jsx)(ContentBlocks_1.ContentBlocks, { blocks: blocks, spacer: props.spacer, wrapBlock: props.wrapBlock }, void 0);
78
78
  }
79
79
  }
80
80
  exports.InnerBlocks = InnerBlocks;
@@ -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) {
@@ -68,8 +71,11 @@ function BrowserRouter(props) {
68
71
  var view = views_1.default[data.view];
69
72
  var finish = function () {
70
73
  var _a, _b;
71
- setUrl(pending.url);
72
- setData(data);
74
+ setState({
75
+ url: pending.url,
76
+ data: data,
77
+ });
78
+ // setData(data)
73
79
  if (data.appData) {
74
80
  setAppData(data.appData.data);
75
81
  }
@@ -81,16 +87,6 @@ function BrowserRouter(props) {
81
87
  if (!pending.popped) {
82
88
  history.replaceState({ scrollPosition: (_b = document.scrollingElement) === null || _b === void 0 ? void 0 : _b.scrollTop }, "", document.location.href);
83
89
  history.pushState({}, "", pending.url);
84
- // if (document.scrollingElement) {
85
- // console.log("Scroll to top")
86
- // document.scrollingElement.scrollTop = 0
87
- // }
88
- }
89
- else {
90
- // if (document.scrollingElement) {
91
- // console.log("Scroll to", pending.scrollPosition)
92
- // document.scrollingElement.scrollTop = pending.scrollPosition || 0
93
- // }
94
90
  }
95
91
  };
96
92
  if (view && view.preload) {
@@ -106,6 +102,12 @@ function BrowserRouter(props) {
106
102
  cancelled = true;
107
103
  };
108
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]);
109
111
  return ((0, jsx_runtime_1.jsx)(routing_1.RouterRoot, __assign({ url: url, data: data, onNavigateRequest: function (url) {
110
112
  setPendingUrl({ popped: false, url: url });
111
113
  }, onPreload: function (url) {
@@ -113,7 +115,12 @@ function BrowserRouter(props) {
113
115
  (0, remoteProps_1.fetchProps)(url);
114
116
  }
115
117
  }, onNavigated: function () {
116
- console.log("Navigated");
118
+ if (pending && typeof pending.scrollPosition === "number") {
119
+ setScrollPosition({ value: pending.scrollPosition });
120
+ }
121
+ else {
122
+ setScrollPosition({ value: 0 });
123
+ }
117
124
  } }, { children: props.children }), void 0));
118
125
  }
119
126
  exports.BrowserRouter = BrowserRouter;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "eddev",
3
- "version": "0.1.38",
3
+ "version": "0.1.41",
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 = {
@@ -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,7 +293,9 @@ function RouterRoot(props) {
301
293
  ctx.propagateCandidate(item, ctx.item).then(function () {
302
294
  if (!cancelled) {
303
295
  ctx.propagateChange(item, true);
304
- console.log("Really finished");
296
+ if (props.onNavigated) {
297
+ props.onNavigated(item);
298
+ }
305
299
  }
306
300
  });
307
301
  return function () {