@twreporter/universal-header 2.10.1-rc.1 → 2.11.0-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,17 @@
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
+ # [2.11.0-rc.0](https://github.com/twreporter/twreporter-npm-packages/compare/@twreporter/universal-header@2.10.1-rc.1...@twreporter/universal-header@2.11.0-rc.0) (2024-02-07)
7
+
8
+
9
+ ### Features
10
+
11
+ * add `my reading` related entry on universal navigator ([79cadc2](https://github.com/twreporter/twreporter-npm-packages/commit/79cadc293493bc517fcf95139ff208633acd699b))
12
+
13
+
14
+
15
+
16
+
6
17
  ## [2.10.1-rc.1](https://github.com/twreporter/twreporter-npm-packages/compare/@twreporter/universal-header@2.10.1-rc.0...@twreporter/universal-header@2.10.1-rc.1) (2024-01-25)
7
18
 
8
19
  **Note:** Version bump only for package @twreporter/universal-header
@@ -61,16 +61,22 @@ var FooterContainer = /*#__PURE__*/_styledComponents["default"].div.withConfig({
61
61
  var LinkItem = /*#__PURE__*/_styledComponents["default"].div.withConfig({
62
62
  displayName: "hamburger-footer__LinkItem",
63
63
  componentId: "i02xyc-1"
64
- })(["padding:8px 32px;color:", ";", " &:active{color:", ";background-color:", ";}"], function (props) {
64
+ })(["padding:8px 32px;display:flex;align-items:center;color:", ";svg{height:18px;width:18px;margin-right:4px;background-color:", ";}", " &:active{color:", ";background-color:", ";svg{background-color:", ";}}"], function (props) {
65
65
  return props.color;
66
- }, _mediaQuery["default"].desktopAndAbove(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n &:hover {\n color: ", ";\n background-color: ", ";\n }\n "])), function (props) {
66
+ }, function (props) {
67
+ return props.color;
68
+ }, _mediaQuery["default"].desktopAndAbove(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n &:hover {\n color: ", ";\n background-color: ", ";\n svg {\n background-color: ", ";\n }\n }\n "])), function (props) {
67
69
  return props.hoverColor;
68
70
  }, function (props) {
69
71
  return props.hoverBgColor;
72
+ }, function (props) {
73
+ return props.hoverColor;
70
74
  }), function (props) {
71
75
  return props.activeColor;
72
76
  }, function (props) {
73
77
  return props.activeBgColor;
78
+ }, function (props) {
79
+ return props.activeColor;
74
80
  });
75
81
 
76
82
  var LinkSection = /*#__PURE__*/_styledComponents["default"].div.withConfig({
@@ -113,6 +119,31 @@ var Footer = function Footer(_ref) {
113
119
  activeColor = _selectHamburgerFoote.activeColor,
114
120
  activeBgColor = _selectHamburgerFoote.activeBgColor;
115
121
 
122
+ var memberLinks = (0, _links.getMemberLinks)(isLinkExternal, releaseBranch);
123
+ var memberJSX = memberLinks ? /*#__PURE__*/_react["default"].createElement(LinkSection, null, _.map(_footer.MEMBER_ORDER, function (key) {
124
+ var link = memberLinks[key];
125
+ var label = _footer.FOOTER_LABEL[key];
126
+
127
+ if (!link || !label) {
128
+ return;
129
+ }
130
+
131
+ return /*#__PURE__*/_react["default"].createElement(_customizedLink["default"], _extends({}, link, {
132
+ key: key,
133
+ onClick: closeHamburgerMenu
134
+ }), /*#__PURE__*/_react["default"].createElement(LinkItem, {
135
+ color: color,
136
+ hoverColor: hoverColor,
137
+ hoverBgColor: hoverBgColor,
138
+ activeColor: activeColor,
139
+ activeBgColor: activeBgColor
140
+ }, /*#__PURE__*/_react["default"].createElement(_icon.Icon, {
141
+ filename: _footer.FOOTER_ICON[key],
142
+ releaseBranch: releaseBranch
143
+ }), /*#__PURE__*/_react["default"].createElement(_paragraph.P2, {
144
+ text: label
145
+ })));
146
+ })) : null;
116
147
  var footerLinks = (0, _links.getFooterLinks)(isLinkExternal, releaseBranch);
117
148
  var linkJSX = footerLinks ? /*#__PURE__*/_react["default"].createElement(LinkSection, null, _.map(_footer.FOOTER_ORDER, function (key) {
118
149
  var link = footerLinks[key];
@@ -155,7 +186,7 @@ var Footer = function Footer(_ref) {
155
186
  theme: footerTheme
156
187
  })));
157
188
  })) : null;
158
- return /*#__PURE__*/_react["default"].createElement(FooterContainer, props, linkJSX, /*#__PURE__*/_react["default"].createElement(DividerContainer, null, /*#__PURE__*/_react["default"].createElement(_divider["default"], null)), socialMediaJSX);
189
+ return /*#__PURE__*/_react["default"].createElement(FooterContainer, props, memberJSX, /*#__PURE__*/_react["default"].createElement(DividerContainer, null, /*#__PURE__*/_react["default"].createElement(_divider["default"], null)), linkJSX, /*#__PURE__*/_react["default"].createElement(DividerContainer, null, /*#__PURE__*/_react["default"].createElement(_divider["default"], null)), socialMediaJSX);
159
190
  };
160
191
 
161
192
  var _default = Footer;
@@ -81,7 +81,7 @@ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
81
81
 
82
82
  function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
83
83
 
84
- var Footer = _featureFlag.FOUNDATION_CATEGORY_SET ? _hamburgerFooter["default"] : _hamburgerFooterOld["default"];
84
+ var Footer = _featureFlag.MY_READING ? _hamburgerFooter["default"] : _hamburgerFooterOld["default"];
85
85
  var _ = {
86
86
  map: _map["default"]
87
87
  }; // global var
@@ -0,0 +1,393 @@
1
+ "use strict";
2
+
3
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = void 0;
9
+
10
+ var _react = _interopRequireWildcard(require("react"));
11
+
12
+ var _propTypes = _interopRequireDefault(require("prop-types"));
13
+
14
+ var _styledComponents = _interopRequireWildcard(require("styled-components"));
15
+
16
+ var _CSSTransition = _interopRequireDefault(require("react-transition-group/CSSTransition"));
17
+
18
+ var _headerContext = _interopRequireWildcard(require("../contexts/header-context"));
19
+
20
+ var _linksOld = require("../utils/links-old");
21
+
22
+ var _theme = require("../utils/theme");
23
+
24
+ var _theme2 = _interopRequireDefault(require("../constants/theme"));
25
+
26
+ var _hamburgerMenu = require("../constants/hamburger-menu");
27
+
28
+ var _channels = _interopRequireDefault(require("./channels"));
29
+
30
+ var _actionButton = require("./action-button");
31
+
32
+ var _iconsOld = _interopRequireWildcard(require("./icons-old"));
33
+
34
+ var _slogan = _interopRequireDefault(require("./slogan"));
35
+
36
+ var _hamburgerMenu2 = _interopRequireDefault(require("./hamburger-menu"));
37
+
38
+ var _tabBarOld = _interopRequireDefault(require("./tab-bar-old"));
39
+
40
+ var _customizedLink = _interopRequireDefault(require("@twreporter/react-components/lib/customized-link"));
41
+
42
+ var _mediaQuery = _interopRequireDefault(require("@twreporter/core/lib/utils/media-query"));
43
+
44
+ var _divider = _interopRequireDefault(require("@twreporter/react-components/lib/divider"));
45
+
46
+ var _logo = require("@twreporter/react-components/lib/logo");
47
+
48
+ var _button = require("@twreporter/react-components/lib/button");
49
+
50
+ var _icon = require("@twreporter/react-components/lib/icon");
51
+
52
+ var _hook = require("@twreporter/react-components/lib/hook");
53
+
54
+ var _rwd = require("@twreporter/react-components/lib/rwd");
55
+
56
+ var _entityPath = _interopRequireDefault(require("@twreporter/core/lib/constants/entity-path"));
57
+
58
+ var _some = _interopRequireDefault(require("lodash/some"));
59
+
60
+ var _includes = _interopRequireDefault(require("lodash/includes"));
61
+
62
+ var _throttle = _interopRequireDefault(require("lodash/throttle"));
63
+
64
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11;
65
+
66
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
67
+
68
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
69
+
70
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
71
+
72
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
73
+
74
+ 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."); }
75
+
76
+ 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); }
77
+
78
+ 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; }
79
+
80
+ 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; }
81
+
82
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
83
+
84
+ function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
85
+
86
+ var _ = {
87
+ some: _some["default"],
88
+ includes: _includes["default"],
89
+ throttle: _throttle["default"]
90
+ };
91
+ var narrowHeaderHeight = 65;
92
+ var channelHeight = 50;
93
+ var animation = {
94
+ step1Duration: '200ms',
95
+ step2Delay: '150ms',
96
+ step2Duration: '50ms',
97
+ step3Delay: '150ms',
98
+ step3Duration: '200ms'
99
+ };
100
+ var zIndex = {
101
+ tabBarMobile: 10,
102
+ tabBarTablet: 3,
103
+ hamburger: 4,
104
+ header: 3,
105
+ topRow: 2,
106
+ channel: 1
107
+ };
108
+ var channelSlideIn = /*#__PURE__*/(0, _styledComponents.keyframes)(["from{transform:translateY(", "px);opacity:0;}to{transform:translateY(0);opacity:1;}"], -channelHeight);
109
+ var channelSlideOut = /*#__PURE__*/(0, _styledComponents.keyframes)(["from{transform:translateY(0);}to{transform:translateY(", "px);}"], -channelHeight);
110
+ var ChannelEffect = /*#__PURE__*/(0, _styledComponents.css)([".channel-effect-enter{opacity:0;}.channel-effect-enter-active{animation:", " ", " linear;animation-delay:150ms;}.channel-effect-exit-active{animation:", " ", " linear;animation-delay:0ms;}"], channelSlideIn, animation.step1Duration, channelSlideOut, animation.step1Duration);
111
+
112
+ var HeaderContainer = /*#__PURE__*/_styledComponents["default"].div.withConfig({
113
+ displayName: "header-old__HeaderContainer",
114
+ componentId: "sc-1fortyi-0"
115
+ })(["position:", ";top:0;width:100%;background-color:", ";transform:translateY( ", " );transition:transform 300ms ", ";", ""], function (props) {
116
+ return props.theme === _theme2["default"].transparent ? 'fixed' : 'sticky';
117
+ }, function (props) {
118
+ return props.bgColor;
119
+ }, function (props) {
120
+ return props.hideHeader ? "".concat(-narrowHeaderHeight, "px") : '0';
121
+ }, function (props) {
122
+ return props.hideHeader ? 'ease-in' : 'ease-out';
123
+ }, _mediaQuery["default"].mobileOnly(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n ", "\n "])), function (props) {
124
+ return props.forceShowOnMobile ? 'transform: translateY(0);' : '';
125
+ }));
126
+
127
+ var HeaderSection = /*#__PURE__*/_styledComponents["default"].div.withConfig({
128
+ displayName: "header-old__HeaderSection",
129
+ componentId: "sc-1fortyi-1"
130
+ })(["display:flex;flex-direction:column;margin:auto;z-index:", ";", " ", " ", " ", ""], zIndex.header, _mediaQuery["default"].hdOnly(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n width: 1280px;\n "]))), _mediaQuery["default"].desktopOnly(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n padding: 0 48px;\n "]))), _mediaQuery["default"].tabletOnly(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n padding: 0 32px;\n "]))), _mediaQuery["default"].mobileOnly(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["\n padding: 0 24px;\n "]))));
131
+
132
+ var LogoContainer = /*#__PURE__*/_styledComponents["default"].div.withConfig({
133
+ displayName: "header-old__LogoContainer",
134
+ componentId: "sc-1fortyi-2"
135
+ })(["display:flex;align-items:center;margin-right:16px;a{display:flex;}"]);
136
+
137
+ var MobileLogoContainer = /*#__PURE__*/_styledComponents["default"].div.withConfig({
138
+ displayName: "header-old__MobileLogoContainer",
139
+ componentId: "sc-1fortyi-3"
140
+ })(["display:flex;align-items:center;img{height:21px;}a{display:flex;}"]);
141
+
142
+ var HideWhenNarrow = /*#__PURE__*/_styledComponents["default"].div.withConfig({
143
+ displayName: "header-old__HideWhenNarrow",
144
+ componentId: "sc-1fortyi-4"
145
+ })([""]);
146
+
147
+ var ShowWhenNarrow = /*#__PURE__*/_styledComponents["default"].div.withConfig({
148
+ displayName: "header-old__ShowWhenNarrow",
149
+ componentId: "sc-1fortyi-5"
150
+ })([""]);
151
+
152
+ var TopRow = /*#__PURE__*/_styledComponents["default"].div.withConfig({
153
+ displayName: "header-old__TopRow",
154
+ componentId: "sc-1fortyi-6"
155
+ })(["display:flex;align-items:center;justify-content:space-between;padding:", " 16px;z-index:", ";background-color:", ";", "{opacity:", ";transition:opacity ", ";transition-delay:", ";}", "{opacity:", ";transition:opacity ", ";transition-delay:", ";}", "{margin-left:", ";transform:translateX(", ");transition:all ", ";transition-delay:", ";img,a{height:", ";transition:height ", ";transition-delay:", ";}}", ""], function (props) {
156
+ return props.toUseNarrow ? '16px' : '24px';
157
+ }, zIndex.topRow, function (props) {
158
+ return props.topRowBgColor;
159
+ }, ShowWhenNarrow, function (props) {
160
+ return props.toUseNarrow ? '1' : '0';
161
+ }, animation.step3Duration, function (props) {
162
+ return props.toUseNarrow ? '350ms' : 0;
163
+ }, HideWhenNarrow, function (props) {
164
+ return props.toUseNarrow ? '0' : '1';
165
+ }, animation.step3Duration, function (props) {
166
+ return props.toUseNarrow ? animation.step3Delay : 0;
167
+ }, LogoContainer, function (props) {
168
+ return props.toUseNarrow ? '24px' : '0';
169
+ }, function (props) {
170
+ return props.toUseNarrow ? '0' : '-24px';
171
+ }, animation.step3Duration, function (props) {
172
+ return props.toUseNarrow ? animation.step3Delay : 0;
173
+ }, function (props) {
174
+ return props.toUseNarrow ? '24px' : '32px';
175
+ }, animation.step3Duration, function (props) {
176
+ return props.toUseNarrow ? animation.step3Delay : 0;
177
+ }, _mediaQuery["default"].tabletAndBelow(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["\n padding: 16px 0;\n "]))));
178
+
179
+ var StyledDivider = /*#__PURE__*/(0, _styledComponents["default"])(_divider["default"]).withConfig({
180
+ displayName: "header-old__StyledDivider",
181
+ componentId: "sc-1fortyi-7"
182
+ })(["opacity:", ";transition:opacity ", ";transition-delay:", ";"], function (props) {
183
+ return props.toUseNarrow ? '0' : '1';
184
+ }, animation.step2Duration, function (props) {
185
+ return props.toUseNarrow ? animation.step2Delay : 0;
186
+ });
187
+
188
+ var IconContainer = /*#__PURE__*/_styledComponents["default"].div.withConfig({
189
+ displayName: "header-old__IconContainer",
190
+ componentId: "sc-1fortyi-8"
191
+ })(["margin-left:24px;", ""], _mediaQuery["default"].mobileOnly(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["\n margin-left: 16px;\n "]))));
192
+
193
+ var FlexGroup = /*#__PURE__*/_styledComponents["default"].div.withConfig({
194
+ displayName: "header-old__FlexGroup",
195
+ componentId: "sc-1fortyi-9"
196
+ })(["display:flex;align-items:center;"]);
197
+
198
+ var ChannelContainer = /*#__PURE__*/_styledComponents["default"].div.withConfig({
199
+ displayName: "header-old__ChannelContainer",
200
+ componentId: "sc-1fortyi-10"
201
+ })(["z-index:", ";", ""], zIndex.channel, ChannelEffect);
202
+
203
+ var HamburgerContainer = /*#__PURE__*/_styledComponents["default"].div.withConfig({
204
+ displayName: "header-old__HamburgerContainer",
205
+ componentId: "sc-1fortyi-11"
206
+ })(["z-index:", ";position:absolute;top:0;left:-", ";transition:transform 300ms ease-in-out;transform:translateX( ", " );", " ", ""], zIndex.hamburger, _hamburgerMenu.MENU_WIDTH.desktop, function (props) {
207
+ return props.showHamburger ? _hamburgerMenu.MENU_WIDTH.desktop : 0;
208
+ }, _mediaQuery["default"].tabletOnly(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral(["\n left: -", ";\n transform: translateX(", ");\n "])), _hamburgerMenu.MENU_WIDTH.tablet, function (props) {
209
+ return props.showHamburger ? _hamburgerMenu.MENU_WIDTH.tablet : 0;
210
+ }), _mediaQuery["default"].mobileOnly(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral(["\n left: 0;\n transform: none;\n opacity: ", ";\n "])), function (props) {
211
+ return props.showHamburger ? 1 : 0;
212
+ }));
213
+
214
+ var TabBarContainer = /*#__PURE__*/_styledComponents["default"].div.withConfig({
215
+ displayName: "header-old__TabBarContainer",
216
+ componentId: "sc-1fortyi-12"
217
+ })(["position:fixed;bottom:0;left:0;width:100%;", " ", ""], _mediaQuery["default"].tabletOnly(_templateObject10 || (_templateObject10 = _taggedTemplateLiteral(["\n z-index: ", ";\n "])), zIndex.tabBarTablet), _mediaQuery["default"].mobileOnly(_templateObject11 || (_templateObject11 = _taggedTemplateLiteral(["\n z-index: ", ";\n "])), zIndex.tabBarMobile));
218
+
219
+ var HideOnArticle = /*#__PURE__*/_styledComponents["default"].div.withConfig({
220
+ displayName: "header-old__HideOnArticle",
221
+ componentId: "sc-1fortyi-13"
222
+ })(["", ""], function (props) {
223
+ return props.isOnArticlePage ? 'display: none;' : '';
224
+ });
225
+
226
+ var PrevButton = /*#__PURE__*/_styledComponents["default"].div.withConfig({
227
+ displayName: "header-old__PrevButton",
228
+ componentId: "sc-1fortyi-14"
229
+ })(["", " margin-right:16px;"], function (props) {
230
+ return props.isShow ? '' : 'display: none;';
231
+ });
232
+
233
+ var Header = function Header(_ref) {
234
+ var _ref$hamburgerContext = _ref.hamburgerContext,
235
+ hamburgerContext = _ref$hamburgerContext === void 0 ? {} : _ref$hamburgerContext;
236
+
237
+ var _useContext = (0, _react.useContext)(_headerContext["default"]),
238
+ releaseBranch = _useContext.releaseBranch,
239
+ isLinkExternal = _useContext.isLinkExternal,
240
+ theme = _useContext.theme,
241
+ toUseNarrow = _useContext.toUseNarrow,
242
+ hideHeader = _useContext.hideHeader,
243
+ pathname = _useContext.pathname,
244
+ referrerPath = _useContext.referrerPath;
245
+
246
+ var _useState = (0, _react.useState)(false),
247
+ _useState2 = _slicedToArray(_useState, 2),
248
+ defaultShowHamburger = _useState2[0],
249
+ setDefaultShowHamburger = _useState2[1];
250
+
251
+ var showHamburger = (hamburgerContext === null || hamburgerContext === void 0 ? void 0 : hamburgerContext.showHamburger) || defaultShowHamburger;
252
+ var setShowHamburger = (hamburgerContext === null || hamburgerContext === void 0 ? void 0 : hamburgerContext.setShowHamburger) || setDefaultShowHamburger;
253
+ var logoLink = (0, _linksOld.getLogoLink)(isLinkExternal, releaseBranch);
254
+ var logoType = (0, _theme.selectLogoType)(theme);
255
+
256
+ var HamburgerIcon = /*#__PURE__*/_react["default"].createElement(_icon.Hamburger, {
257
+ releaseBranch: releaseBranch
258
+ });
259
+
260
+ var _selectHeaderTheme = (0, _theme.selectHeaderTheme)(theme),
261
+ bgColor = _selectHeaderTheme.bgColor,
262
+ topRowBgColor = _selectHeaderTheme.topRowBgColor;
263
+
264
+ var toggleHamburger = function toggleHamburger(e) {
265
+ e.stopPropagation();
266
+ setShowHamburger(!showHamburger);
267
+ };
268
+
269
+ var closeHamburger = function closeHamburger() {
270
+ return setShowHamburger(false);
271
+ };
272
+
273
+ var ref = (0, _hook.useOutsideClick)(closeHamburger);
274
+ var contextValue = {
275
+ toggleHamburger: toggleHamburger,
276
+ closeHamburgerMenu: closeHamburger,
277
+ isHamburgerMenuOpen: showHamburger
278
+ };
279
+ (0, _react.useEffect)(function () {
280
+ closeHamburger();
281
+ }, [pathname]);
282
+
283
+ var isOnArticlePage = _.includes(pathname, _entityPath["default"].article);
284
+
285
+ var needPrevIconRoute = ["".concat(_entityPath["default"].account, "/donation-history"), "".concat(_entityPath["default"].account, "/email-subscription"), "".concat(_entityPath["default"].myReading, "/saved"), "".concat(_entityPath["default"].myReading, "/history")];
286
+
287
+ var isOnNeedPrevIconPage = _.some(needPrevIconRoute, function (el) {
288
+ return _.includes(pathname, el);
289
+ });
290
+
291
+ var _useState3 = (0, _react.useState)(0),
292
+ _useState4 = _slicedToArray(_useState3, 2),
293
+ currentClientWidth = _useState4[0],
294
+ setCurrentClientWidth = _useState4[1];
295
+
296
+ (0, _react.useEffect)(function () {
297
+ var handleResize = _.throttle(function () {
298
+ setCurrentClientWidth(document.body.clientWidth);
299
+ });
300
+
301
+ handleResize();
302
+ window.addEventListener('resize', handleResize);
303
+ return function () {
304
+ window.removeEventListener('resize', handleResize);
305
+ };
306
+ }, []);
307
+ var showPrevIcon = isOnArticlePage || isOnNeedPrevIconPage && currentClientWidth < 768; // only show it on mobile
308
+
309
+ var BackToPrevIcon = /*#__PURE__*/_react["default"].createElement(_icon.Arrow, {
310
+ direction: "left",
311
+ releaseBranch: releaseBranch
312
+ });
313
+
314
+ var gotoPrev = function gotoPrev() {
315
+ if (referrerPath || (0, _linksOld.checkReferrer)(document.referrer, releaseBranch)) {
316
+ // go to previous page when referer is twreporter site
317
+ window.history.back();
318
+ } else {
319
+ // go to home page when referer is not twreporter site
320
+ window.location.href = '/';
321
+ }
322
+ };
323
+
324
+ var DesktopHeaderJSX = /*#__PURE__*/_react["default"].createElement(HeaderSection, null, /*#__PURE__*/_react["default"].createElement(TopRow, {
325
+ toUseNarrow: toUseNarrow,
326
+ topRowBgColor: topRowBgColor
327
+ }, /*#__PURE__*/_react["default"].createElement(FlexGroup, null, /*#__PURE__*/_react["default"].createElement(ShowWhenNarrow, null, /*#__PURE__*/_react["default"].createElement(_button.IconButton, {
328
+ iconComponent: HamburgerIcon,
329
+ theme: theme,
330
+ onClick: toggleHamburger
331
+ })), /*#__PURE__*/_react["default"].createElement(LogoContainer, null, /*#__PURE__*/_react["default"].createElement(_customizedLink["default"], logoLink, /*#__PURE__*/_react["default"].createElement(_logo.LogoHeader, {
332
+ type: logoType,
333
+ releaseBranch: releaseBranch
334
+ }))), /*#__PURE__*/_react["default"].createElement(HideWhenNarrow, null, /*#__PURE__*/_react["default"].createElement(_slogan["default"], null))), /*#__PURE__*/_react["default"].createElement(FlexGroup, null, /*#__PURE__*/_react["default"].createElement(HideWhenNarrow, null, /*#__PURE__*/_react["default"].createElement(_actionButton.DesktopHeaderAction, null)), /*#__PURE__*/_react["default"].createElement(IconContainer, null, /*#__PURE__*/_react["default"].createElement(_iconsOld["default"], null)))), /*#__PURE__*/_react["default"].createElement(StyledDivider, {
335
+ toUseNarrow: toUseNarrow
336
+ }), /*#__PURE__*/_react["default"].createElement(ChannelContainer, null, /*#__PURE__*/_react["default"].createElement(_CSSTransition["default"], {
337
+ "in": !toUseNarrow,
338
+ classNames: "channel-effect",
339
+ timeout: {
340
+ appear: 0,
341
+ enter: 350,
342
+ exit: 200
343
+ },
344
+ unmountOnExit: true
345
+ }, /*#__PURE__*/_react["default"].createElement(_channels["default"], {
346
+ onClickHambuger: toggleHamburger
347
+ }))));
348
+
349
+ var MobileHeaderJSX = /*#__PURE__*/_react["default"].createElement(HeaderSection, null, /*#__PURE__*/_react["default"].createElement(TopRow, {
350
+ toUseNarrow: toUseNarrow,
351
+ topRowBgColor: topRowBgColor
352
+ }, /*#__PURE__*/_react["default"].createElement(FlexGroup, null, /*#__PURE__*/_react["default"].createElement(PrevButton, {
353
+ isShow: showPrevIcon
354
+ }, /*#__PURE__*/_react["default"].createElement(_button.IconButton, {
355
+ iconComponent: BackToPrevIcon,
356
+ theme: theme,
357
+ onClick: gotoPrev
358
+ })), /*#__PURE__*/_react["default"].createElement(MobileLogoContainer, null, /*#__PURE__*/_react["default"].createElement(_customizedLink["default"], logoLink, /*#__PURE__*/_react["default"].createElement(_logo.LogoHeader, {
359
+ type: logoType,
360
+ releaseBranch: releaseBranch
361
+ })))), /*#__PURE__*/_react["default"].createElement(FlexGroup, null, /*#__PURE__*/_react["default"].createElement(_actionButton.MobileHeaderAction, null), /*#__PURE__*/_react["default"].createElement(IconContainer, null, /*#__PURE__*/_react["default"].createElement(_iconsOld.MobileIcons, null)))));
362
+
363
+ return /*#__PURE__*/_react["default"].createElement(_headerContext.HamburgerContext.Provider, {
364
+ value: contextValue
365
+ }, /*#__PURE__*/_react["default"].createElement(HeaderContainer, {
366
+ bgColor: bgColor,
367
+ hideHeader: hideHeader,
368
+ forceShowOnMobile: showHamburger,
369
+ theme: theme
370
+ }, /*#__PURE__*/_react["default"].createElement(_rwd.DesktopAndAbove, null, DesktopHeaderJSX), /*#__PURE__*/_react["default"].createElement(_rwd.TabletAndBelow, null, MobileHeaderJSX)), /*#__PURE__*/_react["default"].createElement(HamburgerContainer, {
371
+ ref: ref,
372
+ showHamburger: showHamburger
373
+ }, /*#__PURE__*/_react["default"].createElement(_CSSTransition["default"], {
374
+ "in": showHamburger,
375
+ classNames: "hamburger-effect",
376
+ timeout: {
377
+ appear: 0,
378
+ enter: 300,
379
+ exit: 300
380
+ },
381
+ unmountOnExit: true
382
+ }, /*#__PURE__*/_react["default"].createElement(_hamburgerMenu2["default"], null))), /*#__PURE__*/_react["default"].createElement(_rwd.TabletAndBelow, null, /*#__PURE__*/_react["default"].createElement(HideOnArticle, {
383
+ isOnArticlePage: isOnArticlePage
384
+ }, /*#__PURE__*/_react["default"].createElement(TabBarContainer, null, /*#__PURE__*/_react["default"].createElement(_tabBarOld["default"], {
385
+ toggleHamburger: toggleHamburger
386
+ })))));
387
+ };
388
+
389
+ Header.propTypes = {
390
+ hamburgerContext: _propTypes["default"].object
391
+ };
392
+ var _default = Header;
393
+ exports["default"] = _default;
@@ -226,7 +226,7 @@ var HideOnArticle = /*#__PURE__*/_styledComponents["default"].div.withConfig({
226
226
  var PrevButton = /*#__PURE__*/_styledComponents["default"].div.withConfig({
227
227
  displayName: "header__PrevButton",
228
228
  componentId: "sc-1krza7i-14"
229
- })(["", " margin-right:16px;"], function (props) {
229
+ })(["", " margin-right:8px;padding:4px;transform:translateX(-8px);"], function (props) {
230
230
  return props.isShow ? '' : 'display: none;';
231
231
  });
232
232
 
@@ -350,11 +350,11 @@ var Header = function Header(_ref) {
350
350
  toUseNarrow: toUseNarrow,
351
351
  topRowBgColor: topRowBgColor
352
352
  }, /*#__PURE__*/_react["default"].createElement(FlexGroup, null, /*#__PURE__*/_react["default"].createElement(PrevButton, {
353
- isShow: showPrevIcon
353
+ isShow: showPrevIcon,
354
+ onClick: gotoPrev
354
355
  }, /*#__PURE__*/_react["default"].createElement(_button.IconButton, {
355
356
  iconComponent: BackToPrevIcon,
356
- theme: theme,
357
- onClick: gotoPrev
357
+ theme: theme
358
358
  })), /*#__PURE__*/_react["default"].createElement(MobileLogoContainer, null, /*#__PURE__*/_react["default"].createElement(_customizedLink["default"], logoLink, /*#__PURE__*/_react["default"].createElement(_logo.LogoHeader, {
359
359
  type: logoType,
360
360
  releaseBranch: releaseBranch
@@ -0,0 +1,255 @@
1
+ "use strict";
2
+
3
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = exports.MobileIcons = void 0;
9
+
10
+ var _react = _interopRequireWildcard(require("react"));
11
+
12
+ var _propTypes = _interopRequireDefault(require("prop-types"));
13
+
14
+ var _querystring = _interopRequireDefault(require("querystring"));
15
+
16
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
17
+
18
+ var _headerContext = _interopRequireDefault(require("../contexts/header-context"));
19
+
20
+ var _linksOld = require("../utils/links-old");
21
+
22
+ var _customizedLink = _interopRequireDefault(require("@twreporter/react-components/lib/customized-link"));
23
+
24
+ var _button = require("@twreporter/react-components/lib/button");
25
+
26
+ var _icon = require("@twreporter/react-components/lib/icon");
27
+
28
+ var _input = require("@twreporter/react-components/lib/input");
29
+
30
+ var _hook = require("@twreporter/react-components/lib/hook");
31
+
32
+ var _theme = require("@twreporter/core/lib/constants/theme");
33
+
34
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
35
+
36
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
37
+
38
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
39
+
40
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
41
+
42
+ 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."); }
43
+
44
+ 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); }
45
+
46
+ 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; }
47
+
48
+ 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; }
49
+
50
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
51
+
52
+ var IconsContainer = /*#__PURE__*/_styledComponents["default"].div.withConfig({
53
+ displayName: "icons-old__IconsContainer",
54
+ componentId: "n1dgyi-0"
55
+ })(["display:flex;"]);
56
+
57
+ var IconContainer = /*#__PURE__*/_styledComponents["default"].div.withConfig({
58
+ displayName: "icons-old__IconContainer",
59
+ componentId: "n1dgyi-1"
60
+ })(["position:relative;margin-right:16px;&:last-child{margin-right:0;}a{display:flex;}"]);
61
+
62
+ var Container = /*#__PURE__*/_styledComponents["default"].div.withConfig({
63
+ displayName: "icons-old__Container",
64
+ componentId: "n1dgyi-2"
65
+ })(["opacity:", ";transition:opacity 300ms ease;"], function (props) {
66
+ return props.isSearchOpened ? '0' : '1';
67
+ });
68
+
69
+ var LogContainer = /*#__PURE__*/_styledComponents["default"].div.withConfig({
70
+ displayName: "icons-old__LogContainer",
71
+ componentId: "n1dgyi-3"
72
+ })(["display:flex;flex-direction:column;"]);
73
+
74
+ var SearchContainer = /*#__PURE__*/_styledComponents["default"].div.withConfig({
75
+ displayName: "icons-old__SearchContainer",
76
+ componentId: "n1dgyi-4"
77
+ })(["opacity:", ";transition:opacity 300ms ease;position:absolute;right:0;top:-8px;z-index:", ";"], function (props) {
78
+ return props.isSearchOpened ? '1' : '0';
79
+ }, function (props) {
80
+ return props.isSearchOpened ? 999 : -1;
81
+ });
82
+
83
+ var MemberButtonType = {
84
+ ICON: 'icon',
85
+ TEXT: 'text'
86
+ };
87
+
88
+ var MemberIcon = function MemberIcon(_ref) {
89
+ var _ref$memberButtonType = _ref.memberButtonType,
90
+ memberButtonType = _ref$memberButtonType === void 0 ? MemberButtonType.ICON : _ref$memberButtonType,
91
+ _ref$isForHambuger = _ref.isForHambuger,
92
+ isForHambuger = _ref$isForHambuger === void 0 ? false : _ref$isForHambuger;
93
+
94
+ var _useContext = (0, _react.useContext)(_headerContext["default"]),
95
+ releaseBranch = _useContext.releaseBranch,
96
+ theme = _useContext.theme,
97
+ isAuthed = _useContext.isAuthed,
98
+ isLinkExternal = _useContext.isLinkExternal;
99
+
100
+ var onClickIcon = function onClickIcon(e) {
101
+ e.preventDefault();
102
+
103
+ if (isAuthed) {
104
+ window.location = (0, _linksOld.getMemberLink)(isLinkExternal, releaseBranch).to;
105
+ return;
106
+ }
107
+
108
+ var redirectURL = window.location.href;
109
+
110
+ var query = _querystring["default"].stringify({
111
+ destination: redirectURL
112
+ });
113
+
114
+ window.location = (0, _linksOld.getLoginLink)(releaseBranch).to + '?' + query;
115
+ };
116
+
117
+ var Icon = /*#__PURE__*/_react["default"].createElement(_icon.Member, {
118
+ releaseBranch: releaseBranch
119
+ });
120
+
121
+ var buttonTheme;
122
+
123
+ if (isForHambuger) {
124
+ if (theme === _theme.THEME.transparent) {
125
+ buttonTheme = _theme.THEME.normal;
126
+ } else {
127
+ buttonTheme = theme;
128
+ }
129
+ } else {
130
+ buttonTheme = theme;
131
+ }
132
+
133
+ var LoginButton = memberButtonType === MemberButtonType.ICON || isAuthed ? /*#__PURE__*/_react["default"].createElement(_button.IconButton, {
134
+ iconComponent: Icon,
135
+ theme: buttonTheme
136
+ }) : /*#__PURE__*/_react["default"].createElement(_button.TextButton, {
137
+ text: "\u767B\u5165",
138
+ theme: buttonTheme,
139
+ style: _button.TextButton.Style.DARK
140
+ });
141
+ return /*#__PURE__*/_react["default"].createElement(IconContainer, {
142
+ key: "login"
143
+ }, /*#__PURE__*/_react["default"].createElement(LogContainer, {
144
+ onClick: onClickIcon
145
+ }, LoginButton));
146
+ };
147
+
148
+ MemberIcon.propTypes = {
149
+ memberButtonType: _propTypes["default"].oneOf(Object.values(MemberButtonType)),
150
+ isForHambuger: _propTypes["default"].bool
151
+ };
152
+
153
+ var SearchIcon = function SearchIcon() {
154
+ var _useState = (0, _react.useState)(false),
155
+ _useState2 = _slicedToArray(_useState, 2),
156
+ isSearchOpened = _useState2[0],
157
+ setSearchOpened = _useState2[1];
158
+
159
+ var _useContext2 = (0, _react.useContext)(_headerContext["default"]),
160
+ isLinkExternal = _useContext2.isLinkExternal,
161
+ releaseBranch = _useContext2.releaseBranch,
162
+ theme = _useContext2.theme;
163
+
164
+ var closeSearchBox = function closeSearchBox() {
165
+ setSearchOpened(false);
166
+ };
167
+
168
+ var handleClickSearch = function handleClickSearch(e) {
169
+ e.preventDefault();
170
+ setSearchOpened(true);
171
+
172
+ if (!ref.current) {
173
+ return;
174
+ }
175
+
176
+ var input = ref.current.getElementsByTagName('INPUT')[0];
177
+
178
+ if (input) {
179
+ input.focus();
180
+ }
181
+ };
182
+
183
+ var onSearch = function onSearch(keywords) {
184
+ setSearchOpened(false);
185
+
186
+ if (!window) {
187
+ return;
188
+ }
189
+
190
+ window.location = "".concat((0, _linksOld.getSearchLink)(isLinkExternal, releaseBranch).to, "?q=").concat(keywords);
191
+ };
192
+
193
+ var Icon = /*#__PURE__*/_react["default"].createElement(_icon.Search, {
194
+ releaseBranch: releaseBranch
195
+ });
196
+
197
+ var ref = (0, _hook.useOutsideClick)(closeSearchBox);
198
+ return /*#__PURE__*/_react["default"].createElement(IconContainer, {
199
+ ref: ref,
200
+ key: "search"
201
+ }, /*#__PURE__*/_react["default"].createElement(Container, {
202
+ onClick: handleClickSearch,
203
+ isSearchOpened: isSearchOpened
204
+ }, /*#__PURE__*/_react["default"].createElement(_button.IconButton, {
205
+ iconComponent: Icon,
206
+ theme: theme
207
+ })), /*#__PURE__*/_react["default"].createElement(SearchContainer, {
208
+ isSearchOpened: isSearchOpened
209
+ }, /*#__PURE__*/_react["default"].createElement(_input.SearchBar, {
210
+ placeholder: "\u95DC\u9375\u5B57\u641C\u5C0B",
211
+ theme: theme,
212
+ onClose: closeSearchBox,
213
+ onSearch: onSearch
214
+ })));
215
+ };
216
+
217
+ var BookmarkIcon = function BookmarkIcon() {
218
+ var _useContext3 = (0, _react.useContext)(_headerContext["default"]),
219
+ releaseBranch = _useContext3.releaseBranch,
220
+ isLinkExternal = _useContext3.isLinkExternal,
221
+ theme = _useContext3.theme;
222
+
223
+ var link = (0, _linksOld.getBookmarksLink)(isLinkExternal, releaseBranch);
224
+
225
+ var Icon = /*#__PURE__*/_react["default"].createElement(_icon.Bookmark, {
226
+ releaseBranch: releaseBranch
227
+ });
228
+
229
+ return /*#__PURE__*/_react["default"].createElement(IconContainer, {
230
+ key: "bookmark"
231
+ }, /*#__PURE__*/_react["default"].createElement(_customizedLink["default"], link, /*#__PURE__*/_react["default"].createElement(_button.IconButton, {
232
+ iconComponent: Icon,
233
+ theme: theme
234
+ })));
235
+ };
236
+
237
+ var Icons = function Icons() {
238
+ return /*#__PURE__*/_react["default"].createElement(IconsContainer, null, /*#__PURE__*/_react["default"].createElement(SearchIcon, null), /*#__PURE__*/_react["default"].createElement(BookmarkIcon, null), /*#__PURE__*/_react["default"].createElement(MemberIcon, null));
239
+ };
240
+
241
+ var MobileIcons = function MobileIcons(_ref2) {
242
+ var _ref2$isForHambuger = _ref2.isForHambuger,
243
+ isForHambuger = _ref2$isForHambuger === void 0 ? false : _ref2$isForHambuger;
244
+ return /*#__PURE__*/_react["default"].createElement(IconsContainer, null, /*#__PURE__*/_react["default"].createElement(MemberIcon, {
245
+ memberButtonType: MemberButtonType.TEXT,
246
+ isForHambuger: isForHambuger
247
+ }));
248
+ };
249
+
250
+ exports.MobileIcons = MobileIcons;
251
+ MobileIcons.propTypes = {
252
+ isForHambuger: _propTypes["default"].bool
253
+ };
254
+ var _default = Icons;
255
+ exports["default"] = _default;
@@ -214,15 +214,15 @@ var SearchIcon = function SearchIcon() {
214
214
  })));
215
215
  };
216
216
 
217
- var BookmarkIcon = function BookmarkIcon() {
217
+ var MyReadingIcon = function MyReadingIcon() {
218
218
  var _useContext3 = (0, _react.useContext)(_headerContext["default"]),
219
219
  releaseBranch = _useContext3.releaseBranch,
220
220
  isLinkExternal = _useContext3.isLinkExternal,
221
221
  theme = _useContext3.theme;
222
222
 
223
- var link = (0, _links.getBookmarksLink)(isLinkExternal, releaseBranch);
223
+ var link = (0, _links.getMyReadingLink)(isLinkExternal, releaseBranch);
224
224
 
225
- var Icon = /*#__PURE__*/_react["default"].createElement(_icon.Bookmark, {
225
+ var Icon = /*#__PURE__*/_react["default"].createElement(_icon.KidStar, {
226
226
  releaseBranch: releaseBranch
227
227
  });
228
228
 
@@ -235,7 +235,7 @@ var BookmarkIcon = function BookmarkIcon() {
235
235
  };
236
236
 
237
237
  var Icons = function Icons() {
238
- return /*#__PURE__*/_react["default"].createElement(IconsContainer, null, /*#__PURE__*/_react["default"].createElement(SearchIcon, null), /*#__PURE__*/_react["default"].createElement(BookmarkIcon, null), /*#__PURE__*/_react["default"].createElement(MemberIcon, null));
238
+ return /*#__PURE__*/_react["default"].createElement(IconsContainer, null, /*#__PURE__*/_react["default"].createElement(SearchIcon, null), /*#__PURE__*/_react["default"].createElement(MyReadingIcon, null), /*#__PURE__*/_react["default"].createElement(MemberIcon, null));
239
239
  };
240
240
 
241
241
  var MobileIcons = function MobileIcons(_ref2) {
@@ -0,0 +1,144 @@
1
+ "use strict";
2
+
3
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = void 0;
9
+
10
+ var _react = _interopRequireWildcard(require("react"));
11
+
12
+ var _styledComponents = _interopRequireWildcard(require("styled-components"));
13
+
14
+ var _headerContext = _interopRequireWildcard(require("../contexts/header-context"));
15
+
16
+ var _links = require("../utils/links");
17
+
18
+ var _theme = require("../utils/theme");
19
+
20
+ var _theme2 = _interopRequireDefault(require("../constants/theme"));
21
+
22
+ var _customizedLink = _interopRequireDefault(require("@twreporter/react-components/lib/customized-link"));
23
+
24
+ var _materialIcon = _interopRequireDefault(require("@twreporter/react-components/lib/material-icon"));
25
+
26
+ var _button = require("@twreporter/react-components/lib/button");
27
+
28
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
29
+
30
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
31
+
32
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
33
+
34
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }
35
+
36
+ var TabBarContainer = /*#__PURE__*/_styledComponents["default"].div.withConfig({
37
+ displayName: "tab-bar-old__TabBarContainer",
38
+ componentId: "odm8r5-0"
39
+ })(["display:flex;justify-content:space-between;padding:8px 16px;box-shadow:0px 0px 2px rgba(0,0,0,0.15);background-color:", ";padding-bottom:calc(8px + env(safe-area-inset-bottom,0));a{text-decoration:none;}a:visited,a:active{color:inherit;background-color:inherit;}"], function (props) {
40
+ return props.bgColor;
41
+ });
42
+
43
+ var buttonContainerCss = /*#__PURE__*/(0, _styledComponents.css)(["display:flex;justify-content:center;margin-right:8px;flex:1;&:last-child{margin-right:0;}"]);
44
+ var ButtonLinkContainer = /*#__PURE__*/(0, _styledComponents["default"])(_customizedLink["default"]).withConfig({
45
+ displayName: "tab-bar-old__ButtonLinkContainer",
46
+ componentId: "odm8r5-1"
47
+ })(["text-decoration:none;", ""], buttonContainerCss);
48
+
49
+ var ButtonContainer = /*#__PURE__*/_styledComponents["default"].div.withConfig({
50
+ displayName: "tab-bar-old__ButtonContainer",
51
+ componentId: "odm8r5-2"
52
+ })(["", ""], buttonContainerCss);
53
+
54
+ var TabBar = function TabBar() {
55
+ var _useContext = (0, _react.useContext)(_headerContext["default"]),
56
+ theme = _useContext.theme,
57
+ releaseBranch = _useContext.releaseBranch,
58
+ isLinkExternal = _useContext.isLinkExternal,
59
+ pathname = _useContext.pathname;
60
+
61
+ var _useContext2 = (0, _react.useContext)(_headerContext.HamburgerContext),
62
+ closeHamburgerMenu = _useContext2.closeHamburgerMenu,
63
+ toggleHamburger = _useContext2.toggleHamburger,
64
+ isHamburgerMenuOpen = _useContext2.isHamburgerMenuOpen;
65
+
66
+ var iconTheme = theme === _theme2["default"].photography ? theme : _theme2["default"].normal;
67
+
68
+ var _getTabBarLinks = (0, _links.getTabBarLinks)(isLinkExternal, releaseBranch),
69
+ home = _getTabBarLinks.home,
70
+ latest = _getTabBarLinks.latest,
71
+ bookmark = _getTabBarLinks.bookmark;
72
+
73
+ var HomeIcon = /*#__PURE__*/_react["default"].createElement(_materialIcon["default"], {
74
+ icon: "home",
75
+ weight: 400,
76
+ grade: 0,
77
+ size: 24
78
+ });
79
+
80
+ var ClockIcon = /*#__PURE__*/_react["default"].createElement(_materialIcon["default"], {
81
+ icon: "schedule",
82
+ weight: 400,
83
+ grade: 0,
84
+ size: 24
85
+ });
86
+
87
+ var BookmarkIcon = /*#__PURE__*/_react["default"].createElement(_materialIcon["default"], {
88
+ icon: "bookmark",
89
+ weight: 400,
90
+ grade: 0,
91
+ size: 24
92
+ });
93
+
94
+ var HamburgerIcon = /*#__PURE__*/_react["default"].createElement(_materialIcon["default"], {
95
+ icon: "menu",
96
+ weight: 400,
97
+ grade: 0,
98
+ size: 24
99
+ });
100
+
101
+ var _selectTabBarTheme = (0, _theme.selectTabBarTheme)(theme),
102
+ bgColor = _selectTabBarTheme.bgColor,
103
+ borderColor = _selectTabBarTheme.borderColor;
104
+
105
+ var isHomeActive = !isHamburgerMenuOpen && pathname === '/';
106
+ var isLatestActive = !isHamburgerMenuOpen && (0, _links.checkPathnameParent)(pathname, 'latest');
107
+ var isBookmarkActive = !isHamburgerMenuOpen && pathname === '/bookmarks';
108
+ var hamburgerIconText = isHamburgerMenuOpen ? '關閉選單' : '選單';
109
+ return /*#__PURE__*/_react["default"].createElement(TabBarContainer, {
110
+ bgColor: bgColor,
111
+ borderColor: borderColor
112
+ }, /*#__PURE__*/_react["default"].createElement(ButtonLinkContainer, _extends({}, home, {
113
+ onClick: closeHamburgerMenu
114
+ }), /*#__PURE__*/_react["default"].createElement(_button.IconWithTextButton, {
115
+ text: "\u9996\u9801",
116
+ iconComponent: HomeIcon,
117
+ theme: iconTheme,
118
+ active: isHomeActive
119
+ })), /*#__PURE__*/_react["default"].createElement(ButtonLinkContainer, _extends({}, latest, {
120
+ onClick: closeHamburgerMenu
121
+ }), /*#__PURE__*/_react["default"].createElement(_button.IconWithTextButton, {
122
+ text: "\u6700\u65B0",
123
+ iconComponent: ClockIcon,
124
+ theme: iconTheme,
125
+ active: isLatestActive
126
+ })), /*#__PURE__*/_react["default"].createElement(ButtonLinkContainer, _extends({}, bookmark, {
127
+ onClick: closeHamburgerMenu
128
+ }), /*#__PURE__*/_react["default"].createElement(_button.IconWithTextButton, {
129
+ text: "\u6211\u7684\u66F8\u7C64",
130
+ iconComponent: BookmarkIcon,
131
+ theme: iconTheme,
132
+ active: isBookmarkActive
133
+ })), /*#__PURE__*/_react["default"].createElement(ButtonContainer, {
134
+ onClick: toggleHamburger
135
+ }, /*#__PURE__*/_react["default"].createElement(_button.IconWithTextButton, {
136
+ text: hamburgerIconText,
137
+ iconComponent: HamburgerIcon,
138
+ theme: iconTheme,
139
+ active: isHamburgerMenuOpen
140
+ })));
141
+ };
142
+
143
+ var _default = TabBar;
144
+ exports["default"] = _default;
@@ -68,7 +68,8 @@ var TabBar = function TabBar() {
68
68
  var _getTabBarLinks = (0, _links.getTabBarLinks)(isLinkExternal, releaseBranch),
69
69
  home = _getTabBarLinks.home,
70
70
  latest = _getTabBarLinks.latest,
71
- bookmark = _getTabBarLinks.bookmark;
71
+ topic = _getTabBarLinks.topic,
72
+ myreading = _getTabBarLinks.myreading;
72
73
 
73
74
  var HomeIcon = /*#__PURE__*/_react["default"].createElement(_materialIcon["default"], {
74
75
  icon: "home",
@@ -84,8 +85,15 @@ var TabBar = function TabBar() {
84
85
  size: 24
85
86
  });
86
87
 
87
- var BookmarkIcon = /*#__PURE__*/_react["default"].createElement(_materialIcon["default"], {
88
- icon: "bookmark",
88
+ var TopicIcon = /*#__PURE__*/_react["default"].createElement(_materialIcon["default"], {
89
+ icon: "import_contacts",
90
+ weight: 400,
91
+ grade: 0,
92
+ size: 24
93
+ });
94
+
95
+ var MyReadingIcon = /*#__PURE__*/_react["default"].createElement(_materialIcon["default"], {
96
+ icon: "kid_star",
89
97
  weight: 400,
90
98
  grade: 0,
91
99
  size: 24
@@ -104,7 +112,8 @@ var TabBar = function TabBar() {
104
112
 
105
113
  var isHomeActive = !isHamburgerMenuOpen && pathname === '/';
106
114
  var isLatestActive = !isHamburgerMenuOpen && (0, _links.checkPathnameParent)(pathname, 'latest');
107
- var isBookmarkActive = !isHamburgerMenuOpen && pathname === '/bookmarks';
115
+ var isTopicActive = !isHamburgerMenuOpen && pathname === '/topics';
116
+ var isMyReadingActive = !isHamburgerMenuOpen && pathname === '/myreading';
108
117
  var hamburgerIconText = isHamburgerMenuOpen ? '關閉選單' : '選單';
109
118
  return /*#__PURE__*/_react["default"].createElement(TabBarContainer, {
110
119
  bgColor: bgColor,
@@ -123,13 +132,20 @@ var TabBar = function TabBar() {
123
132
  iconComponent: ClockIcon,
124
133
  theme: iconTheme,
125
134
  active: isLatestActive
126
- })), /*#__PURE__*/_react["default"].createElement(ButtonLinkContainer, _extends({}, bookmark, {
135
+ })), /*#__PURE__*/_react["default"].createElement(ButtonLinkContainer, _extends({}, topic, {
136
+ onClick: closeHamburgerMenu
137
+ }), /*#__PURE__*/_react["default"].createElement(_button.IconWithTextButton, {
138
+ text: "\u6DF1\u5EA6\u5C08\u984C",
139
+ iconComponent: TopicIcon,
140
+ theme: iconTheme,
141
+ active: isTopicActive
142
+ })), /*#__PURE__*/_react["default"].createElement(ButtonLinkContainer, _extends({}, myreading, {
127
143
  onClick: closeHamburgerMenu
128
144
  }), /*#__PURE__*/_react["default"].createElement(_button.IconWithTextButton, {
129
- text: "\u6211\u7684\u66F8\u7C64",
130
- iconComponent: BookmarkIcon,
145
+ text: "\u6211\u7684\u95B1\u8B80",
146
+ iconComponent: MyReadingIcon,
131
147
  theme: iconTheme,
132
- active: isBookmarkActive
148
+ active: isMyReadingActive
133
149
  })), /*#__PURE__*/_react["default"].createElement(ButtonContainer, {
134
150
  onClick: toggleHamburger
135
151
  }, /*#__PURE__*/_react["default"].createElement(_button.IconWithTextButton, {
@@ -10,15 +10,16 @@ var _FOOTER_PATH, _FOOTER_LABEL;
10
10
  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; }
11
11
 
12
12
  var footerKey = {
13
+ foundation: 'foundation',
13
14
  aboutUs: 'about-us',
14
15
  influenceReport: 'influence-report',
15
16
  openLab: 'open-lab'
16
17
  };
17
- var FOOTER_KEY = footerKey;
18
+ var FOOTER_KEY = Object.freeze(footerKey);
18
19
  exports.FOOTER_KEY = FOOTER_KEY;
19
- var FOOTER_PATH = (_FOOTER_PATH = {}, _defineProperty(_FOOTER_PATH, footerKey.aboutUs, '/about-us'), _defineProperty(_FOOTER_PATH, footerKey.influenceReport, '/a/impact-and-annual-report'), _FOOTER_PATH);
20
+ var FOOTER_PATH = (_FOOTER_PATH = {}, _defineProperty(_FOOTER_PATH, footerKey.foundation, '/categories/foundation'), _defineProperty(_FOOTER_PATH, footerKey.aboutUs, '/about-us'), _defineProperty(_FOOTER_PATH, footerKey.influenceReport, '/a/impact-and-annual-report'), _FOOTER_PATH);
20
21
  exports.FOOTER_PATH = FOOTER_PATH;
21
- var FOOTER_LABEL = (_FOOTER_LABEL = {}, _defineProperty(_FOOTER_LABEL, footerKey.aboutUs, '關於我們'), _defineProperty(_FOOTER_LABEL, footerKey.influenceReport, '影響力報告'), _defineProperty(_FOOTER_LABEL, footerKey.openLab, '報導者開放實驗室'), _FOOTER_LABEL);
22
+ var FOOTER_LABEL = (_FOOTER_LABEL = {}, _defineProperty(_FOOTER_LABEL, footerKey.foundation, '基金會消息'), _defineProperty(_FOOTER_LABEL, footerKey.aboutUs, '關於我們'), _defineProperty(_FOOTER_LABEL, footerKey.influenceReport, '影響力報告'), _defineProperty(_FOOTER_LABEL, footerKey.openLab, '報導者開放實驗室'), _FOOTER_LABEL);
22
23
  exports.FOOTER_LABEL = FOOTER_LABEL;
23
- var FOOTER_ORDER = [footerKey.aboutUs, footerKey.influenceReport, footerKey.openLab];
24
+ var FOOTER_ORDER = [footerKey.foundation, footerKey.aboutUs, footerKey.influenceReport, footerKey.openLab];
24
25
  exports.FOOTER_ORDER = FOOTER_ORDER;
@@ -3,9 +3,9 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.FOOTER_PATH = exports.FOOTER_ORDER = exports.FOOTER_LABEL = exports.FOOTER_KEY = void 0;
6
+ exports.MEMBER_ORDER = exports.FOOTER_PATH = exports.FOOTER_ORDER = exports.FOOTER_LABEL = exports.FOOTER_KEY = exports.FOOTER_ICON = void 0;
7
7
 
8
- var _FOOTER_PATH, _FOOTER_LABEL;
8
+ var _FOOTER_PATH, _FOOTER_LABEL, _FOOTER_ICON;
9
9
 
10
10
  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; }
11
11
 
@@ -13,13 +13,21 @@ var footerKey = {
13
13
  foundation: 'foundation',
14
14
  aboutUs: 'about-us',
15
15
  influenceReport: 'influence-report',
16
- openLab: 'open-lab'
16
+ openLab: 'open-lab',
17
+ member: 'member',
18
+ myReading: 'myreading',
19
+ bookmark: 'bookmark',
20
+ history: 'history'
17
21
  };
18
22
  var FOOTER_KEY = Object.freeze(footerKey);
19
23
  exports.FOOTER_KEY = FOOTER_KEY;
20
- var FOOTER_PATH = (_FOOTER_PATH = {}, _defineProperty(_FOOTER_PATH, footerKey.foundation, '/categories/foundation'), _defineProperty(_FOOTER_PATH, footerKey.aboutUs, '/about-us'), _defineProperty(_FOOTER_PATH, footerKey.influenceReport, '/a/impact-and-annual-report'), _FOOTER_PATH);
24
+ var FOOTER_PATH = (_FOOTER_PATH = {}, _defineProperty(_FOOTER_PATH, footerKey.foundation, '/categories/foundation'), _defineProperty(_FOOTER_PATH, footerKey.aboutUs, '/about-us'), _defineProperty(_FOOTER_PATH, footerKey.influenceReport, '/a/impact-and-annual-report'), _defineProperty(_FOOTER_PATH, footerKey.member, '/account'), _defineProperty(_FOOTER_PATH, footerKey.myReading, '/myreading'), _defineProperty(_FOOTER_PATH, footerKey.bookmark, '/myreading/saved'), _defineProperty(_FOOTER_PATH, footerKey.history, '/myreading/history'), _FOOTER_PATH);
21
25
  exports.FOOTER_PATH = FOOTER_PATH;
22
- var FOOTER_LABEL = (_FOOTER_LABEL = {}, _defineProperty(_FOOTER_LABEL, footerKey.foundation, '基金會消息'), _defineProperty(_FOOTER_LABEL, footerKey.aboutUs, '關於我們'), _defineProperty(_FOOTER_LABEL, footerKey.influenceReport, '影響力報告'), _defineProperty(_FOOTER_LABEL, footerKey.openLab, '報導者開放實驗室'), _FOOTER_LABEL);
26
+ var FOOTER_LABEL = (_FOOTER_LABEL = {}, _defineProperty(_FOOTER_LABEL, footerKey.foundation, '基金會消息'), _defineProperty(_FOOTER_LABEL, footerKey.aboutUs, '關於我們'), _defineProperty(_FOOTER_LABEL, footerKey.influenceReport, '影響力報告'), _defineProperty(_FOOTER_LABEL, footerKey.openLab, '報導者開放實驗室'), _defineProperty(_FOOTER_LABEL, footerKey.member, '個人專區'), _defineProperty(_FOOTER_LABEL, footerKey.myReading, '我的閱讀'), _defineProperty(_FOOTER_LABEL, footerKey.bookmark, '已收藏'), _defineProperty(_FOOTER_LABEL, footerKey.history, '造訪紀錄'), _FOOTER_LABEL);
23
27
  exports.FOOTER_LABEL = FOOTER_LABEL;
28
+ var FOOTER_ICON = (_FOOTER_ICON = {}, _defineProperty(_FOOTER_ICON, footerKey.member, 'member'), _defineProperty(_FOOTER_ICON, footerKey.myReading, 'kid_star'), _defineProperty(_FOOTER_ICON, footerKey.bookmark, 'bookmark_basic'), _defineProperty(_FOOTER_ICON, footerKey.history, 'history'), _FOOTER_ICON);
29
+ exports.FOOTER_ICON = FOOTER_ICON;
24
30
  var FOOTER_ORDER = [footerKey.foundation, footerKey.aboutUs, footerKey.influenceReport, footerKey.openLab];
25
- exports.FOOTER_ORDER = FOOTER_ORDER;
31
+ exports.FOOTER_ORDER = FOOTER_ORDER;
32
+ var MEMBER_ORDER = [footerKey.member, footerKey.myReading, footerKey.bookmark, footerKey.history];
33
+ exports.MEMBER_ORDER = MEMBER_ORDER;
@@ -17,6 +17,10 @@ var _propTypes = require("../constants/prop-types");
17
17
 
18
18
  var _header = _interopRequireDefault(require("../components/header"));
19
19
 
20
+ var _headerOld = _interopRequireDefault(require("../components/header-old"));
21
+
22
+ var _featureFlag = require("@twreporter/core/lib/constants/feature-flag");
23
+
20
24
  var _get = _interopRequireDefault(require("lodash/get"));
21
25
 
22
26
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
@@ -47,6 +51,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g
47
51
 
48
52
  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; }
49
53
 
54
+ var Header = _featureFlag.MY_READING ? _header["default"] : _headerOld["default"];
50
55
  var _ = {
51
56
  get: _get["default"]
52
57
  };
@@ -203,7 +208,7 @@ var Container = /*#__PURE__*/function (_React$PureComponent) {
203
208
  };
204
209
  return /*#__PURE__*/_react["default"].createElement(_headerContext["default"].Provider, {
205
210
  value: contextValue
206
- }, /*#__PURE__*/_react["default"].createElement(_header["default"], {
211
+ }, /*#__PURE__*/_react["default"].createElement(Header, {
207
212
  hamburgerContext: hamburgerContext
208
213
  }));
209
214
  }
@@ -176,7 +176,7 @@ function getFooterLinks() {
176
176
 
177
177
  var isExternal = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultIsExternal;
178
178
  var releaseBranch = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defaultReleaseBranch;
179
- return _ref2 = {}, _defineProperty(_ref2, _footerOld.FOOTER_KEY.foundation, __getLink(true, releaseBranch, mainBaseURL, _footerOld.FOOTER_PATH[_footerOld.FOOTER_KEY.foundation])), _defineProperty(_ref2, _footerOld.FOOTER_KEY.aboutUs, __getLink(true, releaseBranch, mainBaseURL, _footerOld.FOOTER_PATH[_footerOld.FOOTER_KEY.aboutUs], '_blank')), _defineProperty(_ref2, _footerOld.FOOTER_KEY.influenceReport, __getLink(isExternal, releaseBranch, mainBaseURL, _footerOld.FOOTER_PATH[_footerOld.FOOTER_KEY.influenceReport])), _defineProperty(_ref2, _footerOld.FOOTER_KEY.openLab, __composeExternalLink(__getExternalLinks().openLab, '_blank')), _ref2;
179
+ return _ref2 = {}, _defineProperty(_ref2, _footerOld.FOOTER_KEY.foundation, __getLink(isExternal, releaseBranch, mainBaseURL, _footerOld.FOOTER_PATH[_footerOld.FOOTER_KEY.foundation])), _defineProperty(_ref2, _footerOld.FOOTER_KEY.aboutUs, __getLink(true, releaseBranch, mainBaseURL, _footerOld.FOOTER_PATH[_footerOld.FOOTER_KEY.aboutUs], '_blank')), _defineProperty(_ref2, _footerOld.FOOTER_KEY.influenceReport, __getLink(isExternal, releaseBranch, mainBaseURL, _footerOld.FOOTER_PATH[_footerOld.FOOTER_KEY.influenceReport])), _defineProperty(_ref2, _footerOld.FOOTER_KEY.openLab, __composeExternalLink(__getExternalLinks().openLab, '_blank')), _ref2;
180
180
  }
181
181
 
182
182
  function getSocialMediaLinks() {
@@ -12,6 +12,8 @@ exports.getLink = getLink;
12
12
  exports.getLoginLink = getLoginLink;
13
13
  exports.getLogoLink = getLogoLink;
14
14
  exports.getMemberLink = getMemberLink;
15
+ exports.getMemberLinks = getMemberLinks;
16
+ exports.getMyReadingLink = getMyReadingLink;
15
17
  exports.getSearchLink = getSearchLink;
16
18
  exports.getSocialMediaLinks = getSocialMediaLinks;
17
19
  exports.getTabBarLinks = getTabBarLinks;
@@ -148,7 +150,13 @@ function getMemberLink() {
148
150
  function getBookmarksLink() {
149
151
  var isExternal = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultIsExternal;
150
152
  var releaseBranch = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defaultReleaseBranch;
151
- return __getLink(isExternal, releaseBranch, mainBaseURL, '/bookmarks');
153
+ return __getLink(isExternal, releaseBranch, mainBaseURL, '/myreading/saved');
154
+ }
155
+
156
+ function getMyReadingLink() {
157
+ var isExternal = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultIsExternal;
158
+ var releaseBranch = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defaultReleaseBranch;
159
+ return __getLink(isExternal, releaseBranch, mainBaseURL, '/myreading');
152
160
  }
153
161
 
154
162
  function getSearchLink() {
@@ -179,6 +187,15 @@ function getFooterLinks() {
179
187
  return _ref2 = {}, _defineProperty(_ref2, _footer.FOOTER_KEY.foundation, __getLink(isExternal, releaseBranch, mainBaseURL, _footer.FOOTER_PATH[_footer.FOOTER_KEY.foundation])), _defineProperty(_ref2, _footer.FOOTER_KEY.aboutUs, __getLink(true, releaseBranch, mainBaseURL, _footer.FOOTER_PATH[_footer.FOOTER_KEY.aboutUs], '_blank')), _defineProperty(_ref2, _footer.FOOTER_KEY.influenceReport, __getLink(isExternal, releaseBranch, mainBaseURL, _footer.FOOTER_PATH[_footer.FOOTER_KEY.influenceReport])), _defineProperty(_ref2, _footer.FOOTER_KEY.openLab, __composeExternalLink(__getExternalLinks().openLab, '_blank')), _ref2;
180
188
  }
181
189
 
190
+ function getMemberLinks() {
191
+ var isExternal = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultIsExternal;
192
+ var releaseBranch = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defaultReleaseBranch;
193
+ return _.reduce(_footer.MEMBER_ORDER, function (res, memberKey) {
194
+ res[memberKey] = __getLink(isExternal, releaseBranch, mainBaseURL, _footer.FOOTER_PATH[memberKey]);
195
+ return res;
196
+ }, {});
197
+ }
198
+
182
199
  function getSocialMediaLinks() {
183
200
  var externalLinks = __getExternalLinks();
184
201
 
@@ -214,6 +231,7 @@ function getTabBarLinks() {
214
231
  return {
215
232
  home: __getLink(isExternal, releaseBranch, mainBaseURL, ''),
216
233
  latest: __getLink(isExternal, releaseBranch, mainBaseURL, '/latest'),
217
- bookmark: __getLink(isExternal, releaseBranch, mainBaseURL, '/bookmarks')
234
+ topic: __getLink(isExternal, releaseBranch, mainBaseURL, '/topics'),
235
+ myreading: __getLink(isExternal, releaseBranch, mainBaseURL, '/myreading')
218
236
  };
219
237
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@twreporter/universal-header",
3
- "version": "2.10.1-rc.1",
3
+ "version": "2.11.0-rc.0",
4
4
  "description": "Universal header of TWReporter sites",
5
5
  "main": "lib/index.js",
6
6
  "scripts": {
@@ -20,8 +20,8 @@
20
20
  ],
21
21
  "license": "MIT",
22
22
  "dependencies": {
23
- "@twreporter/core": "^1.17.0",
24
- "@twreporter/react-components": "^8.24.1-rc.1",
23
+ "@twreporter/core": "^1.17.1-rc.0",
24
+ "@twreporter/react-components": "^8.25.0-rc.0",
25
25
  "lodash": "^4.17.11",
26
26
  "prop-types": "^15.6.2",
27
27
  "querystring": "^0.2.0",
@@ -51,5 +51,5 @@
51
51
  "babel-loader": "^8.2.5",
52
52
  "react-dom": "16.8.6"
53
53
  },
54
- "gitHead": "96ee1e6fcb830faf4727a1222735ce881453ea38"
54
+ "gitHead": "42b025c9e74ea6697305ccabfa5dada913efc099"
55
55
  }