@twreporter/react-article-components 1.5.0-rc.3 → 1.5.0-rc.4

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,18 @@
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.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)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * fix tool bar defect ([e66c4d7](https://github.com/twreporter/twreporter-npm-packages/commit/e66c4d7eeb87ca61f16f1dede8a191aaf2c8ed80))
12
+ * set snackbarText initial value as empty string ([e750c16](https://github.com/twreporter/twreporter-npm-packages/commit/e750c1636f26c837c6d96f8a7296e8e1c0ce7964))
13
+
14
+
15
+
16
+
17
+
6
18
  # [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)
7
19
 
8
20
  **Note:** Version bump only for package @twreporter/react-article-components
@@ -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");
@@ -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,15 @@ 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
+ toastr(isBookmarked);
355
+ };
356
+
352
357
  return /*#__PURE__*/_react["default"].createElement(ButtonContainer, {
353
- onClick: isBookmarked ? removeAction : addAction
358
+ onClick: handleClick
354
359
  }, /*#__PURE__*/_react["default"].createElement(_button.IconWithTextButton, {
355
360
  text: text,
356
361
  iconComponent: /*#__PURE__*/_react["default"].createElement(_icon.Bookmark, {
@@ -362,11 +367,24 @@ var BookmarkBlock = function BookmarkBlock(_ref6) {
362
367
  }));
363
368
  };
364
369
 
365
- return /*#__PURE__*/_react["default"].createElement(_bookmarkWidget["default"], {
370
+ var toastr = function toastr(isBookmarked) {
371
+ setSnackbarText(isBookmarked ? '已取消書籤' : '已儲存');
372
+ setSnackBar(true);
373
+ setTimeout(function () {
374
+ setSnackBar(false);
375
+ }, 3000);
376
+ };
377
+
378
+ return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_bookmarkWidget["default"], {
366
379
  toAutoCheck: false,
367
380
  articleMeta: articleMeta,
368
381
  renderIcon: renderIcon
369
- });
382
+ }), /*#__PURE__*/_react["default"].createElement(SnackBarContainer, {
383
+ showSnackBar: showSnackBar
384
+ }, /*#__PURE__*/_react["default"].createElement(_snackBar.SnackBar, {
385
+ text: snackbarText,
386
+ theme: theme
387
+ })));
370
388
  };
371
389
 
372
390
  BookmarkBlock.propTypes = {
@@ -384,7 +402,7 @@ var BackToTopic = function BackToTopic(_ref7) {
384
402
  to: backToTopic,
385
403
  target: "_self"
386
404
  }, /*#__PURE__*/_react["default"].createElement(ButtonContainer, null, /*#__PURE__*/_react["default"].createElement(_button.IconWithTextButton, {
387
- text: "\u5C08\u984C",
405
+ text: "\u524D\u5F80\u5C08\u984C",
388
406
  iconComponent: /*#__PURE__*/_react["default"].createElement(_icon.Topic, {
389
407
  releaseBranch: releaseBranch
390
408
  }),
@@ -405,8 +423,9 @@ var RelatedPost = function RelatedPost() {
405
423
  var releaseBranch = themeContext.releaseBranch;
406
424
 
407
425
  var scrollToBottom = function scrollToBottom() {
408
- document.getElementById(_anchor.relatedPostAnchor).scrollIntoView({
409
- behavior: 'smooth'
426
+ _reactScroll.scroller.scrollTo(_anchor.relatedPostAnchor, {
427
+ duration: 800,
428
+ smooth: 'easeInOutQuint'
410
429
  });
411
430
  };
412
431
 
@@ -430,10 +449,10 @@ var ToolBar = function ToolBar(_ref8) {
430
449
  onFontLevelChange = _ref8.onFontLevelChange,
431
450
  className = _ref8.className;
432
451
 
433
- var _useState5 = (0, _react.useState)('init'),
434
- _useState6 = _slicedToArray(_useState5, 2),
435
- scrollDirection = _useState6[0],
436
- setScrollDirection = _useState6[1];
452
+ var _useState9 = (0, _react.useState)('init'),
453
+ _useState10 = _slicedToArray(_useState9, 2),
454
+ scrollDirection = _useState10[0],
455
+ setScrollDirection = _useState10[1];
437
456
 
438
457
  (0, _react.useEffect)(function () {
439
458
  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.3",
3
+ "version": "1.5.0-rc.4",
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.2",
28
+ "@twreporter/react-components": "^8.10.0-rc.3",
29
29
  "@twreporter/redux": "^7.2.2-rc.0",
30
- "@twreporter/universal-header": "^2.2.10-rc.2",
30
+ "@twreporter/universal-header": "^2.2.10-rc.3",
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": "e09f2e6df336ce4eb476ad56c5353a96f32159ac"
43
+ "gitHead": "aa5fa9054d067e7282c8487a431320910863db28"
43
44
  }