@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(
|
|
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:
|
|
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
|
-
|
|
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
|
-
|
|
409
|
-
|
|
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
|
|
434
|
-
|
|
435
|
-
scrollDirection =
|
|
436
|
-
setScrollDirection =
|
|
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
|
+
"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.
|
|
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.
|
|
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": "
|
|
43
|
+
"gitHead": "aa5fa9054d067e7282c8487a431320910863db28"
|
|
43
44
|
}
|