@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 +11 -0
- package/lib/components/hamburger-footer.js +34 -3
- package/lib/components/hamburger-menu.js +1 -1
- package/lib/components/header-old.js +393 -0
- package/lib/components/header.js +4 -4
- package/lib/components/icons-old.js +255 -0
- package/lib/components/icons.js +4 -4
- package/lib/components/tab-bar-old.js +144 -0
- package/lib/components/tab-bar.js +24 -8
- package/lib/constants/footer-old.js +5 -4
- package/lib/constants/footer.js +14 -6
- package/lib/containers/header.js +6 -1
- package/lib/utils/links-old.js +1 -1
- package/lib/utils/links.js +20 -2
- package/package.json +4 -4
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
|
-
},
|
|
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.
|
|
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;
|
package/lib/components/header.js
CHANGED
|
@@ -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:
|
|
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;
|
package/lib/components/icons.js
CHANGED
|
@@ -214,15 +214,15 @@ var SearchIcon = function SearchIcon() {
|
|
|
214
214
|
})));
|
|
215
215
|
};
|
|
216
216
|
|
|
217
|
-
var
|
|
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.
|
|
223
|
+
var link = (0, _links.getMyReadingLink)(isLinkExternal, releaseBranch);
|
|
224
224
|
|
|
225
|
-
var Icon = /*#__PURE__*/_react["default"].createElement(_icon.
|
|
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(
|
|
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
|
-
|
|
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
|
|
88
|
-
icon: "
|
|
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
|
|
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({},
|
|
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\
|
|
130
|
-
iconComponent:
|
|
145
|
+
text: "\u6211\u7684\u95B1\u8B80",
|
|
146
|
+
iconComponent: MyReadingIcon,
|
|
131
147
|
theme: iconTheme,
|
|
132
|
-
active:
|
|
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;
|
package/lib/constants/footer.js
CHANGED
|
@@ -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;
|
package/lib/containers/header.js
CHANGED
|
@@ -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(
|
|
211
|
+
}, /*#__PURE__*/_react["default"].createElement(Header, {
|
|
207
212
|
hamburgerContext: hamburgerContext
|
|
208
213
|
}));
|
|
209
214
|
}
|
package/lib/utils/links-old.js
CHANGED
|
@@ -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(
|
|
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() {
|
package/lib/utils/links.js
CHANGED
|
@@ -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, '/
|
|
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
|
-
|
|
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.
|
|
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.
|
|
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": "
|
|
54
|
+
"gitHead": "42b025c9e74ea6697305ccabfa5dada913efc099"
|
|
55
55
|
}
|