@twreporter/react-article-components 1.4.12-rc.4 → 1.4.12-rc.7

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/CHANGELOG.md CHANGED
@@ -3,6 +3,34 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [1.4.12-rc.7](https://github.com/twreporter/twreporter-npm-packages/compare/@twreporter/react-article-components@1.4.12-rc.6...@twreporter/react-article-components@1.4.12-rc.7) (2022-06-06)
7
+
8
+ **Note:** Version bump only for package @twreporter/react-article-components
9
+
10
+
11
+
12
+
13
+
14
+ ## [1.4.12-rc.6](https://github.com/twreporter/twreporter-npm-packages/compare/@twreporter/react-article-components@1.4.12-rc.5...@twreporter/react-article-components@1.4.12-rc.6) (2022-05-30)
15
+
16
+
17
+ ### Bug Fixes
18
+
19
+ * clean members to null ([116fd6a](https://github.com/twreporter/twreporter-npm-packages/commit/116fd6a51a00daec61a6d80c4ddb4121e33b5ffd))
20
+ * fix mobile aside scroll part ([575aebd](https://github.com/twreporter/twreporter-npm-packages/commit/575aebd0e995d92907dc0ea4caf47cb3befd5177))
21
+
22
+
23
+
24
+
25
+
26
+ ## [1.4.12-rc.5](https://github.com/twreporter/twreporter-npm-packages/compare/@twreporter/react-article-components@1.4.12-rc.4...@twreporter/react-article-components@1.4.12-rc.5) (2022-05-27)
27
+
28
+ **Note:** Version bump only for package @twreporter/react-article-components
29
+
30
+
31
+
32
+
33
+
6
34
  ## [1.4.12-rc.4](https://github.com/twreporter/twreporter-npm-packages/compare/@twreporter/react-article-components@1.4.12-rc.3...@twreporter/react-article-components@1.4.12-rc.4) (2022-05-27)
7
35
 
8
36
  **Note:** Version bump only for package @twreporter/react-article-components
@@ -51,8 +51,6 @@ var _map = _interopRequireDefault(require("lodash/map"));
51
51
 
52
52
  var _merge = _interopRequireDefault(require("lodash/merge"));
53
53
 
54
- var _throttle = _interopRequireDefault(require("lodash/throttle"));
55
-
56
54
  var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15, _templateObject16, _templateObject17, _templateObject18, _templateObject19, _templateObject20, _templateObject21;
57
55
 
58
56
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
@@ -88,8 +86,7 @@ function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(
88
86
  var _ = {
89
87
  get: _get["default"],
90
88
  map: _map["default"],
91
- merge: _merge["default"],
92
- throttle: _throttle["default"]
89
+ merge: _merge["default"]
93
90
  };
94
91
  var fontFamilyCss = /*#__PURE__*/(0, _styledComponents.css)(["font-family:", ";"], _typography["default"].font.family["default"]);
95
92
  var shiftLeftCss = /*#__PURE__*/(0, _styledComponents.css)(["position:relative;width:calc(100% + 20px);left:-10px;"]);
@@ -278,24 +275,27 @@ var Article = /*#__PURE__*/function (_PureComponent) {
278
275
  });
279
276
 
280
277
  _this.mobileAsideRef = /*#__PURE__*/_react["default"].createRef();
278
+ _this.lastKnownScrollPosition = 0;
279
+ _this.ticking = false;
281
280
  _this.scrollPosition = {
282
281
  y: 0
283
282
  };
283
+ _this.onScroll = _this._onScroll.bind(_assertThisInitialized(_this));
284
284
  _this.toggleMobileAside = _this._toggleMobileAside.bind(_assertThisInitialized(_this));
285
- _this.onScroll = _.throttle(_this.toggleMobileAside, 300).bind(_assertThisInitialized(_this));
286
285
  return _this;
287
286
  }
288
287
 
289
288
  _createClass(Article, [{
290
289
  key: "componentDidMount",
291
290
  value: function componentDidMount() {
292
- // detect sroll position
293
291
  window.addEventListener('scroll', this.onScroll);
294
292
  }
295
293
  }, {
296
294
  key: "componentWillUnmount",
297
295
  value: function componentWillUnmount() {
298
296
  window.removeEventListener('scroll', this.onScroll);
297
+ this.lastKnownScrollPosition = null;
298
+ this.ticking = null;
299
299
  this.scrollPosition = {
300
300
  y: 0
301
301
  };
@@ -321,6 +321,27 @@ var Article = /*#__PURE__*/function (_PureComponent) {
321
321
  }
322
322
  }
323
323
  }
324
+ /**
325
+ * Wrap toggleMobileAside() with requestAnimationFrame() to avoid triggering browser reflow due to reading window.scrollY.
326
+ * ref: https://developer.mozilla.org/en-US/docs/web/api/document/scroll_event#Example
327
+ */
328
+
329
+ }, {
330
+ key: "_onScroll",
331
+ value: function _onScroll() {
332
+ var _this2 = this;
333
+
334
+ this.lastKnownScrollPosition = window.scrollY;
335
+
336
+ if (!this.ticking) {
337
+ window.requestAnimationFrame(function () {
338
+ _this2.toggleMobileAside(_this2.lastKnownScrollPosition);
339
+
340
+ _this2.ticking = false;
341
+ });
342
+ this.ticking = true;
343
+ }
344
+ }
324
345
  /**
325
346
  * If users scroll up, and the scrolling distance is more than a certain distance as well, show mobile aside.
326
347
  * Otherwise, if users scroll down, hide the mobile aside.
@@ -328,10 +349,9 @@ var Article = /*#__PURE__*/function (_PureComponent) {
328
349
 
329
350
  }, {
330
351
  key: "_toggleMobileAside",
331
- value: function _toggleMobileAside() {
352
+ value: function _toggleMobileAside(currentTopY) {
332
353
  if (this.mobileAsideRef) {
333
- var mAside = this.mobileAsideRef;
334
- var currentTopY = window.scrollY; // Calculate scrolling distance to determine whether to display aside
354
+ var mAside = this.mobileAsideRef; // Calculate scrolling distance to determine whether to display aside
335
355
 
336
356
  var lastY = this.scrollPosition.y;
337
357
  var distance = currentTopY - lastY;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@twreporter/react-article-components",
3
- "version": "1.4.12-rc.4",
3
+ "version": "1.4.12-rc.7",
4
4
  "description": "The Reporter react article components, which are used in article page",
5
5
  "main": "lib/components/article-page.js",
6
6
  "repository": "https://github.com/twreporter/twreporter-npm-packages.git",
@@ -24,10 +24,10 @@
24
24
  "webpack-dev-server": "^3.7.2"
25
25
  },
26
26
  "dependencies": {
27
- "@twreporter/core": "^1.4.0",
28
- "@twreporter/react-components": "^8.9.0-rc.4",
27
+ "@twreporter/core": "^1.4.1-rc.0",
28
+ "@twreporter/react-components": "^8.9.0-rc.6",
29
29
  "@twreporter/redux": "^7.2.1",
30
- "@twreporter/universal-header": "^2.2.9-rc.4",
30
+ "@twreporter/universal-header": "^2.2.9-rc.7",
31
31
  "howler": "^2.2.3",
32
32
  "lodash": "^4.17.11",
33
33
  "memoize-one": "^5.0.5",
@@ -39,5 +39,5 @@
39
39
  "files": [
40
40
  "lib"
41
41
  ],
42
- "gitHead": "6cb23fc834f432e3b1a45decaf5ff5a7b7f77400"
42
+ "gitHead": "74facca540e4dd26eeb29f3a61e0032cdd52c8a8"
43
43
  }