@twreporter/react-components 8.24.0-rc.1 → 8.24.0-rc.3
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 +43 -0
- package/lib/card/components/article-card.js +64 -30
- package/lib/card/components/short-story.js +163 -0
- package/lib/card/stories/articleCard.stories.js +3 -1
- package/lib/card/stories/shortStory.stories.js +66 -0
- package/lib/hook/index.js +19 -1
- package/lib/hook/use-bookmark.js +102 -0
- package/lib/hook/use-store.js +46 -0
- package/lib/listing-page/components/card-list.js +31 -21
- package/lib/listing-page/components/list.js +1 -1
- package/lib/listing-page/components/topics/index.js +3 -3
- package/lib/listing-page/stories/cardList.stories.js +5 -2
- package/lib/text/headline.js +2 -2
- package/lib/title-bar/components/title1.js +59 -0
- package/lib/title-bar/components/title2.js +84 -0
- package/lib/title-bar/index.js +13 -4
- package/lib/title-bar/stories/{bar.stories.js → title1.stories.js} +3 -3
- package/lib/title-bar/stories/title2.stories.js +57 -0
- package/package.json +4 -4
- package/lib/title-bar/components/bar.js +0 -51
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,49 @@
|
|
|
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
|
+
# [8.24.0-rc.3](https://github.com/twreporter/twreporter-npm-packages/compare/@twreporter/react-components@8.24.0-rc.2...@twreporter/react-components@8.24.0-rc.3) (2024-01-17)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* pass bookmark as parameter when create ([c467e68](https://github.com/twreporter/twreporter-npm-packages/commit/c467e68afc1bb401d9a7e9718d9514d69d4564a2))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
# [8.24.0-rc.2](https://github.com/twreporter/twreporter-npm-packages/compare/@twreporter/react-components@8.24.0-rc.1...@twreporter/react-components@8.24.0-rc.2) (2024-01-15)
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
### Bug Fixes
|
|
21
|
+
|
|
22
|
+
* add twreporter-redex to storybook config ([22f32ac](https://github.com/twreporter/twreporter-npm-packages/commit/22f32ac1fe777ea8c3a7b1992696b114b72847ae))
|
|
23
|
+
* article card description line climp ([97102e8](https://github.com/twreporter/twreporter-npm-packages/commit/97102e81916ec4cfac09736f3532f2338e6547e5))
|
|
24
|
+
* import title1 & title2 ([4818159](https://github.com/twreporter/twreporter-npm-packages/commit/4818159b12923e107720a590b89e2ec8dade88b5))
|
|
25
|
+
* import title1 to listing-page ([6c69a1d](https://github.com/twreporter/twreporter-npm-packages/commit/6c69a1d37192f29eaa56e1940da149d364a0e304))
|
|
26
|
+
* replace TitleBar by Title1 ([64ec60b](https://github.com/twreporter/twreporter-npm-packages/commit/64ec60b596200eea00bfe240a4a6a1dd1cd3239f))
|
|
27
|
+
* topic id prop types fix ([c66ff8a](https://github.com/twreporter/twreporter-npm-packages/commit/c66ff8a0a4d59ec9023e978522f8242f712181fd))
|
|
28
|
+
* use renderButton istead of cloneElement ([826eda9](https://github.com/twreporter/twreporter-npm-packages/commit/826eda908f6052bf920f22fe1eb93bfe38eaa731))
|
|
29
|
+
* useBookmark throw error ([b332f96](https://github.com/twreporter/twreporter-npm-packages/commit/b332f96f0bf8b0c6bbe9cea7fbf8b0dd3851dd53))
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
### Features
|
|
33
|
+
|
|
34
|
+
* add short story components ([8f07375](https://github.com/twreporter/twreporter-npm-packages/commit/8f07375709beb48e234a1b2ad4076e27795b73f1))
|
|
35
|
+
* add title2 ([eaf58ae](https://github.com/twreporter/twreporter-npm-packages/commit/eaf58ae4da5d57f73ae7778011b0424a58fd6381))
|
|
36
|
+
* add useBookmark & useStore ([7fd48e5](https://github.com/twreporter/twreporter-npm-packages/commit/7fd48e521e659307b1b91a6b4acdfb4d0a2fd683))
|
|
37
|
+
* article card bookmark button ([824c138](https://github.com/twreporter/twreporter-npm-packages/commit/824c1386f2fa60330fdd7352ad5236715e2b447d))
|
|
38
|
+
* change headline font size ([74b83a1](https://github.com/twreporter/twreporter-npm-packages/commit/74b83a1b853e061dcce10c14a0e7ad4a1986f888))
|
|
39
|
+
* change storybook description ([b9e24d1](https://github.com/twreporter/twreporter-npm-packages/commit/b9e24d11b500f13950d03452f790315c0a68b475))
|
|
40
|
+
* change title bar to title 1 ([951803d](https://github.com/twreporter/twreporter-npm-packages/commit/951803d77cbc22c365f4ad5ef55cc66ee8999aa2))
|
|
41
|
+
* hover on article-card ([4004040](https://github.com/twreporter/twreporter-npm-packages/commit/4004040431825f56b8a5ba1e9c1b02efe1fa3608))
|
|
42
|
+
* no hover effect on bookmark button ([769f0f9](https://github.com/twreporter/twreporter-npm-packages/commit/769f0f9918e4098d8925c9dc4c2196aea258e01d))
|
|
43
|
+
* remove comment ([945f59f](https://github.com/twreporter/twreporter-npm-packages/commit/945f59fc69e1e73168bff6758bd8e423bbd4d013))
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
|
|
6
49
|
# [8.24.0-rc.1](https://github.com/twreporter/twreporter-npm-packages/compare/@twreporter/react-components@8.24.0-rc.0...@twreporter/react-components@8.24.0-rc.1) (2024-01-15)
|
|
7
50
|
|
|
8
51
|
**Note:** Version bump only for package @twreporter/react-components
|
|
@@ -21,12 +21,18 @@ var _icon = require("../../icon");
|
|
|
21
21
|
|
|
22
22
|
var _button = require("../../button");
|
|
23
23
|
|
|
24
|
+
var _customizedLink = _interopRequireDefault(require("../../customized-link"));
|
|
25
|
+
|
|
24
26
|
var _sharedEnum = require("../../shared-enum");
|
|
25
27
|
|
|
26
28
|
var _color = require("@twreporter/core/lib/constants/color");
|
|
27
29
|
|
|
28
30
|
var _releaseBranch = require("@twreporter/core/lib/constants/release-branch");
|
|
29
31
|
|
|
32
|
+
var _theme = require("@twreporter/core/lib/constants/theme");
|
|
33
|
+
|
|
34
|
+
var _entityPath = _interopRequireDefault(require("@twreporter/core/lib/constants/entity-path"));
|
|
35
|
+
|
|
30
36
|
var _width, _height, _marginLeft, _marginTop, _marginBottom;
|
|
31
37
|
|
|
32
38
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
@@ -44,25 +50,29 @@ var bookmarkStyle = {
|
|
|
44
50
|
var metaStyle = {
|
|
45
51
|
marginBottom: (_marginBottom = {}, _defineProperty(_marginBottom, _sharedEnum.Size.S, '4px'), _defineProperty(_marginBottom, _sharedEnum.Size.L, '8px'), _marginBottom)
|
|
46
52
|
};
|
|
53
|
+
var Container = /*#__PURE__*/(0, _styledComponents["default"])(_customizedLink["default"]).withConfig({
|
|
54
|
+
displayName: "article-card__Container",
|
|
55
|
+
componentId: "sc-9196c7-0"
|
|
56
|
+
})(["text-decoration:none;&:hover{.hover{opacity:0.8;}}"]);
|
|
47
57
|
|
|
48
58
|
var FlexGroup = /*#__PURE__*/_styledComponents["default"].div.withConfig({
|
|
49
59
|
displayName: "article-card__FlexGroup",
|
|
50
|
-
componentId: "sc-9196c7-
|
|
60
|
+
componentId: "sc-9196c7-1"
|
|
51
61
|
})(["display:flex;"]);
|
|
52
62
|
|
|
53
63
|
var FlexGroupColumn = /*#__PURE__*/_styledComponents["default"].div.withConfig({
|
|
54
64
|
displayName: "article-card__FlexGroupColumn",
|
|
55
|
-
componentId: "sc-9196c7-
|
|
65
|
+
componentId: "sc-9196c7-2"
|
|
56
66
|
})(["display:flex;flex-direction:column;"]);
|
|
57
67
|
|
|
58
68
|
var FlexSpaceBetween = /*#__PURE__*/(0, _styledComponents["default"])(FlexGroup).withConfig({
|
|
59
69
|
displayName: "article-card__FlexSpaceBetween",
|
|
60
|
-
componentId: "sc-9196c7-
|
|
70
|
+
componentId: "sc-9196c7-3"
|
|
61
71
|
})(["justify-content:space-between;"]);
|
|
62
72
|
var Meta = /*#__PURE__*/(0, _styledComponents["default"])(FlexGroup).withConfig({
|
|
63
73
|
displayName: "article-card__Meta",
|
|
64
|
-
componentId: "sc-9196c7-
|
|
65
|
-
})(["color:", ";flex-direction:row;align-items:center;margin-bottom:", ";& >
|
|
74
|
+
componentId: "sc-9196c7-4"
|
|
75
|
+
})(["color:", ";flex-direction:row;align-items:center;margin-bottom:", ";& > p{margin-right:8px;}&:last-child{margin-right:0;}", ""], _color.colorGrayscale.gray600, function (props) {
|
|
66
76
|
return metaStyle.marginBottom[props.size];
|
|
67
77
|
}, function (props) {
|
|
68
78
|
return props.hide ? "display: none;" : '';
|
|
@@ -70,18 +80,18 @@ var Meta = /*#__PURE__*/(0, _styledComponents["default"])(FlexGroup).withConfig(
|
|
|
70
80
|
|
|
71
81
|
var DescContainer = /*#__PURE__*/_styledComponents["default"].div.withConfig({
|
|
72
82
|
displayName: "article-card__DescContainer",
|
|
73
|
-
componentId: "sc-9196c7-
|
|
74
|
-
})(["color:", ";margin-top:8px;
|
|
83
|
+
componentId: "sc-9196c7-5"
|
|
84
|
+
})(["color:", ";margin-top:8px;p{display:-webkit-box;text-overflow:ellipsis;overflow:hidden;line-clamp:3;-webkit-line-clamp:3;-webkit-box-orient:vertical;}"], _color.colorGrayscale.gray800);
|
|
75
85
|
|
|
76
86
|
var BookmarkContainer = /*#__PURE__*/(0, _styledComponents["default"])(FlexGroup).withConfig({
|
|
77
87
|
displayName: "article-card__BookmarkContainer",
|
|
78
|
-
componentId: "sc-9196c7-
|
|
88
|
+
componentId: "sc-9196c7-6"
|
|
79
89
|
})(["align-self:flex-end;margin-top:", ";"], function (props) {
|
|
80
90
|
return bookmarkStyle.marginTop[props.size];
|
|
81
91
|
});
|
|
82
92
|
var ImageContainer = /*#__PURE__*/(0, _styledComponents["default"])(FlexGroup).withConfig({
|
|
83
93
|
displayName: "article-card__ImageContainer",
|
|
84
|
-
componentId: "sc-9196c7-
|
|
94
|
+
componentId: "sc-9196c7-7"
|
|
85
95
|
})(["flex:0 0 auto;align-self:center;width:", ";height:", ";margin-left:", ";"], function (props) {
|
|
86
96
|
return imageStyle.width[props.size];
|
|
87
97
|
}, function (props) {
|
|
@@ -91,11 +101,11 @@ var ImageContainer = /*#__PURE__*/(0, _styledComponents["default"])(FlexGroup).w
|
|
|
91
101
|
});
|
|
92
102
|
var LeftColumn = /*#__PURE__*/(0, _styledComponents["default"])(FlexGroupColumn).withConfig({
|
|
93
103
|
displayName: "article-card__LeftColumn",
|
|
94
|
-
componentId: "sc-9196c7-
|
|
104
|
+
componentId: "sc-9196c7-8"
|
|
95
105
|
})(["flex:1;"]);
|
|
96
106
|
var TitleText = /*#__PURE__*/(0, _styledComponents["default"])(_headline.H4).withConfig({
|
|
97
107
|
displayName: "article-card__TitleText",
|
|
98
|
-
componentId: "sc-9196c7-
|
|
108
|
+
componentId: "sc-9196c7-9"
|
|
99
109
|
})(["color:", ";"], _color.colorGrayscale.gray800);
|
|
100
110
|
|
|
101
111
|
var ArticleCard = function ArticleCard(_ref) {
|
|
@@ -115,50 +125,71 @@ var ArticleCard = function ArticleCard(_ref) {
|
|
|
115
125
|
isBookmarked = _ref$isBookmarked === void 0 ? false : _ref$isBookmarked,
|
|
116
126
|
toggleBookmark = _ref.toggleBookmark,
|
|
117
127
|
_ref$releaseBranch = _ref.releaseBranch,
|
|
118
|
-
releaseBranch = _ref$releaseBranch === void 0 ? _releaseBranch.BRANCH.master : _ref$releaseBranch
|
|
128
|
+
releaseBranch = _ref$releaseBranch === void 0 ? _releaseBranch.BRANCH.master : _ref$releaseBranch,
|
|
129
|
+
_ref$showIsBookmarked = _ref.showIsBookmarked,
|
|
130
|
+
showIsBookmarked = _ref$showIsBookmarked === void 0 ? false : _ref$showIsBookmarked,
|
|
131
|
+
_ref$style = _ref.style,
|
|
132
|
+
style = _ref$style === void 0 ? _theme.ARTICLE_THEME.v2["default"] : _ref$style,
|
|
133
|
+
_ref$slug = _ref.slug,
|
|
134
|
+
slug = _ref$slug === void 0 ? '' : _ref$slug;
|
|
119
135
|
var hideMeta = !category && !date;
|
|
120
136
|
var titleJSX = title ? /*#__PURE__*/_react["default"].createElement(TitleText, {
|
|
121
137
|
text: title,
|
|
122
|
-
type: "article"
|
|
138
|
+
type: "article",
|
|
139
|
+
className: "hover"
|
|
123
140
|
}) : null;
|
|
124
141
|
var dateJSX = date ? /*#__PURE__*/_react["default"].createElement(_paragraph.P3, {
|
|
125
|
-
text: date
|
|
142
|
+
text: date,
|
|
143
|
+
className: "hover"
|
|
126
144
|
}) : null;
|
|
127
145
|
var categoryJSX = category ? /*#__PURE__*/_react["default"].createElement(_paragraph.P3, {
|
|
128
|
-
text: category
|
|
146
|
+
text: category,
|
|
147
|
+
className: "hover"
|
|
129
148
|
}) : null;
|
|
130
149
|
var descriptionJSX = description ? size === _sharedEnum.Size.S ? /*#__PURE__*/_react["default"].createElement(_paragraph.P2, {
|
|
131
|
-
text: description
|
|
150
|
+
text: description,
|
|
151
|
+
className: "hover"
|
|
132
152
|
}) : /*#__PURE__*/_react["default"].createElement(_paragraph.P1, {
|
|
133
|
-
text: description
|
|
153
|
+
text: description,
|
|
154
|
+
className: "hover"
|
|
134
155
|
}) : null;
|
|
156
|
+
var isInteractiveArticle = style === _theme.ARTICLE_THEME.v2.interactive;
|
|
157
|
+
var link = {
|
|
158
|
+
to: "".concat(isInteractiveArticle ? _entityPath["default"].interactiveArticle : _entityPath["default"].article).concat(slug),
|
|
159
|
+
target: isInteractiveArticle ? '_blank' : ''
|
|
160
|
+
};
|
|
161
|
+
|
|
162
|
+
var onBookmarkClick = function onBookmarkClick(event) {
|
|
163
|
+
event.preventDefault();
|
|
164
|
+
toggleBookmark();
|
|
165
|
+
};
|
|
135
166
|
|
|
136
167
|
var bookmarkIcon = /*#__PURE__*/_react["default"].createElement(_icon.Bookmark, {
|
|
137
|
-
type: _icon.Bookmark.Type.SAVED,
|
|
168
|
+
type: isBookmarked ? _icon.Bookmark.Type.SAVED : _icon.Bookmark.Type.ADD,
|
|
138
169
|
releaseBranch: releaseBranch
|
|
139
170
|
});
|
|
140
171
|
|
|
141
|
-
var bookmarkButton =
|
|
172
|
+
var bookmarkButton = /*#__PURE__*/_react["default"].createElement(_button.TextButton, {
|
|
142
173
|
theme: _button.TextButton.THEME.normal,
|
|
143
174
|
style: _button.TextButton.Style.LIGHT,
|
|
144
175
|
leftIconComponent: bookmarkIcon,
|
|
145
|
-
text:
|
|
146
|
-
}) : /*#__PURE__*/_react["default"].createElement(_button.IconButton, {
|
|
147
|
-
theme: _button.IconButton.THEME.normal,
|
|
148
|
-
iconComponent: bookmarkIcon
|
|
176
|
+
text: isBookmarked ? '已收藏' : '收藏'
|
|
149
177
|
});
|
|
150
|
-
|
|
151
|
-
|
|
178
|
+
|
|
179
|
+
var bookmarkJSX = showIsBookmarked ? /*#__PURE__*/_react["default"].createElement(BookmarkContainer, {
|
|
180
|
+
onClick: onBookmarkClick,
|
|
152
181
|
size: size
|
|
153
182
|
}, bookmarkButton) : null;
|
|
154
183
|
|
|
155
184
|
var metaJSX = /*#__PURE__*/_react["default"].createElement(Meta, {
|
|
156
185
|
hide: hideMeta,
|
|
157
|
-
size: size
|
|
186
|
+
size: size,
|
|
187
|
+
className: "hover"
|
|
158
188
|
}, categoryJSX, dateJSX);
|
|
159
189
|
|
|
160
190
|
var imageJSX = /*#__PURE__*/_react["default"].createElement(ImageContainer, {
|
|
161
|
-
size: size
|
|
191
|
+
size: size,
|
|
192
|
+
className: "hover"
|
|
162
193
|
}, /*#__PURE__*/_react["default"].createElement(_imageWithFallback["default"], {
|
|
163
194
|
src: image.src,
|
|
164
195
|
alt: image.alt,
|
|
@@ -166,11 +197,11 @@ var ArticleCard = function ArticleCard(_ref) {
|
|
|
166
197
|
}));
|
|
167
198
|
|
|
168
199
|
if (size === _sharedEnum.Size.S) {
|
|
169
|
-
return /*#__PURE__*/_react["default"].createElement(FlexGroupColumn, null, /*#__PURE__*/_react["default"].createElement(FlexSpaceBetween, null, /*#__PURE__*/_react["default"].createElement(FlexGroupColumn, null, metaJSX, titleJSX), /*#__PURE__*/_react["default"].createElement(FlexGroup, null, imageJSX)), /*#__PURE__*/_react["default"].createElement(FlexGroupColumn, null, /*#__PURE__*/_react["default"].createElement(DescContainer, null, descriptionJSX), bookmarkJSX));
|
|
200
|
+
return /*#__PURE__*/_react["default"].createElement(Container, link, /*#__PURE__*/_react["default"].createElement(FlexGroupColumn, null, /*#__PURE__*/_react["default"].createElement(FlexSpaceBetween, null, /*#__PURE__*/_react["default"].createElement(FlexGroupColumn, null, metaJSX, titleJSX), /*#__PURE__*/_react["default"].createElement(FlexGroup, null, imageJSX)), /*#__PURE__*/_react["default"].createElement(FlexGroupColumn, null, /*#__PURE__*/_react["default"].createElement(DescContainer, null, descriptionJSX), bookmarkJSX)));
|
|
170
201
|
} // L size
|
|
171
202
|
|
|
172
203
|
|
|
173
|
-
return /*#__PURE__*/_react["default"].createElement(FlexSpaceBetween, null, /*#__PURE__*/_react["default"].createElement(LeftColumn, null, metaJSX, /*#__PURE__*/_react["default"].createElement(FlexGroupColumn, null, titleJSX, /*#__PURE__*/_react["default"].createElement(DescContainer, null, descriptionJSX), bookmarkJSX)), imageJSX);
|
|
204
|
+
return /*#__PURE__*/_react["default"].createElement(Container, link, /*#__PURE__*/_react["default"].createElement(FlexSpaceBetween, null, /*#__PURE__*/_react["default"].createElement(LeftColumn, null, metaJSX, /*#__PURE__*/_react["default"].createElement(FlexGroupColumn, null, titleJSX, /*#__PURE__*/_react["default"].createElement(DescContainer, null, descriptionJSX), bookmarkJSX)), imageJSX));
|
|
174
205
|
};
|
|
175
206
|
|
|
176
207
|
ArticleCard.propTypes = {
|
|
@@ -186,7 +217,10 @@ ArticleCard.propTypes = {
|
|
|
186
217
|
size: _propTypes["default"].oneOf(Object.values(_sharedEnum.Size)),
|
|
187
218
|
isBookmarked: _propTypes["default"].bool,
|
|
188
219
|
toggleBookmark: _propTypes["default"].func,
|
|
189
|
-
releaseBranch: _releaseBranch.BRANCH_PROP_TYPES
|
|
220
|
+
releaseBranch: _releaseBranch.BRANCH_PROP_TYPES,
|
|
221
|
+
showIsBookmarked: _propTypes["default"].bool,
|
|
222
|
+
style: _propTypes["default"].oneOf(Object.values(_theme.ARTICLE_THEME.v2)),
|
|
223
|
+
slug: _propTypes["default"].string
|
|
190
224
|
};
|
|
191
225
|
ArticleCard.Size = _sharedEnum.Size;
|
|
192
226
|
var _default = ArticleCard;
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports["default"] = void 0;
|
|
7
|
+
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
|
|
10
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
11
|
+
|
|
12
|
+
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
13
|
+
|
|
14
|
+
var _imageWithFallback = _interopRequireDefault(require("../../image-with-fallback"));
|
|
15
|
+
|
|
16
|
+
var _paragraph = require("../../text/paragraph");
|
|
17
|
+
|
|
18
|
+
var _headline = require("../../text/headline");
|
|
19
|
+
|
|
20
|
+
var _customizedLink = _interopRequireDefault(require("../../customized-link"));
|
|
21
|
+
|
|
22
|
+
var _sharedEnum = require("../../shared-enum");
|
|
23
|
+
|
|
24
|
+
var _color = require("@twreporter/core/lib/constants/color");
|
|
25
|
+
|
|
26
|
+
var _theme = require("@twreporter/core/lib/constants/theme");
|
|
27
|
+
|
|
28
|
+
var _entityPath = _interopRequireDefault(require("@twreporter/core/lib/constants/entity-path"));
|
|
29
|
+
|
|
30
|
+
var _releaseBranch = require("@twreporter/core/lib/constants/release-branch");
|
|
31
|
+
|
|
32
|
+
var _width, _height, _marginLeft, _marginBottom;
|
|
33
|
+
|
|
34
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
35
|
+
|
|
36
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
37
|
+
|
|
38
|
+
var imageStyle = {
|
|
39
|
+
width: (_width = {}, _defineProperty(_width, _sharedEnum.Size.S, '48px'), _defineProperty(_width, _sharedEnum.Size.L, '80px'), _width),
|
|
40
|
+
height: (_height = {}, _defineProperty(_height, _sharedEnum.Size.S, '48px'), _defineProperty(_height, _sharedEnum.Size.L, '80px'), _height),
|
|
41
|
+
marginLeft: (_marginLeft = {}, _defineProperty(_marginLeft, _sharedEnum.Size.S, '8px'), _defineProperty(_marginLeft, _sharedEnum.Size.L, '16px'), _marginLeft)
|
|
42
|
+
};
|
|
43
|
+
var metaStyle = {
|
|
44
|
+
marginBottom: (_marginBottom = {}, _defineProperty(_marginBottom, _sharedEnum.Size.S, '4px'), _defineProperty(_marginBottom, _sharedEnum.Size.L, '8px'), _marginBottom)
|
|
45
|
+
};
|
|
46
|
+
var Container = /*#__PURE__*/(0, _styledComponents["default"])(_customizedLink["default"]).withConfig({
|
|
47
|
+
displayName: "short-story__Container",
|
|
48
|
+
componentId: "sc-119yx1u-0"
|
|
49
|
+
})(["text-decoration:none;&:hover{opacity:0.8;}"]);
|
|
50
|
+
|
|
51
|
+
var FlexGroup = /*#__PURE__*/_styledComponents["default"].div.withConfig({
|
|
52
|
+
displayName: "short-story__FlexGroup",
|
|
53
|
+
componentId: "sc-119yx1u-1"
|
|
54
|
+
})(["display:flex;"]);
|
|
55
|
+
|
|
56
|
+
var FlexGroupColumn = /*#__PURE__*/_styledComponents["default"].div.withConfig({
|
|
57
|
+
displayName: "short-story__FlexGroupColumn",
|
|
58
|
+
componentId: "sc-119yx1u-2"
|
|
59
|
+
})(["display:flex;flex-direction:column;"]);
|
|
60
|
+
|
|
61
|
+
var FlexSpaceBetween = /*#__PURE__*/(0, _styledComponents["default"])(FlexGroup).withConfig({
|
|
62
|
+
displayName: "short-story__FlexSpaceBetween",
|
|
63
|
+
componentId: "sc-119yx1u-3"
|
|
64
|
+
})(["justify-content:space-between;"]);
|
|
65
|
+
var Meta = /*#__PURE__*/(0, _styledComponents["default"])(FlexGroup).withConfig({
|
|
66
|
+
displayName: "short-story__Meta",
|
|
67
|
+
componentId: "sc-119yx1u-4"
|
|
68
|
+
})(["color:", ";flex-direction:row;align-items:center;margin-bottom:", ";& > p{margin-right:8px;}&:last-child{margin-right:0;}", ""], _color.colorGrayscale.gray600, function (props) {
|
|
69
|
+
return metaStyle.marginBottom[props.size];
|
|
70
|
+
}, function (props) {
|
|
71
|
+
return props.hide ? "display: none;" : '';
|
|
72
|
+
});
|
|
73
|
+
var ImageContainer = /*#__PURE__*/(0, _styledComponents["default"])(FlexGroup).withConfig({
|
|
74
|
+
displayName: "short-story__ImageContainer",
|
|
75
|
+
componentId: "sc-119yx1u-5"
|
|
76
|
+
})(["flex:0 0 auto;align-self:center;width:", ";height:", ";margin-left:", ";"], function (props) {
|
|
77
|
+
return imageStyle.width[props.size];
|
|
78
|
+
}, function (props) {
|
|
79
|
+
return imageStyle.height[props.size];
|
|
80
|
+
}, function (props) {
|
|
81
|
+
return imageStyle.marginLeft[props.size];
|
|
82
|
+
});
|
|
83
|
+
var LeftColumn = /*#__PURE__*/(0, _styledComponents["default"])(FlexGroupColumn).withConfig({
|
|
84
|
+
displayName: "short-story__LeftColumn",
|
|
85
|
+
componentId: "sc-119yx1u-6"
|
|
86
|
+
})(["flex:1;"]);
|
|
87
|
+
var TitleText = /*#__PURE__*/(0, _styledComponents["default"])(_headline.H6).withConfig({
|
|
88
|
+
displayName: "short-story__TitleText",
|
|
89
|
+
componentId: "sc-119yx1u-7"
|
|
90
|
+
})(["color:", ";"], _color.colorGrayscale.gray800);
|
|
91
|
+
|
|
92
|
+
var ShortStory = function ShortStory(_ref) {
|
|
93
|
+
var _ref$title = _ref.title,
|
|
94
|
+
title = _ref$title === void 0 ? '' : _ref$title,
|
|
95
|
+
_ref$date = _ref.date,
|
|
96
|
+
date = _ref$date === void 0 ? '' : _ref$date,
|
|
97
|
+
_ref$image = _ref.image,
|
|
98
|
+
image = _ref$image === void 0 ? {} : _ref$image,
|
|
99
|
+
_ref$category = _ref.category,
|
|
100
|
+
category = _ref$category === void 0 ? '' : _ref$category,
|
|
101
|
+
_ref$size = _ref.size,
|
|
102
|
+
size = _ref$size === void 0 ? _sharedEnum.Size.S : _ref$size,
|
|
103
|
+
_ref$releaseBranch = _ref.releaseBranch,
|
|
104
|
+
releaseBranch = _ref$releaseBranch === void 0 ? _releaseBranch.BRANCH.master : _ref$releaseBranch,
|
|
105
|
+
_ref$style = _ref.style,
|
|
106
|
+
style = _ref$style === void 0 ? _theme.ARTICLE_THEME.v2["default"] : _ref$style,
|
|
107
|
+
_ref$slug = _ref.slug,
|
|
108
|
+
slug = _ref$slug === void 0 ? '' : _ref$slug;
|
|
109
|
+
var hideMeta = !category && !date;
|
|
110
|
+
var titleJSX = title ? /*#__PURE__*/_react["default"].createElement(TitleText, {
|
|
111
|
+
text: title,
|
|
112
|
+
type: "article"
|
|
113
|
+
}) : null;
|
|
114
|
+
var dateJSX = date ? /*#__PURE__*/_react["default"].createElement(_paragraph.P3, {
|
|
115
|
+
text: date
|
|
116
|
+
}) : null;
|
|
117
|
+
var categoryJSX = category ? /*#__PURE__*/_react["default"].createElement(_paragraph.P3, {
|
|
118
|
+
text: category
|
|
119
|
+
}) : null;
|
|
120
|
+
var isInteractiveArticle = style === _theme.ARTICLE_THEME.v2.interactive;
|
|
121
|
+
var link = {
|
|
122
|
+
to: "".concat(isInteractiveArticle ? _entityPath["default"].interactiveArticle : _entityPath["default"].article).concat(slug),
|
|
123
|
+
target: isInteractiveArticle ? '_blank' : ''
|
|
124
|
+
};
|
|
125
|
+
|
|
126
|
+
var metaJSX = /*#__PURE__*/_react["default"].createElement(Meta, {
|
|
127
|
+
hide: hideMeta,
|
|
128
|
+
size: size
|
|
129
|
+
}, categoryJSX, dateJSX);
|
|
130
|
+
|
|
131
|
+
var imageJSX = /*#__PURE__*/_react["default"].createElement(ImageContainer, {
|
|
132
|
+
size: size
|
|
133
|
+
}, /*#__PURE__*/_react["default"].createElement(_imageWithFallback["default"], {
|
|
134
|
+
src: image.src,
|
|
135
|
+
alt: image.alt,
|
|
136
|
+
releaseBranch: releaseBranch
|
|
137
|
+
}));
|
|
138
|
+
|
|
139
|
+
if (size === _sharedEnum.Size.S) {
|
|
140
|
+
return /*#__PURE__*/_react["default"].createElement(Container, link, /*#__PURE__*/_react["default"].createElement(FlexGroupColumn, null, /*#__PURE__*/_react["default"].createElement(FlexSpaceBetween, null, /*#__PURE__*/_react["default"].createElement(FlexGroupColumn, null, metaJSX, titleJSX), /*#__PURE__*/_react["default"].createElement(FlexGroup, null, imageJSX))));
|
|
141
|
+
} // L size
|
|
142
|
+
|
|
143
|
+
|
|
144
|
+
return /*#__PURE__*/_react["default"].createElement(Container, link, /*#__PURE__*/_react["default"].createElement(FlexSpaceBetween, null, /*#__PURE__*/_react["default"].createElement(LeftColumn, null, metaJSX, /*#__PURE__*/_react["default"].createElement(FlexGroupColumn, null, titleJSX)), imageJSX));
|
|
145
|
+
};
|
|
146
|
+
|
|
147
|
+
ShortStory.propTypes = {
|
|
148
|
+
title: _propTypes["default"].string.isRequired,
|
|
149
|
+
date: _propTypes["default"].string,
|
|
150
|
+
image: _propTypes["default"].shape({
|
|
151
|
+
alt: _propTypes["default"].string,
|
|
152
|
+
src: _propTypes["default"].string.isRequired,
|
|
153
|
+
srcSet: _propTypes["default"].string
|
|
154
|
+
}),
|
|
155
|
+
category: _propTypes["default"].string,
|
|
156
|
+
size: _propTypes["default"].oneOf(Object.values(_sharedEnum.Size)),
|
|
157
|
+
releaseBranch: _releaseBranch.BRANCH_PROP_TYPES,
|
|
158
|
+
style: _propTypes["default"].oneOf(Object.values(_theme.ARTICLE_THEME.v2)),
|
|
159
|
+
slug: _propTypes["default"].string
|
|
160
|
+
};
|
|
161
|
+
ShortStory.Size = _sharedEnum.Size;
|
|
162
|
+
var _default = ShortStory;
|
|
163
|
+
exports["default"] = _default;
|
|
@@ -51,7 +51,9 @@ var article = {
|
|
|
51
51
|
src: 'https://upload.wikimedia.org/wikipedia/commons/thumb/7/77/Google_Images_2015_logo.svg/220px-Google_Images_2015_logo.svg.png',
|
|
52
52
|
alt: 'test'
|
|
53
53
|
},
|
|
54
|
-
releaseBranch: _releaseBranch.BRANCH.master
|
|
54
|
+
releaseBranch: _releaseBranch.BRANCH.master,
|
|
55
|
+
isBookmarked: true,
|
|
56
|
+
showIsBookmarked: false
|
|
55
57
|
}
|
|
56
58
|
};
|
|
57
59
|
exports.article = article;
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.shortStory = exports["default"] = void 0;
|
|
7
|
+
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
|
|
10
|
+
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
11
|
+
|
|
12
|
+
var _shortStory = _interopRequireDefault(require("../components/short-story"));
|
|
13
|
+
|
|
14
|
+
var _constants = require("../../storybook/constants");
|
|
15
|
+
|
|
16
|
+
var _getEnumArg = require("../../storybook/utils/get-enum-arg");
|
|
17
|
+
|
|
18
|
+
var _releaseBranch = require("@twreporter/core/lib/constants/release-branch");
|
|
19
|
+
|
|
20
|
+
var _theme = require("@twreporter/core/lib/constants/theme");
|
|
21
|
+
|
|
22
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
23
|
+
|
|
24
|
+
/* eslint react/display-name:0 */
|
|
25
|
+
// components
|
|
26
|
+
// storybooks
|
|
27
|
+
// @twreporters
|
|
28
|
+
var _default = {
|
|
29
|
+
title: 'Card/Short Story',
|
|
30
|
+
component: _shortStory["default"],
|
|
31
|
+
argTypes: {
|
|
32
|
+
releaseBranch: _constants.BRANCH_STORYBOOK_ARG_TYPE,
|
|
33
|
+
size: _constants.SIZE_STORYBOOK_ARG_TYPE,
|
|
34
|
+
style: (0, _getEnumArg.getRadioArg)(_theme.ARTICLE_THEME.v2, _theme.ARTICLE_THEME.v2["default"])
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
exports["default"] = _default;
|
|
38
|
+
|
|
39
|
+
var Container = /*#__PURE__*/_styledComponents["default"].div.withConfig({
|
|
40
|
+
displayName: "shortStorystories__Container",
|
|
41
|
+
componentId: "luhojz-0"
|
|
42
|
+
})(["width:", "px;"], function (props) {
|
|
43
|
+
return props.size === _shortStory["default"].Size.S ? '343' : '516';
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
var shortStory = {
|
|
47
|
+
render: function render(args) {
|
|
48
|
+
return /*#__PURE__*/_react["default"].createElement(Container, {
|
|
49
|
+
size: args.size
|
|
50
|
+
}, /*#__PURE__*/_react["default"].createElement(_shortStory["default"], args));
|
|
51
|
+
},
|
|
52
|
+
args: {
|
|
53
|
+
size: _shortStory["default"].Size.L,
|
|
54
|
+
title: '文章標題文章標題文章標題文章標題文章標題文章標題文章標題文章標題',
|
|
55
|
+
category: '主分類',
|
|
56
|
+
date: '2022/01/01',
|
|
57
|
+
image: {
|
|
58
|
+
src: 'https://upload.wikimedia.org/wikipedia/commons/thumb/7/77/Google_Images_2015_logo.svg/220px-Google_Images_2015_logo.svg.png',
|
|
59
|
+
alt: 'test'
|
|
60
|
+
},
|
|
61
|
+
releaseBranch: _releaseBranch.BRANCH.master,
|
|
62
|
+
style: _theme.ARTICLE_THEME.v2["default"],
|
|
63
|
+
slug: 'a-test-slug'
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
exports.shortStory = shortStory;
|
package/lib/hook/index.js
CHANGED
|
@@ -4,6 +4,12 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports["default"] = void 0;
|
|
7
|
+
Object.defineProperty(exports, "useBookmark", {
|
|
8
|
+
enumerable: true,
|
|
9
|
+
get: function get() {
|
|
10
|
+
return _useBookmark["default"];
|
|
11
|
+
}
|
|
12
|
+
});
|
|
7
13
|
Object.defineProperty(exports, "useFontFaceObserver", {
|
|
8
14
|
enumerable: true,
|
|
9
15
|
get: function get() {
|
|
@@ -16,15 +22,27 @@ Object.defineProperty(exports, "useOutsideClick", {
|
|
|
16
22
|
return _useOutsideClick["default"];
|
|
17
23
|
}
|
|
18
24
|
});
|
|
25
|
+
Object.defineProperty(exports, "useStore", {
|
|
26
|
+
enumerable: true,
|
|
27
|
+
get: function get() {
|
|
28
|
+
return _useStore["default"];
|
|
29
|
+
}
|
|
30
|
+
});
|
|
19
31
|
|
|
20
32
|
var _useOutsideClick = _interopRequireDefault(require("./use-outside-click"));
|
|
21
33
|
|
|
22
34
|
var _useFontFaceObserver = _interopRequireDefault(require("./use-font-face-observer"));
|
|
23
35
|
|
|
36
|
+
var _useBookmark = _interopRequireDefault(require("./use-bookmark"));
|
|
37
|
+
|
|
38
|
+
var _useStore = _interopRequireDefault(require("./use-store"));
|
|
39
|
+
|
|
24
40
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
25
41
|
|
|
26
42
|
var _default = {
|
|
27
43
|
useOutsideClick: _useOutsideClick["default"],
|
|
28
|
-
useFontFaceObserver: _useFontFaceObserver["default"]
|
|
44
|
+
useFontFaceObserver: _useFontFaceObserver["default"],
|
|
45
|
+
useBookmark: _useBookmark["default"],
|
|
46
|
+
useStore: _useStore["default"]
|
|
29
47
|
};
|
|
30
48
|
exports["default"] = _default;
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports["default"] = void 0;
|
|
7
|
+
|
|
8
|
+
var _redux = _interopRequireDefault(require("@twreporter/redux"));
|
|
9
|
+
|
|
10
|
+
var _get = _interopRequireDefault(require("lodash/get"));
|
|
11
|
+
|
|
12
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
13
|
+
|
|
14
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
15
|
+
|
|
16
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
17
|
+
|
|
18
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
19
|
+
|
|
20
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
21
|
+
|
|
22
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
23
|
+
|
|
24
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
25
|
+
|
|
26
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
27
|
+
|
|
28
|
+
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
|
29
|
+
|
|
30
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
31
|
+
|
|
32
|
+
var _ = {
|
|
33
|
+
get: _get["default"]
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
function getHostFromWindowLocation() {
|
|
37
|
+
var defaultHost = 'https://www.twreporter.org';
|
|
38
|
+
|
|
39
|
+
try {
|
|
40
|
+
var _window$location = window.location,
|
|
41
|
+
host = _window$location.host,
|
|
42
|
+
protocol = _window$location.protocol;
|
|
43
|
+
|
|
44
|
+
if (host && protocol) {
|
|
45
|
+
return "".concat(protocol, "//").concat(host);
|
|
46
|
+
} else {
|
|
47
|
+
console.warn('The host or protocol in `window.location` is not valid:', 'window.location.protocol:', protocol, 'window.location.host:', host, "Return default host '".concat(defaultHost, "' instead."));
|
|
48
|
+
return defaultHost;
|
|
49
|
+
}
|
|
50
|
+
} catch (err) {
|
|
51
|
+
console.warn('Error on getting `host` and `protocol` from `window.location`:', err);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
var _twreporterRedux$acti = _redux["default"].actions,
|
|
56
|
+
createSingleBookmark = _twreporterRedux$acti.createSingleBookmark,
|
|
57
|
+
deleteSingleBookmark = _twreporterRedux$acti.deleteSingleBookmark;
|
|
58
|
+
/**
|
|
59
|
+
* hook for create or delete bookmark
|
|
60
|
+
* @param {Array.<{state: object, dispatch: Function}>} store
|
|
61
|
+
* @param {object} bookmark
|
|
62
|
+
* @param {string} bookmark.slug
|
|
63
|
+
* @param {boolean} bookmark.is_external
|
|
64
|
+
* @param {string} bookmark.title
|
|
65
|
+
* @param {string} bookmark.desc
|
|
66
|
+
* @param {string} bookmark.thumbnail
|
|
67
|
+
* @param {string} bookmark.published_date
|
|
68
|
+
*/
|
|
69
|
+
|
|
70
|
+
var useBookmark = function useBookmark(store) {
|
|
71
|
+
var _store = _slicedToArray(store, 2),
|
|
72
|
+
state = _store[0],
|
|
73
|
+
dispatch = _store[1];
|
|
74
|
+
|
|
75
|
+
var jwt = _.get(state, 'auth.accessToken');
|
|
76
|
+
|
|
77
|
+
var userID = _.get(state, 'auth.userInfo.user_id');
|
|
78
|
+
|
|
79
|
+
var addCurrentPageToBookmarks = function addCurrentPageToBookmarks(bookmark) {
|
|
80
|
+
var bookmarkToBeCreated = _objectSpread(_objectSpread({}, bookmark), {}, {
|
|
81
|
+
host: getHostFromWindowLocation()
|
|
82
|
+
});
|
|
83
|
+
|
|
84
|
+
return dispatch(createSingleBookmark(jwt, userID, bookmarkToBeCreated));
|
|
85
|
+
};
|
|
86
|
+
|
|
87
|
+
var removeCurrentPageFromBookmarks = function removeCurrentPageFromBookmarks(bookmarkID) {
|
|
88
|
+
if (bookmarkID) {
|
|
89
|
+
return dispatch(deleteSingleBookmark(jwt, userID, bookmarkID));
|
|
90
|
+
} else {
|
|
91
|
+
throw new Error('Error on deleting bookmark: No valid bookmark id.');
|
|
92
|
+
}
|
|
93
|
+
};
|
|
94
|
+
|
|
95
|
+
return {
|
|
96
|
+
addAction: addCurrentPageToBookmarks,
|
|
97
|
+
removeAction: removeCurrentPageFromBookmarks
|
|
98
|
+
};
|
|
99
|
+
};
|
|
100
|
+
|
|
101
|
+
var _default = useBookmark;
|
|
102
|
+
exports["default"] = _default;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports["default"] = void 0;
|
|
7
|
+
|
|
8
|
+
var _react = require("react");
|
|
9
|
+
|
|
10
|
+
var _reactRedux = require("react-redux");
|
|
11
|
+
|
|
12
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
13
|
+
|
|
14
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
15
|
+
|
|
16
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
17
|
+
|
|
18
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
19
|
+
|
|
20
|
+
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
|
21
|
+
|
|
22
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
23
|
+
|
|
24
|
+
function useStore() {
|
|
25
|
+
var _useContext = (0, _react.useContext)(_reactRedux.ReactReduxContext),
|
|
26
|
+
store = _useContext.store;
|
|
27
|
+
|
|
28
|
+
var getState = store.getState,
|
|
29
|
+
dispatch = store.dispatch,
|
|
30
|
+
subscribe = store.subscribe;
|
|
31
|
+
|
|
32
|
+
var _useState = (0, _react.useState)(getState()),
|
|
33
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
34
|
+
storeState = _useState2[0],
|
|
35
|
+
setStoreState = _useState2[1];
|
|
36
|
+
|
|
37
|
+
(0, _react.useEffect)(function () {
|
|
38
|
+
return subscribe(function () {
|
|
39
|
+
setStoreState(getState());
|
|
40
|
+
}, []);
|
|
41
|
+
});
|
|
42
|
+
return [storeState, dispatch];
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
var _default = useStore;
|
|
46
|
+
exports["default"] = _default;
|
|
@@ -17,22 +17,16 @@ var _isFetchingWrapper = _interopRequireDefault(require("../../is-fetching-wrapp
|
|
|
17
17
|
|
|
18
18
|
var _divider = _interopRequireDefault(require("../../divider"));
|
|
19
19
|
|
|
20
|
-
var _customizedLink = _interopRequireDefault(require("../../customized-link"));
|
|
21
|
-
|
|
22
20
|
var _rwd = require("../../rwd");
|
|
23
21
|
|
|
24
22
|
var _mockupSpec = _interopRequireDefault(require("../constants/mockup-spec"));
|
|
25
23
|
|
|
26
|
-
var _entityPath = _interopRequireDefault(require("@twreporter/core/lib/constants/entity-path"));
|
|
27
|
-
|
|
28
24
|
var _mediaQuery = _interopRequireDefault(require("@twreporter/core/lib/utils/media-query"));
|
|
29
25
|
|
|
30
26
|
var _date = require("@twreporter/core/lib/utils/date");
|
|
31
27
|
|
|
32
28
|
var _releaseBranch = require("@twreporter/core/lib/constants/release-branch");
|
|
33
29
|
|
|
34
|
-
var _theme = require("@twreporter/core/lib/constants/theme");
|
|
35
|
-
|
|
36
30
|
var _forEach = _interopRequireDefault(require("lodash/forEach"));
|
|
37
31
|
|
|
38
32
|
var _get = _interopRequireDefault(require("lodash/get"));
|
|
@@ -60,12 +54,12 @@ var Card = /*#__PURE__*/(0, _styledComponents["default"])(_card.ArticleCard).wit
|
|
|
60
54
|
var Container = /*#__PURE__*/_styledComponents["default"].div.withConfig({
|
|
61
55
|
displayName: "card-list__Container",
|
|
62
56
|
componentId: "yvf001-1"
|
|
63
|
-
})(["display:flex;flex-direction:column;
|
|
57
|
+
})(["display:flex;flex-direction:column;"]);
|
|
64
58
|
|
|
65
59
|
var Item = /*#__PURE__*/_styledComponents["default"].div.withConfig({
|
|
66
60
|
displayName: "card-list__Item",
|
|
67
61
|
componentId: "yvf001-2"
|
|
68
|
-
})(["margin-bottom:24px;&:
|
|
62
|
+
})(["margin-bottom:24px;&:last-child{margin-bottom:0;}width:100%;"]);
|
|
69
63
|
|
|
70
64
|
var StyledDivider = /*#__PURE__*/(0, _styledComponents["default"])(_divider["default"]).withConfig({
|
|
71
65
|
displayName: "card-list__StyledDivider",
|
|
@@ -75,7 +69,13 @@ var StyledDivider = /*#__PURE__*/(0, _styledComponents["default"])(_divider["def
|
|
|
75
69
|
var FlexItem = /*#__PURE__*/_styledComponents["default"].div.withConfig({
|
|
76
70
|
displayName: "card-list__FlexItem",
|
|
77
71
|
componentId: "yvf001-4"
|
|
78
|
-
})(["width:", "px;margin:0 auto;display:flex;justify-content:flex-start;align-items:flex-start;flex-wrap:wrap;", " ", " ", ""],
|
|
72
|
+
})(["width:", "px;margin:0 auto;display:flex;justify-content:flex-start;align-items:flex-start;flex-wrap:wrap;", " ", " ", ""], function (props) {
|
|
73
|
+
return props.width !== 0 ? "".concat(props.width, "%") : _mockupSpec["default"].hd.maxWidth;
|
|
74
|
+
}, _mediaQuery["default"].desktopOnly(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n width: ", "px;\n "])), function (props) {
|
|
75
|
+
return props.width !== 0 ? "".concat(props.width, "%") : _mockupSpec["default"].desktop.maxWidth;
|
|
76
|
+
}), _mediaQuery["default"].tabletOnly(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n width: ", "px;\n "])), function (props) {
|
|
77
|
+
return props.width !== 0 ? "".concat(props.width, "%") : _mockupSpec["default"].tablet.maxWidth;
|
|
78
|
+
}), _mediaQuery["default"].mobileOnly(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n width: 100%;\n justify-content: center;\n "]))));
|
|
79
79
|
|
|
80
80
|
var Content = (0, _isFetchingWrapper["default"])(FlexItem);
|
|
81
81
|
|
|
@@ -87,7 +87,11 @@ var CardList = function CardList(_ref) {
|
|
|
87
87
|
_ref$showSpinner = _ref.showSpinner,
|
|
88
88
|
showSpinner = _ref$showSpinner === void 0 ? false : _ref$showSpinner,
|
|
89
89
|
_ref$releaseBranch = _ref.releaseBranch,
|
|
90
|
-
releaseBranch = _ref$releaseBranch === void 0 ? _releaseBranch.BRANCH.master : _ref$releaseBranch
|
|
90
|
+
releaseBranch = _ref$releaseBranch === void 0 ? _releaseBranch.BRANCH.master : _ref$releaseBranch,
|
|
91
|
+
_ref$showIsBookmarked = _ref.showIsBookmarked,
|
|
92
|
+
showIsBookmarked = _ref$showIsBookmarked === void 0 ? false : _ref$showIsBookmarked,
|
|
93
|
+
_ref$width = _ref.width,
|
|
94
|
+
width = _ref$width === void 0 ? 0 : _ref$width;
|
|
91
95
|
|
|
92
96
|
if (!data || data.length === 0) {
|
|
93
97
|
return null;
|
|
@@ -114,11 +118,6 @@ var CardList = function CardList(_ref) {
|
|
|
114
118
|
title = item.title,
|
|
115
119
|
slug = item.slug,
|
|
116
120
|
style = item.style;
|
|
117
|
-
var isInteractiveArticle = style === _theme.ARTICLE_THEME.interactive;
|
|
118
|
-
var link = {
|
|
119
|
-
to: "".concat(isInteractiveArticle ? _entityPath["default"].interactiveArticle : _entityPath["default"].article).concat(slug),
|
|
120
|
-
target: isInteractiveArticle ? '_blank' : ''
|
|
121
|
-
};
|
|
122
121
|
var articleCardProps = {
|
|
123
122
|
title: title,
|
|
124
123
|
description: _.get(item, 'og_description', ''),
|
|
@@ -128,20 +127,27 @@ var CardList = function CardList(_ref) {
|
|
|
128
127
|
},
|
|
129
128
|
category: getFirstCategory(_.get(item, 'category_set', [])),
|
|
130
129
|
date: (0, _date.date2yyyymmdd)(_.get(item, 'published_date'), '/'),
|
|
131
|
-
releaseBranch: releaseBranch
|
|
130
|
+
releaseBranch: releaseBranch,
|
|
131
|
+
style: style,
|
|
132
|
+
slug: slug,
|
|
133
|
+
isBookmarked: _.get(item, 'is_bookmarked', false),
|
|
134
|
+
toggleBookmark: _.get(item, 'toggle_bookmark')
|
|
132
135
|
};
|
|
133
136
|
return /*#__PURE__*/_react["default"].createElement(Item, {
|
|
134
137
|
key: id
|
|
135
|
-
}, /*#__PURE__*/_react["default"].createElement(
|
|
138
|
+
}, /*#__PURE__*/_react["default"].createElement(_rwd.DesktopAndAbove, null, /*#__PURE__*/_react["default"].createElement(Card, _extends({}, articleCardProps, {
|
|
139
|
+
showIsBookmarked: showIsBookmarked,
|
|
136
140
|
size: _card.ArticleCard.Size.L
|
|
137
141
|
}))), /*#__PURE__*/_react["default"].createElement(_rwd.TabletAndBelow, null, /*#__PURE__*/_react["default"].createElement(Card, _extends({}, articleCardProps, {
|
|
142
|
+
showIsBookmarked: showIsBookmarked,
|
|
138
143
|
size: _card.ArticleCard.Size.S
|
|
139
|
-
}))), /*#__PURE__*/_react["default"].createElement(StyledDivider, null))
|
|
144
|
+
}))), /*#__PURE__*/_react["default"].createElement(StyledDivider, null));
|
|
140
145
|
});
|
|
141
146
|
|
|
142
147
|
return /*#__PURE__*/_react["default"].createElement(Container, null, /*#__PURE__*/_react["default"].createElement(Content, {
|
|
143
148
|
isFetching: isFetching,
|
|
144
|
-
showSpinner: showSpinner
|
|
149
|
+
showSpinner: showSpinner,
|
|
150
|
+
width: width
|
|
145
151
|
}, listJSX));
|
|
146
152
|
};
|
|
147
153
|
|
|
@@ -155,11 +161,15 @@ CardList.propTypes = {
|
|
|
155
161
|
category_set: _propTypes["default"].array,
|
|
156
162
|
published_date: _propTypes["default"].string.isRequired,
|
|
157
163
|
slug: _propTypes["default"].string.isRequired,
|
|
158
|
-
style: _propTypes["default"].string
|
|
164
|
+
style: _propTypes["default"].string,
|
|
165
|
+
is_bookmarked: _propTypes["default"].bool,
|
|
166
|
+
toggle_bookmark: _propTypes["default"].func
|
|
159
167
|
})),
|
|
160
168
|
isFetching: _propTypes["default"].bool,
|
|
161
169
|
showSpinner: _propTypes["default"].bool,
|
|
162
|
-
releaseBranch: _releaseBranch.BRANCH_PROP_TYPES
|
|
170
|
+
releaseBranch: _releaseBranch.BRANCH_PROP_TYPES,
|
|
171
|
+
showIsBookmarked: _propTypes["default"].bool,
|
|
172
|
+
width: _propTypes["default"].number
|
|
163
173
|
};
|
|
164
174
|
var _default = CardList;
|
|
165
175
|
exports["default"] = _default;
|
|
@@ -147,7 +147,7 @@ var List = /*#__PURE__*/function (_PureComponent) {
|
|
|
147
147
|
});
|
|
148
148
|
|
|
149
149
|
var headerTitle = catName || (tagName ? "#".concat(tagName) : '');
|
|
150
|
-
var headerJSX = headerTitle ? /*#__PURE__*/_react["default"].createElement(_titleBar.
|
|
150
|
+
var headerJSX = headerTitle ? /*#__PURE__*/_react["default"].createElement(_titleBar.Title1, {
|
|
151
151
|
title: headerTitle !== null && headerTitle !== void 0 ? headerTitle : ''
|
|
152
152
|
}) : null;
|
|
153
153
|
return /*#__PURE__*/_react["default"].createElement(_pageContent["default"], null, headerJSX, /*#__PURE__*/_react["default"].createElement(Items, {
|
|
@@ -166,7 +166,7 @@ var Topics = /*#__PURE__*/function (_Component) {
|
|
|
166
166
|
|
|
167
167
|
topTopicName = _.get(topics, [0, 'topic_name'], '');
|
|
168
168
|
topicUrl = _.get(topics, [0, 'linkTo'], '');
|
|
169
|
-
topSectionJSX = [/*#__PURE__*/_react["default"].createElement(_titleBar.
|
|
169
|
+
topSectionJSX = [/*#__PURE__*/_react["default"].createElement(_titleBar.Title1, {
|
|
170
170
|
key: "top-title",
|
|
171
171
|
title: "\u6DF1\u5EA6\u5C08\u984C",
|
|
172
172
|
subtitle: _topics.TEXT.SECTION_TITLE_FEATURED
|
|
@@ -180,7 +180,7 @@ var Topics = /*#__PURE__*/function (_Component) {
|
|
|
180
180
|
}
|
|
181
181
|
|
|
182
182
|
var WrappedListSectionContent = (0, _isFetchingWrapper["default"])( /*#__PURE__*/_react["default"].createElement(_section.ListSectionContent, null, listedTopicsJSX));
|
|
183
|
-
return /*#__PURE__*/_react["default"].createElement(_pageContent["default"], null, topSectionJSX, isFetching && isFirstPage ? null : /*#__PURE__*/_react["default"].createElement(_titleBar.
|
|
183
|
+
return /*#__PURE__*/_react["default"].createElement(_pageContent["default"], null, topSectionJSX, isFetching && isFirstPage ? null : /*#__PURE__*/_react["default"].createElement(_titleBar.Title1, {
|
|
184
184
|
subtitle: _topics.TEXT.SECTION_TITLE_OTHERS
|
|
185
185
|
}), /*#__PURE__*/_react["default"].createElement(WrappedListSectionContent, {
|
|
186
186
|
isFetching: isFetching,
|
|
@@ -194,7 +194,7 @@ var Topics = /*#__PURE__*/function (_Component) {
|
|
|
194
194
|
|
|
195
195
|
Topics.propTypes = {
|
|
196
196
|
topics: _propTypes["default"].arrayOf(_propTypes["default"].shape({
|
|
197
|
-
id: _propTypes["default"].string.isRequired,
|
|
197
|
+
id: _propTypes["default"].oneOfType([_propTypes["default"].number, _propTypes["default"].string]).isRequired,
|
|
198
198
|
linkTo: _propTypes["default"].string.isRequired,
|
|
199
199
|
title: _propTypes["default"].string.isRequired,
|
|
200
200
|
topic_name: _propTypes["default"].string.isRequired,
|
|
@@ -39,7 +39,8 @@ var card = {
|
|
|
39
39
|
hero_image: {
|
|
40
40
|
description: 'test'
|
|
41
41
|
},
|
|
42
|
-
slug: 'this-is-a-test-article'
|
|
42
|
+
slug: 'this-is-a-test-article',
|
|
43
|
+
is_bookmarked: true
|
|
43
44
|
}, {
|
|
44
45
|
id: '12347',
|
|
45
46
|
title: '文章標題',
|
|
@@ -72,7 +73,9 @@ var card = {
|
|
|
72
73
|
},
|
|
73
74
|
slug: 'this-is-a-test-article-2'
|
|
74
75
|
}],
|
|
75
|
-
releaseBranch: _releaseBranch.BRANCH.master
|
|
76
|
+
releaseBranch: _releaseBranch.BRANCH.master,
|
|
77
|
+
showIsBookmarked: false,
|
|
78
|
+
width: 100
|
|
76
79
|
}
|
|
77
80
|
};
|
|
78
81
|
exports.card = card;
|
package/lib/text/headline.js
CHANGED
|
@@ -61,13 +61,13 @@ var H4Container = /*#__PURE__*/(0, _styledComponents["default"])(DefaultContaine
|
|
|
61
61
|
componentId: "axdp97-4"
|
|
62
62
|
})(["line-height:150%;font-size:22px;font-family:", ";", ""], function (props) {
|
|
63
63
|
return props.fontFamily;
|
|
64
|
-
}, _mediaQuery["default"].tabletAndBelow(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n font-size:
|
|
64
|
+
}, _mediaQuery["default"].tabletAndBelow(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n font-size: 18px;\n "]))));
|
|
65
65
|
var H5Container = /*#__PURE__*/(0, _styledComponents["default"])(DefaultContainer).withConfig({
|
|
66
66
|
displayName: "headline__H5Container",
|
|
67
67
|
componentId: "axdp97-5"
|
|
68
68
|
})(["line-height:150%;font-size:18px;font-family:", ";", ""], function (props) {
|
|
69
69
|
return props.fontFamily;
|
|
70
|
-
}, _mediaQuery["default"].tabletAndBelow(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["\n font-size:
|
|
70
|
+
}, _mediaQuery["default"].tabletAndBelow(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["\n font-size: 17px;\n "]))));
|
|
71
71
|
var H6Container = /*#__PURE__*/(0, _styledComponents["default"])(DefaultContainer).withConfig({
|
|
72
72
|
displayName: "headline__H6Container",
|
|
73
73
|
componentId: "axdp97-6"
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports["default"] = void 0;
|
|
7
|
+
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
|
|
10
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
11
|
+
|
|
12
|
+
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
13
|
+
|
|
14
|
+
var _headline = require("../../text/headline");
|
|
15
|
+
|
|
16
|
+
var _paragraph = require("../../text/paragraph");
|
|
17
|
+
|
|
18
|
+
var _divider = _interopRequireDefault(require("../../divider"));
|
|
19
|
+
|
|
20
|
+
var _color = require("@twreporter/core/lib/constants/color");
|
|
21
|
+
|
|
22
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
23
|
+
|
|
24
|
+
// component
|
|
25
|
+
// @twreporter
|
|
26
|
+
var BarContainer = /*#__PURE__*/_styledComponents["default"].div.withConfig({
|
|
27
|
+
displayName: "title1__BarContainer",
|
|
28
|
+
componentId: "l5ydji-0"
|
|
29
|
+
})(["width:100%;display:flex;align-items:baseline;gap:16px;align-self:stretch;margin-bottom:16px;"]);
|
|
30
|
+
|
|
31
|
+
var H2Gray800 = /*#__PURE__*/(0, _styledComponents["default"])(_headline.H2).withConfig({
|
|
32
|
+
displayName: "title1__H2Gray800",
|
|
33
|
+
componentId: "l5ydji-1"
|
|
34
|
+
})(["color:", ";"], _color.colorGrayscale.gray800);
|
|
35
|
+
var P1Gray600 = /*#__PURE__*/(0, _styledComponents["default"])(_paragraph.P1).withConfig({
|
|
36
|
+
displayName: "title1__P1Gray600",
|
|
37
|
+
componentId: "l5ydji-2"
|
|
38
|
+
})(["color:", ";"], _color.colorGrayscale.gray600);
|
|
39
|
+
|
|
40
|
+
var Title1 = function Title1(_ref) {
|
|
41
|
+
var _ref$title = _ref.title,
|
|
42
|
+
title = _ref$title === void 0 ? '' : _ref$title,
|
|
43
|
+
_ref$subtitle = _ref.subtitle,
|
|
44
|
+
subtitle = _ref$subtitle === void 0 ? '' : _ref$subtitle;
|
|
45
|
+
return /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(BarContainer, null, /*#__PURE__*/_react["default"].createElement(H2Gray800, {
|
|
46
|
+
text: title
|
|
47
|
+
}), subtitle ? /*#__PURE__*/_react["default"].createElement(P1Gray600, {
|
|
48
|
+
text: subtitle
|
|
49
|
+
}) : null), /*#__PURE__*/_react["default"].createElement(_divider["default"], {
|
|
50
|
+
direction: _divider["default"].Direction.HORIZONTAL
|
|
51
|
+
}));
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
Title1.propTypes = {
|
|
55
|
+
title: _propTypes["default"].string.isRequired,
|
|
56
|
+
subtitle: _propTypes["default"].string
|
|
57
|
+
};
|
|
58
|
+
var _default = Title1;
|
|
59
|
+
exports["default"] = _default;
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports["default"] = void 0;
|
|
7
|
+
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
|
|
10
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
11
|
+
|
|
12
|
+
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
13
|
+
|
|
14
|
+
var _headline = require("../../text/headline");
|
|
15
|
+
|
|
16
|
+
var _paragraph = require("../../text/paragraph");
|
|
17
|
+
|
|
18
|
+
var _divider = _interopRequireDefault(require("../../divider"));
|
|
19
|
+
|
|
20
|
+
var _rwd = require("../../rwd");
|
|
21
|
+
|
|
22
|
+
var _sharedEnum = require("../../shared-enum");
|
|
23
|
+
|
|
24
|
+
var _color = require("@twreporter/core/lib/constants/color");
|
|
25
|
+
|
|
26
|
+
var _mediaQuery = _interopRequireDefault(require("@twreporter/core/lib/utils/media-query"));
|
|
27
|
+
|
|
28
|
+
var _templateObject;
|
|
29
|
+
|
|
30
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
31
|
+
|
|
32
|
+
function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
|
|
33
|
+
|
|
34
|
+
var BarContainer = /*#__PURE__*/_styledComponents["default"].div.withConfig({
|
|
35
|
+
displayName: "title2__BarContainer",
|
|
36
|
+
componentId: "t8u2lz-0"
|
|
37
|
+
})(["width:100%;display:flex;align-self:stretch;margin-bottom:16px;justify-content:space-between;", ""], _mediaQuery["default"].tabletAndBelow(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n margin-bottom: 8px;\n "]))));
|
|
38
|
+
|
|
39
|
+
var Text = /*#__PURE__*/_styledComponents["default"].div.withConfig({
|
|
40
|
+
displayName: "title2__Text",
|
|
41
|
+
componentId: "t8u2lz-1"
|
|
42
|
+
})(["display:flex;align-items:baseline;gap:16px;"]);
|
|
43
|
+
|
|
44
|
+
var H5Gray800 = /*#__PURE__*/(0, _styledComponents["default"])(_headline.H5).withConfig({
|
|
45
|
+
displayName: "title2__H5Gray800",
|
|
46
|
+
componentId: "t8u2lz-2"
|
|
47
|
+
})(["color:", ";"], _color.colorGrayscale.gray800);
|
|
48
|
+
var P2Gray600 = /*#__PURE__*/(0, _styledComponents["default"])(_paragraph.P2).withConfig({
|
|
49
|
+
displayName: "title2__P2Gray600",
|
|
50
|
+
componentId: "t8u2lz-3"
|
|
51
|
+
})(["color:", ";"], _color.colorGrayscale.gray600);
|
|
52
|
+
var DividerGray800 = /*#__PURE__*/(0, _styledComponents["default"])(_divider["default"]).withConfig({
|
|
53
|
+
displayName: "title2__DividerGray800",
|
|
54
|
+
componentId: "t8u2lz-4"
|
|
55
|
+
})(["border-color:", ";"], _color.colorGrayscale.gray800);
|
|
56
|
+
|
|
57
|
+
var Title2 = function Title2(_ref) {
|
|
58
|
+
var _ref$title = _ref.title,
|
|
59
|
+
title = _ref$title === void 0 ? '' : _ref$title,
|
|
60
|
+
_ref$subtitle = _ref.subtitle,
|
|
61
|
+
subtitle = _ref$subtitle === void 0 ? '' : _ref$subtitle,
|
|
62
|
+
renderButton = _ref.renderButton;
|
|
63
|
+
return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_rwd.DesktopAndAbove, null, /*#__PURE__*/_react["default"].createElement(BarContainer, null, /*#__PURE__*/_react["default"].createElement(Text, null, /*#__PURE__*/_react["default"].createElement(H5Gray800, {
|
|
64
|
+
text: title
|
|
65
|
+
}), subtitle ? /*#__PURE__*/_react["default"].createElement(P2Gray600, {
|
|
66
|
+
text: subtitle
|
|
67
|
+
}) : null), renderButton ? renderButton(_sharedEnum.Size.L) : null), /*#__PURE__*/_react["default"].createElement(DividerGray800, {
|
|
68
|
+
direction: _divider["default"].Direction.HORIZONTAL
|
|
69
|
+
})), /*#__PURE__*/_react["default"].createElement(_rwd.TabletAndBelow, null, /*#__PURE__*/_react["default"].createElement(BarContainer, null, /*#__PURE__*/_react["default"].createElement(Text, null, /*#__PURE__*/_react["default"].createElement(H5Gray800, {
|
|
70
|
+
text: title
|
|
71
|
+
}), subtitle ? /*#__PURE__*/_react["default"].createElement(P2Gray600, {
|
|
72
|
+
text: subtitle
|
|
73
|
+
}) : null), renderButton ? renderButton(_sharedEnum.Size.S) : null), /*#__PURE__*/_react["default"].createElement(DividerGray800, {
|
|
74
|
+
direction: _divider["default"].Direction.HORIZONTAL
|
|
75
|
+
})));
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
Title2.propTypes = {
|
|
79
|
+
title: _propTypes["default"].string.isRequired,
|
|
80
|
+
subtitle: _propTypes["default"].string,
|
|
81
|
+
renderButton: _propTypes["default"].func
|
|
82
|
+
};
|
|
83
|
+
var _default = Title2;
|
|
84
|
+
exports["default"] = _default;
|
package/lib/title-bar/index.js
CHANGED
|
@@ -3,10 +3,16 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
Object.defineProperty(exports, "
|
|
6
|
+
Object.defineProperty(exports, "Title1", {
|
|
7
7
|
enumerable: true,
|
|
8
8
|
get: function get() {
|
|
9
|
-
return
|
|
9
|
+
return _title["default"];
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
Object.defineProperty(exports, "Title2", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function get() {
|
|
15
|
+
return _title2["default"];
|
|
10
16
|
}
|
|
11
17
|
});
|
|
12
18
|
Object.defineProperty(exports, "TitleTab", {
|
|
@@ -17,14 +23,17 @@ Object.defineProperty(exports, "TitleTab", {
|
|
|
17
23
|
});
|
|
18
24
|
exports["default"] = void 0;
|
|
19
25
|
|
|
20
|
-
var
|
|
26
|
+
var _title = _interopRequireDefault(require("./components/title1"));
|
|
27
|
+
|
|
28
|
+
var _title2 = _interopRequireDefault(require("./components/title2"));
|
|
21
29
|
|
|
22
30
|
var _tab = _interopRequireDefault(require("./components/tab"));
|
|
23
31
|
|
|
24
32
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
25
33
|
|
|
26
34
|
var _default = {
|
|
27
|
-
|
|
35
|
+
Title1: _title["default"],
|
|
36
|
+
Title2: _title2["default"],
|
|
28
37
|
TitleTab: _tab["default"]
|
|
29
38
|
};
|
|
30
39
|
exports["default"] = _default;
|
|
@@ -5,13 +5,13 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.tagBar = exports["default"] = exports.bookmarkBar = exports.bar = void 0;
|
|
7
7
|
|
|
8
|
-
var
|
|
8
|
+
var _title = _interopRequireDefault(require("../components/title1"));
|
|
9
9
|
|
|
10
10
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
11
11
|
|
|
12
12
|
var _default = {
|
|
13
|
-
title: 'Title Bar/
|
|
14
|
-
component:
|
|
13
|
+
title: 'Title Bar/Title 1',
|
|
14
|
+
component: _title["default"]
|
|
15
15
|
};
|
|
16
16
|
exports["default"] = _default;
|
|
17
17
|
var bar = {
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.title2 = exports["default"] = void 0;
|
|
7
|
+
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
|
|
10
|
+
var _title = _interopRequireDefault(require("../components/title2"));
|
|
11
|
+
|
|
12
|
+
var _textButton = _interopRequireDefault(require("../../button/components/textButton"));
|
|
13
|
+
|
|
14
|
+
var _icon = require("../../icon");
|
|
15
|
+
|
|
16
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
17
|
+
|
|
18
|
+
/* eslint react/display-name:0 */
|
|
19
|
+
var _default = {
|
|
20
|
+
title: 'Title Bar/Title 2',
|
|
21
|
+
component: _title["default"],
|
|
22
|
+
argTypes: {
|
|
23
|
+
// showButton is only for storybook check
|
|
24
|
+
showButton: {
|
|
25
|
+
defaultValue: true,
|
|
26
|
+
control: {
|
|
27
|
+
type: 'boolean'
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
exports["default"] = _default;
|
|
33
|
+
var title2 = {
|
|
34
|
+
render: function render(args) {
|
|
35
|
+
args.renderButton = args.showButton ? function (size) {
|
|
36
|
+
return /*#__PURE__*/_react["default"].createElement(_textButton["default"], {
|
|
37
|
+
text: "RWD \u6309\u9215",
|
|
38
|
+
rightIconComponent: /*#__PURE__*/_react["default"].createElement(_icon.Arrow, {
|
|
39
|
+
direction: "right"
|
|
40
|
+
}),
|
|
41
|
+
size: size
|
|
42
|
+
});
|
|
43
|
+
} : null;
|
|
44
|
+
return /*#__PURE__*/_react["default"].createElement(_title["default"], args);
|
|
45
|
+
},
|
|
46
|
+
args: {
|
|
47
|
+
title: 'RWD 標題',
|
|
48
|
+
subtitle: '副標',
|
|
49
|
+
showButton: true
|
|
50
|
+
},
|
|
51
|
+
parameters: {
|
|
52
|
+
controls: {
|
|
53
|
+
exclude: ['renderButton']
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
exports.title2 = title2;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@twreporter/react-components",
|
|
3
|
-
"version": "8.24.0-rc.
|
|
3
|
+
"version": "8.24.0-rc.3",
|
|
4
4
|
"main": "lib/index.js",
|
|
5
5
|
"repository": "https://github.com/twreporter/twreporter-npm-packages.git",
|
|
6
6
|
"author": "twreporter <developer@twreporter.org>",
|
|
@@ -15,8 +15,8 @@
|
|
|
15
15
|
"chromatic": "npx chromatic --exit-zero-on-changes"
|
|
16
16
|
},
|
|
17
17
|
"dependencies": {
|
|
18
|
-
"@twreporter/core": "^1.
|
|
19
|
-
"@twreporter/redux": "^7.10.0-rc.
|
|
18
|
+
"@twreporter/core": "^1.17.0-rc.0",
|
|
19
|
+
"@twreporter/redux": "^7.10.0-rc.2",
|
|
20
20
|
"fontfaceobserver-es": "^3.3.3",
|
|
21
21
|
"hoist-non-react-statics": "^2.3.1",
|
|
22
22
|
"lodash": "^4.0.0",
|
|
@@ -51,5 +51,5 @@
|
|
|
51
51
|
"react-dom": "^16.0.0",
|
|
52
52
|
"storybook": "^7.5.2"
|
|
53
53
|
},
|
|
54
|
-
"gitHead": "
|
|
54
|
+
"gitHead": "fae9f717d3c7766dc48a538d5cf1f5c8d2d93f6d"
|
|
55
55
|
}
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports["default"] = void 0;
|
|
7
|
-
|
|
8
|
-
var _react = _interopRequireDefault(require("react"));
|
|
9
|
-
|
|
10
|
-
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
11
|
-
|
|
12
|
-
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
13
|
-
|
|
14
|
-
var _headline = require("../../text/headline");
|
|
15
|
-
|
|
16
|
-
var _paragraph = require("../../text/paragraph");
|
|
17
|
-
|
|
18
|
-
var _divider = _interopRequireDefault(require("../../divider"));
|
|
19
|
-
|
|
20
|
-
var _color = require("@twreporter/core/lib/constants/color");
|
|
21
|
-
|
|
22
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
23
|
-
|
|
24
|
-
// component
|
|
25
|
-
// @twreporter
|
|
26
|
-
var BarContainer = /*#__PURE__*/_styledComponents["default"].div.withConfig({
|
|
27
|
-
displayName: "bar__BarContainer",
|
|
28
|
-
componentId: "sc-18ncllq-0"
|
|
29
|
-
})(["display:flex;width:100%;flex-direction:column;color:", ";& > div{margin-bottom:16px;&:last-child{margin-bottom:0;}}"], _color.colorGrayscale.gray800);
|
|
30
|
-
|
|
31
|
-
var TitleBar = function TitleBar(_ref) {
|
|
32
|
-
var _ref$title = _ref.title,
|
|
33
|
-
title = _ref$title === void 0 ? '' : _ref$title,
|
|
34
|
-
_ref$subtitle = _ref.subtitle,
|
|
35
|
-
subtitle = _ref$subtitle === void 0 ? '' : _ref$subtitle;
|
|
36
|
-
return /*#__PURE__*/_react["default"].createElement(BarContainer, null, title ? /*#__PURE__*/_react["default"].createElement(_headline.H1, {
|
|
37
|
-
text: title
|
|
38
|
-
}) : null, subtitle ? /*#__PURE__*/_react["default"].createElement(_paragraph.P1, {
|
|
39
|
-
text: subtitle,
|
|
40
|
-
weight: _paragraph.P1.Weight.BOLD
|
|
41
|
-
}) : null, /*#__PURE__*/_react["default"].createElement(_divider["default"], {
|
|
42
|
-
direction: _divider["default"].Direction.HORIZONTAL
|
|
43
|
-
}));
|
|
44
|
-
};
|
|
45
|
-
|
|
46
|
-
TitleBar.propTypes = {
|
|
47
|
-
title: _propTypes["default"].string,
|
|
48
|
-
subtitle: _propTypes["default"].string
|
|
49
|
-
};
|
|
50
|
-
var _default = TitleBar;
|
|
51
|
-
exports["default"] = _default;
|