@twreporter/react-components 8.17.0-rc.1 → 8.17.0-rc.11

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.
Files changed (92) hide show
  1. package/CHANGELOG.md +304 -784
  2. package/lib/bookmark-list/bookmarks.js +18 -2
  3. package/lib/button/components/iconButton.js +7 -5
  4. package/lib/button/components/iconWithTextButton.js +7 -6
  5. package/lib/button/components/link.js +84 -0
  6. package/lib/button/components/pillButton.js +35 -17
  7. package/lib/button/components/textButton.js +17 -14
  8. package/lib/button/constants/index.js +2 -15
  9. package/lib/button/enums/index.js +22 -0
  10. package/lib/button/index.js +10 -1
  11. package/lib/button/stories/iconButton.stories.js +10 -8
  12. package/lib/button/stories/iconWithTextButton.stories.js +4 -4
  13. package/lib/button/stories/link.stories.js +81 -0
  14. package/lib/button/stories/pillButton.stories.js +51 -20
  15. package/lib/button/stories/textButton.stories.js +52 -23
  16. package/lib/button/utils/size.js +2 -2
  17. package/lib/button/utils/theme.js +85 -43
  18. package/lib/card/components/article-card.js +192 -0
  19. package/lib/card/components/dialog.js +6 -3
  20. package/lib/card/index.js +10 -1
  21. package/lib/card/stories/articleCard.stories.js +55 -0
  22. package/lib/card/stories/dialog.stories.js +7 -2
  23. package/lib/checkbox/checkbox.stories.js +39 -0
  24. package/lib/checkbox/index.js +99 -0
  25. package/lib/divider.js +8 -2
  26. package/lib/divider.stories.js +3 -3
  27. package/lib/empty-state/enums/index.js +12 -0
  28. package/lib/empty-state/index.js +114 -0
  29. package/lib/empty-state/stories/empty-guide.stories.js +42 -0
  30. package/lib/icon/enum/index.js +34 -0
  31. package/lib/icon/index.js +99 -222
  32. package/lib/icon/stories/arrow.stories.js +7 -7
  33. package/lib/icon/stories/article.stories.js +2 -2
  34. package/lib/icon/stories/bookmark.stories.js +6 -6
  35. package/lib/icon/stories/clock.stories.js +2 -2
  36. package/lib/icon/stories/copy.stories.js +2 -2
  37. package/lib/icon/stories/cross.stories.js +2 -2
  38. package/lib/icon/stories/hamburger.stories.js +2 -2
  39. package/lib/icon/stories/home.stories.js +2 -2
  40. package/lib/icon/stories/letter.stories.js +29 -0
  41. package/lib/icon/stories/loading.stories.js +2 -2
  42. package/lib/icon/stories/member.stories.js +2 -2
  43. package/lib/icon/stories/printer.stories.js +2 -2
  44. package/lib/icon/stories/search.stories.js +2 -2
  45. package/lib/icon/stories/share.stories.js +2 -2
  46. package/lib/icon/stories/socialMedia.stories.js +7 -25
  47. package/lib/icon/stories/text.stories.js +2 -2
  48. package/lib/icon/stories/topic.stories.js +2 -2
  49. package/lib/image-with-fallback.js +141 -0
  50. package/lib/input/components/search-bar.js +6 -4
  51. package/lib/input/enums/index.js +11 -0
  52. package/lib/input/stories/search-bar.stories.js +8 -7
  53. package/lib/input/utils/theme.js +5 -3
  54. package/lib/listing-page/components/card-list.js +165 -0
  55. package/lib/listing-page/components/image.js +3 -0
  56. package/lib/listing-page/components/list.js +13 -8
  57. package/lib/listing-page/constants/prop-types.js +25 -0
  58. package/lib/listing-page/index.js +10 -1
  59. package/lib/listing-page/stories/cardList.stories.js +83 -0
  60. package/lib/logo/components/logo-header.js +8 -2
  61. package/lib/logo/components/logo-loading-fallback.js +43 -0
  62. package/lib/logo/components/logo-symbol.js +9 -2
  63. package/lib/logo/index.js +10 -1
  64. package/lib/logo/stories/logoFooter.stories.js +2 -2
  65. package/lib/logo/stories/logoHeader.stories.js +3 -3
  66. package/lib/logo/stories/logoLoadingFallback.stories.js +29 -0
  67. package/lib/logo/stories/logoSymbol.stories.js +3 -3
  68. package/lib/logo/utils/path.js +5 -0
  69. package/lib/material-icon.js +53 -0
  70. package/lib/pagination/index.js +8 -5
  71. package/lib/shared-enum.js +11 -0
  72. package/lib/snack-bar/components/snack-bar.js +2 -1
  73. package/lib/snack-bar/stories/snackBar.stories.js +4 -4
  74. package/lib/storybook/constants/index.js +27 -0
  75. package/lib/storybook/utils/get-enum-arg.js +18 -0
  76. package/lib/text/constants/headline-type.js +5 -24
  77. package/lib/text/enums/index.js +17 -0
  78. package/lib/text/headline.js +5 -2
  79. package/lib/text/paragraph.js +9 -6
  80. package/lib/text/stories/headline.stories.js +5 -3
  81. package/lib/text/stories/paragraph.stories.js +5 -3
  82. package/lib/title-bar/components/bar.js +2 -2
  83. package/lib/title-bar/components/tab.js +2 -2
  84. package/package.json +5 -4
  85. package/lib/bookmark-list/empty-guide.js +0 -81
  86. package/lib/bookmark-list/stories/empty-guide.stories.js +0 -39
  87. package/lib/button/constants/size.js +0 -28
  88. package/lib/button/constants/type.js +0 -28
  89. package/lib/input/constants/type.js +0 -20
  90. package/lib/text/constants/font-weight.js +0 -29
  91. package/lib/text/link.js +0 -87
  92. package/lib/text/stories/link.stories.js +0 -42
@@ -0,0 +1,165 @@
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 _card = require("../../card");
15
+
16
+ var _isFetchingWrapper = _interopRequireDefault(require("../../is-fetching-wrapper"));
17
+
18
+ var _divider = _interopRequireDefault(require("../../divider"));
19
+
20
+ var _customizedLink = _interopRequireDefault(require("../../customized-link"));
21
+
22
+ var _rwd = require("../../rwd");
23
+
24
+ var _mockupSpec = _interopRequireDefault(require("../constants/mockup-spec"));
25
+
26
+ var _entityPath = _interopRequireDefault(require("@twreporter/core/lib/constants/entity-path"));
27
+
28
+ var _mediaQuery = _interopRequireDefault(require("@twreporter/core/lib/utils/media-query"));
29
+
30
+ var _date = require("@twreporter/core/lib/utils/date");
31
+
32
+ var _releaseBranch = require("@twreporter/core/lib/constants/release-branch");
33
+
34
+ var _theme = require("@twreporter/core/lib/constants/theme");
35
+
36
+ var _forEach = _interopRequireDefault(require("lodash/forEach"));
37
+
38
+ var _get = _interopRequireDefault(require("lodash/get"));
39
+
40
+ var _map = _interopRequireDefault(require("lodash/map"));
41
+
42
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4;
43
+
44
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
45
+
46
+ function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
47
+
48
+ function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
49
+
50
+ var _ = {
51
+ forEach: _forEach["default"],
52
+ get: _get["default"],
53
+ map: _map["default"]
54
+ };
55
+ var Card = /*#__PURE__*/(0, _styledComponents["default"])(_card.ArticleCard).withConfig({
56
+ displayName: "card-list__Card",
57
+ componentId: "yvf001-0"
58
+ })(["width:100%;"]);
59
+
60
+ var Container = /*#__PURE__*/_styledComponents["default"].div.withConfig({
61
+ displayName: "card-list__Container",
62
+ componentId: "yvf001-1"
63
+ })(["display:flex;flex-direction:column;a{color:inherit;text-decoration:none;}"]);
64
+
65
+ var Item = /*#__PURE__*/_styledComponents["default"].div.withConfig({
66
+ displayName: "card-list__Item",
67
+ componentId: "yvf001-2"
68
+ })(["margin-bottom:24px;&:hover{opacity:0.7;}&:last-child{margin-bottom:0;}width:100%;", ""], _mediaQuery["default"].mobileOnly(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n width: ", "%;\n "])), _mockupSpec["default"].mobile.cardWidth / _mockupSpec["default"].mobile.maxWidth * 100));
69
+
70
+ var StyledDivider = /*#__PURE__*/(0, _styledComponents["default"])(_divider["default"]).withConfig({
71
+ displayName: "card-list__StyledDivider",
72
+ componentId: "yvf001-3"
73
+ })(["margin-top:24px;"]);
74
+
75
+ var FlexItem = /*#__PURE__*/_styledComponents["default"].div.withConfig({
76
+ displayName: "card-list__FlexItem",
77
+ componentId: "yvf001-4"
78
+ })(["width:", "px;margin:0 auto;display:flex;justify-content:flex-start;align-items:flex-start;flex-wrap:wrap;", " ", " ", ""], _mockupSpec["default"].hd.maxWidth, _mediaQuery["default"].desktopOnly(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n width: ", "px;\n "])), _mockupSpec["default"].desktop.maxWidth), _mediaQuery["default"].tabletOnly(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n width: ", "px;\n "])), _mockupSpec["default"].tablet.maxWidth), _mediaQuery["default"].mobileOnly(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n width: 100%;\n justify-content: center;\n "]))));
79
+
80
+ var Content = (0, _isFetchingWrapper["default"])(FlexItem);
81
+
82
+ var CardList = function CardList(_ref) {
83
+ var _ref$data = _ref.data,
84
+ data = _ref$data === void 0 ? [] : _ref$data,
85
+ _ref$isFetching = _ref.isFetching,
86
+ isFetching = _ref$isFetching === void 0 ? false : _ref$isFetching,
87
+ _ref$showSpinner = _ref.showSpinner,
88
+ showSpinner = _ref$showSpinner === void 0 ? false : _ref$showSpinner,
89
+ _ref$releaseBranch = _ref.releaseBranch,
90
+ releaseBranch = _ref$releaseBranch === void 0 ? _releaseBranch.BRANCH.master : _ref$releaseBranch;
91
+
92
+ if (!data || data.length === 0) {
93
+ return null;
94
+ }
95
+
96
+ var getFirstCategory = function getFirstCategory(categorySets) {
97
+ var res = '';
98
+
99
+ _.forEach(categorySets, function (_ref2) {
100
+ var category = _ref2.category,
101
+ subcategory = _ref2.subcategory;
102
+
103
+ if (category && category.name) {
104
+ res = category.name;
105
+ return false;
106
+ }
107
+ });
108
+
109
+ return res;
110
+ };
111
+
112
+ var listJSX = _.map(data, function (item) {
113
+ var id = item.id,
114
+ title = item.title,
115
+ slug = item.slug,
116
+ 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
+ var articleCardProps = {
123
+ title: title,
124
+ description: _.get(item, 'og_description', ''),
125
+ image: {
126
+ alt: _.get(item, 'hero_image.description', ''),
127
+ src: _.get(item, 'hero_image.resized_targets.mobile.url') || _.get(item, 'og_image.resized_targets.mobile.url')
128
+ },
129
+ category: getFirstCategory(_.get(item, 'category_set', [])),
130
+ date: (0, _date.date2yyyymmdd)(_.get(item, 'published_date'), '/'),
131
+ releaseBranch: releaseBranch
132
+ };
133
+ return /*#__PURE__*/_react["default"].createElement(Item, {
134
+ key: id
135
+ }, /*#__PURE__*/_react["default"].createElement(_customizedLink["default"], link, /*#__PURE__*/_react["default"].createElement(_rwd.DesktopAndAbove, null, /*#__PURE__*/_react["default"].createElement(Card, _extends({}, articleCardProps, {
136
+ size: _card.ArticleCard.Size.L
137
+ }))), /*#__PURE__*/_react["default"].createElement(_rwd.TabletAndBelow, null, /*#__PURE__*/_react["default"].createElement(Card, _extends({}, articleCardProps, {
138
+ size: _card.ArticleCard.Size.S
139
+ }))), /*#__PURE__*/_react["default"].createElement(StyledDivider, null)));
140
+ });
141
+
142
+ return /*#__PURE__*/_react["default"].createElement(Container, null, /*#__PURE__*/_react["default"].createElement(Content, {
143
+ isFetching: isFetching,
144
+ showSpinner: showSpinner
145
+ }, listJSX));
146
+ };
147
+
148
+ CardList.propTypes = {
149
+ data: _propTypes["default"].arrayOf(_propTypes["default"].shape({
150
+ id: _propTypes["default"].string.isRequired,
151
+ title: _propTypes["default"].string.isRequired,
152
+ og_description: _propTypes["default"].string.isRequired,
153
+ hero_image: _propTypes["default"].object,
154
+ og_image: _propTypes["default"].object,
155
+ category_set: _propTypes["default"].array,
156
+ published_date: _propTypes["default"].string.isRequired,
157
+ slug: _propTypes["default"].string.isRequired,
158
+ style: _propTypes["default"].string
159
+ })),
160
+ isFetching: _propTypes["default"].bool,
161
+ showSpinner: _propTypes["default"].bool,
162
+ releaseBranch: _releaseBranch.BRANCH_PROP_TYPES
163
+ };
164
+ var _default = CardList;
165
+ exports["default"] = _default;
@@ -41,6 +41,9 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re
41
41
 
42
42
  function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
43
43
 
44
+ /* Notice: this component is deprecated.
45
+ * Please migrate to use @twerporter/react-components/lib/image-with-fallback.js
46
+ */
44
47
  var LogoIcon = function LogoIcon(props) {
45
48
  return /*#__PURE__*/_react["default"].createElement("svg", props, /*#__PURE__*/_react["default"].createElement("title", null, "Fill 1"), /*#__PURE__*/_react["default"].createElement("path", {
46
49
  d: "M5 112.563a5.001 5.001 0 0 1-5-5V4.999C0 3.298.866 1.713 2.298.794A5.003 5.003 0 0 1 7.08.451l42.724 19.521a5 5 0 0 1-4.156 9.097L10 12.783V99.78l49.843-22.775V32.014a5 5 0 0 1 3.669-4.82l37.105-10.247a4.999 4.999 0 0 1 6.331 4.819v67.44a5.003 5.003 0 0 1-6.142 4.868l-20.106-4.716a5 5 0 0 1 2.284-9.736l13.965 3.275V28.332L69.844 35.82v44.4a5 5 0 0 1-2.922 4.549L7.078 112.11a4.996 4.996 0 0 1-2.079.451",
@@ -21,6 +21,8 @@ var _date = require("@twreporter/core/lib/utils/date");
21
21
 
22
22
  var _font = require("@twreporter/core/lib/constants/font");
23
23
 
24
+ var _theme = require("@twreporter/core/lib/constants/theme");
25
+
24
26
  var _mockupSpec = _interopRequireDefault(require("../constants/mockup-spec"));
25
27
 
26
28
  var _color = _interopRequireDefault(require("../constants/color"));
@@ -107,16 +109,17 @@ var List = /*#__PURE__*/function (_PureComponent) {
107
109
  catName = _this$props.catName,
108
110
  tagName = _this$props.tagName,
109
111
  isFetching = _this$props.isFetching,
110
- showSpinner = _this$props.showSpinner;
112
+ showSpinner = _this$props.showSpinner,
113
+ showCategory = _this$props.showCategory;
111
114
  var listJSX = [];
112
115
 
113
116
  _.forEach(data, function (item) {
114
117
  var style = _.get(item, 'style');
115
118
 
116
- var slug = _.get(item, 'slug'); // TODO extract interactive as to a const file
117
-
119
+ var slug = _.get(item, 'slug');
118
120
 
119
- var to = style === 'interactive' ? _entityPath["default"].interactiveArticle + slug : _entityPath["default"].article + slug;
121
+ var isInteractiveArticle = style === _theme.ARTICLE_THEME.interactive;
122
+ var to = "".concat(isInteractiveArticle ? _entityPath["default"].interactiveArticle : _entityPath["default"].article).concat(slug);
120
123
 
121
124
  var tags = _.map(_.get(item, 'tags'), function (tag) {
122
125
  if (_.get(tag, 'name') === tagName) {
@@ -143,12 +146,12 @@ var List = /*#__PURE__*/function (_PureComponent) {
143
146
  // In cases which do not have `hero_image`, display `og_image` as fallback.
144
147
  src: _.get(item, 'hero_image.resized_targets.mobile.url') || _.get(item, 'og_image.resized_targets.mobile.url')
145
148
  },
146
- category: _.get(item, 'categories.0.name', ''),
149
+ category: showCategory && _.get(item, 'category_set.0.category.name', ''),
147
150
  pubDate: (0, _date.date2yyyymmdd)(_.get(item, 'published_date', ''), '.'),
148
151
  tags: tags,
149
152
  link: {
150
153
  to: to,
151
- target: style === 'interactive' ? '_blank' : ''
154
+ target: isInteractiveArticle ? '_blank' : ''
152
155
  }
153
156
  }));
154
157
  });
@@ -170,7 +173,8 @@ List.defaultProps = {
170
173
  catName: '',
171
174
  tagName: '',
172
175
  isFetching: false,
173
- showSpinner: false
176
+ showSpinner: false,
177
+ showCategory: false
174
178
  };
175
179
  List.propTypes = {
176
180
  data: _propTypes["default"].arrayOf(_propTypes["default"].shape({
@@ -186,7 +190,8 @@ List.propTypes = {
186
190
  tagName: _propTypes["default"].string,
187
191
  catName: _propTypes["default"].string,
188
192
  isFetching: _propTypes["default"].bool,
189
- showSpinner: _propTypes["default"].bool
193
+ showSpinner: _propTypes["default"].bool,
194
+ showCategory: _propTypes["default"].bool
190
195
  };
191
196
  var _default = List;
192
197
  exports["default"] = _default;
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.ARTICLE_PROP_TYPES = void 0;
7
+
8
+ var _propTypes = _interopRequireDefault(require("prop-types"));
9
+
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
11
+
12
+ var ARTICLE_PROP_TYPES = _propTypes["default"].shape({
13
+ id: _propTypes["default"].string.isRequired,
14
+ title: _propTypes["default"].string.isRequired,
15
+ og_description: _propTypes["default"].string.isRequired,
16
+ hero_image: _propTypes["default"].object.isRequired,
17
+ categories: _propTypes["default"].array,
18
+ category_set: _propTypes["default"].array,
19
+ published_date: _propTypes["default"].string.isRequired,
20
+ slug: _propTypes["default"].string.isRequired,
21
+ tags: _propTypes["default"].array,
22
+ style: _propTypes["default"].string
23
+ });
24
+
25
+ exports.ARTICLE_PROP_TYPES = ARTICLE_PROP_TYPES;
@@ -15,16 +15,25 @@ Object.defineProperty(exports, "List", {
15
15
  return _list["default"];
16
16
  }
17
17
  });
18
+ Object.defineProperty(exports, "CardList", {
19
+ enumerable: true,
20
+ get: function get() {
21
+ return _cardList["default"];
22
+ }
23
+ });
18
24
  exports["default"] = void 0;
19
25
 
20
26
  var _topics = _interopRequireDefault(require("./components/topics"));
21
27
 
22
28
  var _list = _interopRequireDefault(require("./components/list"));
23
29
 
30
+ var _cardList = _interopRequireDefault(require("./components/card-list"));
31
+
24
32
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
25
33
 
26
34
  var _default = {
27
35
  TopicsList: _topics["default"],
28
- List: _list["default"]
36
+ List: _list["default"],
37
+ CardList: _cardList["default"]
29
38
  };
30
39
  exports["default"] = _default;
@@ -0,0 +1,83 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.card = exports["default"] = void 0;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ var _cardList = _interopRequireDefault(require("../components/card-list"));
11
+
12
+ var _constants = require("../../storybook/constants");
13
+
14
+ var _releaseBranch = require("@twreporter/core/lib/constants/release-branch");
15
+
16
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
17
+
18
+ var _default = {
19
+ title: 'List/Card',
20
+ component: _cardList["default"],
21
+ argTypes: {
22
+ releaseBranch: _constants.BRANCH_STORYBOOK_ARG_TYPE
23
+ }
24
+ };
25
+ exports["default"] = _default;
26
+
27
+ var card = function card(args) {
28
+ return /*#__PURE__*/_react["default"].createElement(_cardList["default"], args);
29
+ };
30
+
31
+ exports.card = card;
32
+ card.args = {
33
+ data: [{
34
+ id: '12345',
35
+ title: '文章標題文章標題文章標題文章標題文章標題文章標題文章標題文章標題',
36
+ og_description: '文章描述文章描述文章描述文章描述文章描述文章描述文章描述文章描述文章描述文章描述文章描述文章描述文章描述文章描述文章描述文章描述文章描述文章描述文章描述文章描述文章描述文章描述',
37
+ category_set: [{
38
+ category: {
39
+ name: '主分類'
40
+ },
41
+ subcategory: {
42
+ name: '子分類'
43
+ }
44
+ }],
45
+ published_date: '2023-02-12T16:00:00Z',
46
+ hero_image: {
47
+ description: 'test'
48
+ },
49
+ slug: 'this-is-a-test-article'
50
+ }, {
51
+ id: '12347',
52
+ title: '文章標題',
53
+ og_description: '文章描述',
54
+ published_date: '2023-02-12T16:00:00Z',
55
+ hero_image: {
56
+ description: 'test'
57
+ },
58
+ slug: 'this-is-a-test-article-3'
59
+ }, {
60
+ id: '12346',
61
+ title: '文章標題文章標題文章標題文章標題文章標題文章標題文章標題文章標題',
62
+ og_description: '文章描述文章描述文章描述文章描述文章描述文章描述文章描述文章描述文章描述文章描述文章描述文章描述文章描述文章描述文章描述文章描述文章描述文章描述文章描述文章描述文章描述文章描述',
63
+ category_set: [{
64
+ category: {
65
+ name: '主分類'
66
+ },
67
+ subcategory: {
68
+ name: '子分類'
69
+ }
70
+ }],
71
+ published_date: '2023-02-12T16:00:00Z',
72
+ hero_image: {
73
+ description: 'test',
74
+ resized_targets: {
75
+ mobile: {
76
+ url: 'https://upload.wikimedia.org/wikipedia/commons/thumb/7/77/Google_Images_2015_logo.svg/220px-Google_Images_2015_logo.svg.png'
77
+ }
78
+ }
79
+ },
80
+ slug: 'this-is-a-test-article-2'
81
+ }],
82
+ releaseBranch: _releaseBranch.BRANCH.master
83
+ };
@@ -30,6 +30,11 @@ var LogoContainer = /*#__PURE__*/_styledComponents["default"].img.withConfig({
30
30
  componentId: "rlga04-0"
31
31
  })([""]);
32
32
 
33
+ var logoType = {
34
+ DEFAULT: 'default',
35
+ WHITE: 'white'
36
+ };
37
+
33
38
  var LogoHeader = function LogoHeader(_ref) {
34
39
  var type = _ref.type,
35
40
  releaseBranch = _ref.releaseBranch,
@@ -44,12 +49,13 @@ var LogoHeader = function LogoHeader(_ref) {
44
49
  };
45
50
 
46
51
  LogoHeader.propTypes = {
47
- type: _propTypes["default"].oneOf(['default', 'white']),
52
+ type: _propTypes["default"].oneOf(Object.values(logoType)),
48
53
  releaseBranch: _releaseBranch.BRANCH_PROP_TYPES
49
54
  };
50
55
  LogoHeader.defaultProps = {
51
- type: 'default',
56
+ type: logoType.DEFAULT,
52
57
  releaseBranch: _releaseBranch.BRANCH.master
53
58
  };
59
+ LogoHeader.Type = logoType;
54
60
  var _default = LogoHeader;
55
61
  exports["default"] = _default;
@@ -0,0 +1,43 @@
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 _styledComponents = _interopRequireDefault(require("styled-components"));
11
+
12
+ var _path = _interopRequireDefault(require("../utils/path"));
13
+
14
+ var _releaseBranch = require("@twreporter/core/lib/constants/release-branch");
15
+
16
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
17
+
18
+ // utils
19
+ // @twreporter
20
+ var LogoContainer = /*#__PURE__*/_styledComponents["default"].img.withConfig({
21
+ displayName: "logo-loading-fallback__LogoContainer",
22
+ componentId: "sc-12r72it-0"
23
+ })([""]);
24
+
25
+ var LogoFallback = function LogoFallback(_ref) {
26
+ var releaseBranch = _ref.releaseBranch;
27
+
28
+ var logoSrc = _path["default"].selectLogoPath('loading-fallback', releaseBranch);
29
+
30
+ return /*#__PURE__*/_react["default"].createElement(LogoContainer, {
31
+ alt: "The Reporter Loading Fallback",
32
+ src: logoSrc
33
+ });
34
+ };
35
+
36
+ LogoFallback.propTypes = {
37
+ releaseBranch: _releaseBranch.BRANCH_PROP_TYPES
38
+ };
39
+ LogoFallback.defaultProps = {
40
+ releaseBranch: _releaseBranch.BRANCH.master
41
+ };
42
+ var _default = LogoFallback;
43
+ exports["default"] = _default;
@@ -30,9 +30,15 @@ var LogoContainer = /*#__PURE__*/_styledComponents["default"].img.withConfig({
30
30
  componentId: "dea8w0-0"
31
31
  })([""]);
32
32
 
33
+ var logoType = {
34
+ DEFAULT: 'default',
35
+ BLACK: 'black',
36
+ WHITE: 'white'
37
+ };
38
+
33
39
  var LogoSymbol = function LogoSymbol(_ref) {
34
40
  var _ref$type = _ref.type,
35
- type = _ref$type === void 0 ? 'default' : _ref$type,
41
+ type = _ref$type === void 0 ? logoType.DEFAULT : _ref$type,
36
42
  _ref$releaseBranch = _ref.releaseBranch,
37
43
  releaseBranch = _ref$releaseBranch === void 0 ? _releaseBranch.BRANCH.master : _ref$releaseBranch,
38
44
  props = _objectWithoutProperties(_ref, _excluded);
@@ -46,8 +52,9 @@ var LogoSymbol = function LogoSymbol(_ref) {
46
52
  };
47
53
 
48
54
  LogoSymbol.propTypes = {
49
- type: _propTypes["default"].oneOf(['default', 'black', 'white']),
55
+ type: _propTypes["default"].oneOf(Object.values(logoType)),
50
56
  releaseBranch: _releaseBranch.BRANCH_PROP_TYPES
51
57
  };
58
+ LogoSymbol.Type = logoType;
52
59
  var _default = LogoSymbol;
53
60
  exports["default"] = _default;
package/lib/logo/index.js CHANGED
@@ -21,6 +21,12 @@ Object.defineProperty(exports, "LogoSymbol", {
21
21
  return _logoSymbol["default"];
22
22
  }
23
23
  });
24
+ Object.defineProperty(exports, "LogoFallback", {
25
+ enumerable: true,
26
+ get: function get() {
27
+ return _logoLoadingFallback["default"];
28
+ }
29
+ });
24
30
  exports["default"] = void 0;
25
31
 
26
32
  var _logoHeader = _interopRequireDefault(require("./components/logo-header"));
@@ -29,11 +35,14 @@ var _logoFooter = _interopRequireDefault(require("./components/logo-footer"));
29
35
 
30
36
  var _logoSymbol = _interopRequireDefault(require("./components/logo-symbol"));
31
37
 
38
+ var _logoLoadingFallback = _interopRequireDefault(require("./components/logo-loading-fallback"));
39
+
32
40
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
33
41
 
34
42
  var _default = {
35
43
  LogoHeader: _logoHeader["default"],
36
44
  LogoFooter: _logoFooter["default"],
37
- LogoSymbol: _logoSymbol["default"]
45
+ LogoSymbol: _logoSymbol["default"],
46
+ LogoFallback: _logoLoadingFallback["default"]
38
47
  };
39
48
  exports["default"] = _default;
@@ -9,7 +9,7 @@ var _react = _interopRequireDefault(require("react"));
9
9
 
10
10
  var _logoFooter = _interopRequireDefault(require("../components/logo-footer"));
11
11
 
12
- var _releaseBranch = require("@twreporter/core/lib/constants/release-branch");
12
+ var _constants = require("../../storybook/constants");
13
13
 
14
14
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
15
15
 
@@ -17,7 +17,7 @@ var _default = {
17
17
  title: 'Logo/Footer',
18
18
  component: _logoFooter["default"],
19
19
  argTypes: {
20
- releaseBranch: _releaseBranch.BRANCH_STORYBOOK_ARG_TYPE
20
+ releaseBranch: _constants.BRANCH_STORYBOOK_ARG_TYPE
21
21
  }
22
22
  };
23
23
  exports["default"] = _default;
@@ -9,7 +9,7 @@ var _react = _interopRequireDefault(require("react"));
9
9
 
10
10
  var _logoHeader = _interopRequireDefault(require("../components/logo-header"));
11
11
 
12
- var _releaseBranch = require("@twreporter/core/lib/constants/release-branch");
12
+ var _constants = require("../../storybook/constants");
13
13
 
14
14
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
15
15
 
@@ -17,7 +17,7 @@ var _default = {
17
17
  title: 'Logo/Header',
18
18
  component: _logoHeader["default"],
19
19
  argTypes: {
20
- releaseBranch: _releaseBranch.BRANCH_STORYBOOK_ARG_TYPE
20
+ releaseBranch: _constants.BRANCH_STORYBOOK_ARG_TYPE
21
21
  }
22
22
  };
23
23
  exports["default"] = _default;
@@ -28,5 +28,5 @@ var header = function header(args) {
28
28
 
29
29
  exports.header = header;
30
30
  header.args = {
31
- type: 'default'
31
+ type: _logoHeader["default"].Type.DEFAULT
32
32
  };
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.fallback = exports["default"] = void 0;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ var _logoLoadingFallback = _interopRequireDefault(require("../components/logo-loading-fallback"));
11
+
12
+ var _constants = require("../../storybook/constants");
13
+
14
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
15
+
16
+ var _default = {
17
+ title: 'Logo/Fallback',
18
+ component: _logoLoadingFallback["default"],
19
+ argTypes: {
20
+ releaseBranch: _constants.BRANCH_STORYBOOK_ARG_TYPE
21
+ }
22
+ };
23
+ exports["default"] = _default;
24
+
25
+ var fallback = function fallback(args) {
26
+ return /*#__PURE__*/_react["default"].createElement(_logoLoadingFallback["default"], args);
27
+ };
28
+
29
+ exports.fallback = fallback;
@@ -9,7 +9,7 @@ var _react = _interopRequireDefault(require("react"));
9
9
 
10
10
  var _logoSymbol = _interopRequireDefault(require("../components/logo-symbol"));
11
11
 
12
- var _releaseBranch = require("@twreporter/core/lib/constants/release-branch");
12
+ var _constants = require("../../storybook/constants");
13
13
 
14
14
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
15
15
 
@@ -17,7 +17,7 @@ var _default = {
17
17
  title: 'Logo/Symbol',
18
18
  component: _logoSymbol["default"],
19
19
  argTypes: {
20
- releaseBranch: _releaseBranch.BRANCH_STORYBOOK_ARG_TYPE
20
+ releaseBranch: _constants.BRANCH_STORYBOOK_ARG_TYPE
21
21
  }
22
22
  };
23
23
  exports["default"] = _default;
@@ -28,5 +28,5 @@ var symbol = function symbol(args) {
28
28
 
29
29
  exports.symbol = symbol;
30
30
  symbol.args = {
31
- type: 'default'
31
+ type: _logoSymbol["default"].Type.DEFAULT
32
32
  };
@@ -30,6 +30,11 @@ function selectLogoPath(logoType, branch, type) {
30
30
  return path[type];
31
31
  }
32
32
 
33
+ case 'loading-fallback':
34
+ {
35
+ return "".concat(baseGCSDir, "logo-loading-fallback.").concat(branch, ".svg");
36
+ }
37
+
33
38
  default:
34
39
  {
35
40
  return '';