@twreporter/react-article-components 1.5.0-rc.2 → 1.5.0-rc.5

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,37 @@
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.5.0-rc.5](https://github.com/twreporter/twreporter-npm-packages/compare/@twreporter/react-article-components@1.5.0-rc.4...@twreporter/react-article-components@1.5.0-rc.5) (2022-07-04)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * fix tool bar defect ([afc4a56](https://github.com/twreporter/twreporter-npm-packages/commit/afc4a568c27c0614ff2bec460cb07813fbfdfe5a))
12
+
13
+
14
+
15
+
16
+
17
+ # [1.5.0-rc.4](https://github.com/twreporter/twreporter-npm-packages/compare/@twreporter/react-article-components@1.5.0-rc.3...@twreporter/react-article-components@1.5.0-rc.4) (2022-07-01)
18
+
19
+
20
+ ### Bug Fixes
21
+
22
+ * fix tool bar defect ([e66c4d7](https://github.com/twreporter/twreporter-npm-packages/commit/e66c4d7eeb87ca61f16f1dede8a191aaf2c8ed80))
23
+ * set snackbarText initial value as empty string ([e750c16](https://github.com/twreporter/twreporter-npm-packages/commit/e750c1636f26c837c6d96f8a7296e8e1c0ce7964))
24
+
25
+
26
+
27
+
28
+
29
+ # [1.5.0-rc.3](https://github.com/twreporter/twreporter-npm-packages/compare/@twreporter/react-article-components@1.5.0-rc.2...@twreporter/react-article-components@1.5.0-rc.3) (2022-06-30)
30
+
31
+ **Note:** Version bump only for package @twreporter/react-article-components
32
+
33
+
34
+
35
+
36
+
6
37
  # [1.5.0-rc.2](https://github.com/twreporter/twreporter-npm-packages/compare/@twreporter/react-article-components@1.5.0-rc.1...@twreporter/react-article-components@1.5.0-rc.2) (2022-06-16)
7
38
 
8
39
 
@@ -15,6 +15,8 @@ var _react = _interopRequireWildcard(require("react"));
15
15
 
16
16
  var _styledComponents = _interopRequireWildcard(require("styled-components"));
17
17
 
18
+ var _reactScroll = require("react-scroll");
19
+
18
20
  var _body = _interopRequireDefault(require("./body"));
19
21
 
20
22
  var _desktopAside = _interopRequireDefault(require("./aside/desktop-aside"));
@@ -382,12 +384,14 @@ var Article = /*#__PURE__*/function (_PureComponent) {
382
384
  key: _.get(post, 'slug', 'article-page-body-key'),
383
385
  brief: _.get(post, 'brief.api_data'),
384
386
  content: _.get(post, 'content.api_data')
385
- })), metadataAndToolsJSX), /*#__PURE__*/_react["default"].createElement(_donationBox["default"], null), /*#__PURE__*/_react["default"].createElement(_license["default"], {
387
+ })), metadataAndToolsJSX), /*#__PURE__*/_react["default"].createElement(_donationBox["default"], null), /*#__PURE__*/_react["default"].createElement(_reactScroll.Element, {
388
+ name: _anchor.relatedPostAnchor
389
+ }, /*#__PURE__*/_react["default"].createElement(_license["default"], {
386
390
  license: post.copyright,
387
391
  publishedDate: post.published_date,
388
392
  id: _anchor.relatedPostAnchor // current scroll to releated post anchor
389
393
 
390
- }), /*#__PURE__*/_react["default"].createElement(StyledSeparationCurve, null), /*#__PURE__*/_react["default"].createElement(RelatedBlock, null, /*#__PURE__*/_react["default"].createElement(_related["default"], {
394
+ })), /*#__PURE__*/_react["default"].createElement(StyledSeparationCurve, null), /*#__PURE__*/_react["default"].createElement(RelatedBlock, null, /*#__PURE__*/_react["default"].createElement(_related["default"], {
391
395
  id: post.id,
392
396
  data: relatedPosts,
393
397
  hasMore: hasMoreRelateds,
@@ -13,6 +13,8 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
13
13
 
14
14
  var _styledComponents = _interopRequireWildcard(require("styled-components"));
15
15
 
16
+ var _reactScroll = require("react-scroll");
17
+
16
18
  var _dynamicComponentsContext = _interopRequireDefault(require("../../contexts/dynamic-components-context"));
17
19
 
18
20
  var _aside = _interopRequireDefault(require("../../constants/prop-types/aside"));
@@ -23,6 +25,8 @@ var _anchor = require("../../constants/anchor");
23
25
 
24
26
  var _theme2 = require("./utils/theme");
25
27
 
28
+ var _hook = require("@twreporter/react-components/lib/hook");
29
+
26
30
  var _bookmarkWidget = _interopRequireDefault(require("@twreporter/react-components/lib/bookmark-widget"));
27
31
 
28
32
  var _icon = require("@twreporter/react-components/lib/icon");
@@ -77,14 +81,14 @@ var ShareContainer = /*#__PURE__*/_styledComponents["default"].div.withConfig({
77
81
  var OptionContainer = /*#__PURE__*/_styledComponents["default"].div.withConfig({
78
82
  displayName: "mobile-tool-bar__OptionContainer",
79
83
  componentId: "do65sv-2"
80
- })(["opacity:", ";transition:opacity 100ms;position:absolute;top:-55px;left:50%;transform:translateX(-50%);display:flex;"], function (props) {
84
+ })(["z-index:6;opacity:", ";transition:opacity 100ms;position:absolute;top:-55px;left:50%;transform:translateX(-50%);display:flex;"], function (props) {
81
85
  return props.isShow ? '1' : '0';
82
86
  });
83
87
 
84
88
  var SnackBarContainer = /*#__PURE__*/_styledComponents["default"].div.withConfig({
85
89
  displayName: "mobile-tool-bar__SnackBarContainer",
86
90
  componentId: "do65sv-3"
87
- })(["opacity:", ";position:absolute;left:50%;transform:translateX(-50%);transition:opacity 100ms;"], function (props) {
91
+ })(["z-index:5;opacity:", ";position:absolute;left:50%;transform:translateX(-50%);transition:opacity 100ms;"], function (props) {
88
92
  return props.showSnackBar ? '1' : '0';
89
93
  });
90
94
 
@@ -105,23 +109,6 @@ var ToolBarContainer = /*#__PURE__*/_styledComponents["default"].div.withConfig(
105
109
  return props.hideText ? '46px' : '64px';
106
110
  });
107
111
 
108
- var useOutsideClick = function useOutsideClick(callback) {
109
- var ref = (0, _react.useRef)();
110
- (0, _react.useEffect)(function () {
111
- var handleClick = function handleClick(event) {
112
- if (ref.current && !ref.current.contains(event.target)) {
113
- callback(event);
114
- }
115
- };
116
-
117
- document.addEventListener('click', handleClick);
118
- return function () {
119
- document.removeEventListener('click', handleClick);
120
- };
121
- }, [ref]);
122
- return ref;
123
- };
124
-
125
112
  var FbShare = function FbShare(_ref) {
126
113
  var appID = _ref.appID;
127
114
  var themeContext = (0, _react.useContext)(_styledComponents.ThemeContext);
@@ -288,7 +275,7 @@ var ShareBy = function ShareBy(_ref4) {
288
275
  return setShowState(false);
289
276
  };
290
277
 
291
- var ref = useOutsideClick(onClickOutside);
278
+ var ref = (0, _hook.useOutsideClick)(onClickOutside);
292
279
  return /*#__PURE__*/_react["default"].createElement(ButtonContainer, {
293
280
  ref: ref,
294
281
  onClick: onButtonClick
@@ -341,6 +328,17 @@ FontLevel.propTypes = {
341
328
 
342
329
  var BookmarkBlock = function BookmarkBlock(_ref6) {
343
330
  var articleMeta = _ref6.articleMeta;
331
+
332
+ var _useState5 = (0, _react.useState)(false),
333
+ _useState6 = _slicedToArray(_useState5, 2),
334
+ showSnackBar = _useState6[0],
335
+ setSnackBar = _useState6[1];
336
+
337
+ var _useState7 = (0, _react.useState)(''),
338
+ _useState8 = _slicedToArray(_useState7, 2),
339
+ snackbarText = _useState8[0],
340
+ setSnackbarText = _useState8[1];
341
+
344
342
  var hideText = (0, _react.useContext)(HideTextContext);
345
343
  var themeContext = (0, _react.useContext)(_styledComponents.ThemeContext);
346
344
  var theme = themeContext.name === _theme["default"].article.v2.photo ? 'photography' : 'normal';
@@ -349,8 +347,17 @@ var BookmarkBlock = function BookmarkBlock(_ref6) {
349
347
  var renderIcon = function renderIcon(isBookmarked, addAction, removeAction) {
350
348
  var iconType = isBookmarked ? 'saved' : 'add';
351
349
  var text = isBookmarked ? '已儲存' : '加入書籤';
350
+
351
+ var handleClick = function handleClick() {
352
+ var action = isBookmarked ? removeAction : addAction;
353
+ action();
354
+ setTimeout(function () {
355
+ toastr(isBookmarked);
356
+ }, 500);
357
+ };
358
+
352
359
  return /*#__PURE__*/_react["default"].createElement(ButtonContainer, {
353
- onClick: isBookmarked ? removeAction : addAction
360
+ onClick: handleClick
354
361
  }, /*#__PURE__*/_react["default"].createElement(_button.IconWithTextButton, {
355
362
  text: text,
356
363
  iconComponent: /*#__PURE__*/_react["default"].createElement(_icon.Bookmark, {
@@ -362,11 +369,24 @@ var BookmarkBlock = function BookmarkBlock(_ref6) {
362
369
  }));
363
370
  };
364
371
 
365
- return /*#__PURE__*/_react["default"].createElement(_bookmarkWidget["default"], {
372
+ var toastr = function toastr(isBookmarked) {
373
+ setSnackbarText(isBookmarked ? '已取消書籤' : '已儲存');
374
+ setSnackBar(true);
375
+ setTimeout(function () {
376
+ setSnackBar(false);
377
+ }, 3000);
378
+ };
379
+
380
+ return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_bookmarkWidget["default"], {
366
381
  toAutoCheck: false,
367
382
  articleMeta: articleMeta,
368
383
  renderIcon: renderIcon
369
- });
384
+ }), /*#__PURE__*/_react["default"].createElement(SnackBarContainer, {
385
+ showSnackBar: showSnackBar
386
+ }, /*#__PURE__*/_react["default"].createElement(_snackBar.SnackBar, {
387
+ text: snackbarText,
388
+ theme: theme
389
+ })));
370
390
  };
371
391
 
372
392
  BookmarkBlock.propTypes = {
@@ -384,7 +404,7 @@ var BackToTopic = function BackToTopic(_ref7) {
384
404
  to: backToTopic,
385
405
  target: "_self"
386
406
  }, /*#__PURE__*/_react["default"].createElement(ButtonContainer, null, /*#__PURE__*/_react["default"].createElement(_button.IconWithTextButton, {
387
- text: "\u5C08\u984C",
407
+ text: "\u524D\u5F80\u5C08\u984C",
388
408
  iconComponent: /*#__PURE__*/_react["default"].createElement(_icon.Topic, {
389
409
  releaseBranch: releaseBranch
390
410
  }),
@@ -405,8 +425,9 @@ var RelatedPost = function RelatedPost() {
405
425
  var releaseBranch = themeContext.releaseBranch;
406
426
 
407
427
  var scrollToBottom = function scrollToBottom() {
408
- document.getElementById(_anchor.relatedPostAnchor).scrollIntoView({
409
- behavior: 'smooth'
428
+ _reactScroll.scroller.scrollTo(_anchor.relatedPostAnchor, {
429
+ duration: 800,
430
+ smooth: 'easeInOutQuint'
410
431
  });
411
432
  };
412
433
 
@@ -430,10 +451,10 @@ var ToolBar = function ToolBar(_ref8) {
430
451
  onFontLevelChange = _ref8.onFontLevelChange,
431
452
  className = _ref8.className;
432
453
 
433
- var _useState5 = (0, _react.useState)('init'),
434
- _useState6 = _slicedToArray(_useState5, 2),
435
- scrollDirection = _useState6[0],
436
- setScrollDirection = _useState6[1];
454
+ var _useState9 = (0, _react.useState)('init'),
455
+ _useState10 = _slicedToArray(_useState9, 2),
456
+ scrollDirection = _useState10[0],
457
+ setScrollDirection = _useState10[1];
437
458
 
438
459
  (0, _react.useEffect)(function () {
439
460
  var threshold = 8;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@twreporter/react-article-components",
3
- "version": "1.5.0-rc.2",
3
+ "version": "1.5.0-rc.5",
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",
@@ -25,19 +25,20 @@
25
25
  },
26
26
  "dependencies": {
27
27
  "@twreporter/core": "^1.4.1",
28
- "@twreporter/react-components": "^8.10.0-rc.1",
29
- "@twreporter/redux": "^7.2.1",
30
- "@twreporter/universal-header": "^2.2.10-rc.1",
28
+ "@twreporter/react-components": "^8.10.0-rc.4",
29
+ "@twreporter/redux": "^7.2.2-rc.0",
30
+ "@twreporter/universal-header": "^2.2.10-rc.4",
31
31
  "howler": "^2.2.3",
32
32
  "lodash": "^4.17.11",
33
33
  "memoize-one": "^5.0.5",
34
34
  "prop-types": "^15.0.0",
35
35
  "react": "^16.3.0",
36
+ "react-scroll": "^1.8.7",
36
37
  "react-waypoint": "^9.0.2",
37
38
  "styled-components": "^4.0.0"
38
39
  },
39
40
  "files": [
40
41
  "lib"
41
42
  ],
42
- "gitHead": "0c1c304760a2d20f3873ccc7d44501a8ba8b661f"
43
+ "gitHead": "228b4ec5da6b28307b17b7ac8c7d79c836359d69"
43
44
  }