@twreporter/universal-header 3.0.17 → 3.1.0-rc.1
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.
|
@@ -11,7 +11,8 @@ var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
|
11
11
|
var _headerContext = _interopRequireWildcard(require("../contexts/header-context"));
|
|
12
12
|
var _links = require("../utils/links");
|
|
13
13
|
var _theme = require("../utils/theme");
|
|
14
|
-
var _channels = require("../constants/channels");
|
|
14
|
+
var _channels = _interopRequireDefault(require("../constants/channels"));
|
|
15
|
+
var _channelsNew = _interopRequireDefault(require("../constants/channels-new"));
|
|
15
16
|
var _hamburgerMenu = require("../constants/hamburger-menu");
|
|
16
17
|
var _actionButton = require("./action-button");
|
|
17
18
|
var _hamburgerMenuItem = require("./hamburger-menu-item");
|
|
@@ -26,11 +27,20 @@ var _input = require("@twreporter/react-components/lib/input");
|
|
|
26
27
|
var _categorySet = require("@twreporter/core/lib/constants/category-set");
|
|
27
28
|
var _theme2 = require("@twreporter/core/lib/constants/theme");
|
|
28
29
|
var _rwd = require("@twreporter/react-components/lib/rwd");
|
|
30
|
+
var _featureFlag = require("@twreporter/core/lib/constants/feature-flag");
|
|
29
31
|
var _hamburgerFooter = _interopRequireDefault(require("./hamburger-footer"));
|
|
30
32
|
var _map = _interopRequireDefault(require("lodash/map"));
|
|
31
33
|
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7; // context
|
|
32
34
|
// utils
|
|
33
35
|
// constants
|
|
36
|
+
// import {
|
|
37
|
+
// CHANNEL_KEY,
|
|
38
|
+
// CHANNEL_ORDER,
|
|
39
|
+
// CHANNEL_TYPE,
|
|
40
|
+
// CHANNEL_LABEL,
|
|
41
|
+
// CHANNEL_LINK_TYPE,
|
|
42
|
+
// CHANNEL_DROPDOWN,
|
|
43
|
+
// } from '../constants/channels'
|
|
34
44
|
// components
|
|
35
45
|
// @twreporter
|
|
36
46
|
// Footer
|
|
@@ -50,6 +60,13 @@ function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(
|
|
|
50
60
|
var _ = {
|
|
51
61
|
map: _map["default"]
|
|
52
62
|
};
|
|
63
|
+
var _ref = _featureFlag.LAWMAKER ? _channelsNew["default"] : _channels["default"],
|
|
64
|
+
CHANNEL_KEY = _ref.CHANNEL_KEY,
|
|
65
|
+
CHANNEL_ORDER = _ref.CHANNEL_ORDER,
|
|
66
|
+
CHANNEL_TYPE = _ref.CHANNEL_TYPE,
|
|
67
|
+
CHANNEL_LABEL = _ref.CHANNEL_LABEL,
|
|
68
|
+
CHANNEL_LINK_TYPE = _ref.CHANNEL_LINK_TYPE,
|
|
69
|
+
CHANNEL_DROPDOWN = _ref.CHANNEL_DROPDOWN;
|
|
53
70
|
|
|
54
71
|
// global var
|
|
55
72
|
var reserveHeightForIos15 = 48;
|
|
@@ -115,17 +132,17 @@ var StyledMobileHamburgerAction = /*#__PURE__*/(0, _styledComponents["default"])
|
|
|
115
132
|
displayName: "hamburger-menu__StyledMobileHamburgerAction",
|
|
116
133
|
componentId: "sc-15rzowt-12"
|
|
117
134
|
})(["width:100%;"]);
|
|
118
|
-
var DropdownContent = function DropdownContent(
|
|
119
|
-
var itemKey =
|
|
120
|
-
isActive =
|
|
121
|
-
toggleFunc =
|
|
135
|
+
var DropdownContent = function DropdownContent(_ref2) {
|
|
136
|
+
var itemKey = _ref2.itemKey,
|
|
137
|
+
isActive = _ref2.isActive,
|
|
138
|
+
toggleFunc = _ref2.toggleFunc;
|
|
122
139
|
var _useContext = (0, _react.useContext)(_headerContext["default"]),
|
|
123
140
|
releaseBranch = _useContext.releaseBranch,
|
|
124
141
|
isLinkExternal = _useContext.isLinkExternal;
|
|
125
142
|
var _useContext2 = (0, _react.useContext)(_headerContext.HamburgerContext),
|
|
126
143
|
closeHamburgerMenu = _useContext2.closeHamburgerMenu;
|
|
127
144
|
var subItemJSX;
|
|
128
|
-
if (itemKey ===
|
|
145
|
+
if (itemKey === CHANNEL_KEY.category) {
|
|
129
146
|
// category
|
|
130
147
|
subItemJSX = _.map(_categorySet.CATEGORY_ORDER, function (catKey) {
|
|
131
148
|
var label = _categorySet.CATEGORY_LABEL[catKey];
|
|
@@ -142,7 +159,7 @@ var DropdownContent = function DropdownContent(_ref) {
|
|
|
142
159
|
});
|
|
143
160
|
} else {
|
|
144
161
|
// subcategory
|
|
145
|
-
subItemJSX = _.map(
|
|
162
|
+
subItemJSX = _.map(CHANNEL_DROPDOWN[itemKey], function (subItem, key) {
|
|
146
163
|
var type = subItem.type;
|
|
147
164
|
var label, path;
|
|
148
165
|
if (type === 'subcategory') {
|
|
@@ -168,7 +185,7 @@ var DropdownContent = function DropdownContent(_ref) {
|
|
|
168
185
|
});
|
|
169
186
|
});
|
|
170
187
|
}
|
|
171
|
-
var label =
|
|
188
|
+
var label = CHANNEL_LABEL[itemKey];
|
|
172
189
|
var handleClick = function handleClick() {
|
|
173
190
|
return toggleFunc(itemKey);
|
|
174
191
|
};
|
|
@@ -201,17 +218,17 @@ var Content = function Content() {
|
|
|
201
218
|
activeKey = _useState2[0],
|
|
202
219
|
setActiveKey = _useState2[1];
|
|
203
220
|
var itemLinks = (0, _links.getChannelLinks)(isLinkExternal, releaseBranch);
|
|
204
|
-
var itemJSX = _.map(
|
|
221
|
+
var itemJSX = _.map(CHANNEL_ORDER, function (itemKey, index) {
|
|
205
222
|
// divider
|
|
206
223
|
if (itemKey === 'divider') {
|
|
207
224
|
return /*#__PURE__*/_react["default"].createElement(DividerContainer, {
|
|
208
225
|
key: index
|
|
209
226
|
}, /*#__PURE__*/_react["default"].createElement(_divider["default"], null));
|
|
210
227
|
}
|
|
211
|
-
var label =
|
|
212
|
-
var type =
|
|
228
|
+
var label = CHANNEL_LABEL[itemKey];
|
|
229
|
+
var type = CHANNEL_TYPE[itemKey];
|
|
213
230
|
// link type
|
|
214
|
-
if (type ===
|
|
231
|
+
if (type === CHANNEL_LINK_TYPE) {
|
|
215
232
|
var link = itemLinks && itemLinks[itemKey];
|
|
216
233
|
if (!label || !link) {
|
|
217
234
|
return;
|
|
@@ -238,8 +255,8 @@ var Content = function Content() {
|
|
|
238
255
|
});
|
|
239
256
|
return /*#__PURE__*/_react["default"].createElement(ContentSection, null, itemJSX);
|
|
240
257
|
};
|
|
241
|
-
var HamburgerMenu = function HamburgerMenu(
|
|
242
|
-
var props = _extends({}, (_objectDestructuringEmpty(
|
|
258
|
+
var HamburgerMenu = function HamburgerMenu(_ref3) {
|
|
259
|
+
var props = _extends({}, (_objectDestructuringEmpty(_ref3), _ref3));
|
|
243
260
|
var _useContext5 = (0, _react.useContext)(_headerContext["default"]),
|
|
244
261
|
theme = _useContext5.theme,
|
|
245
262
|
releaseBranch = _useContext5.releaseBranch,
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports["default"] = exports.DESKTOP_CHANNEL_ORDER = exports.CHANNEL_TYPE = exports.CHANNEL_PATH = exports.CHANNEL_ORDER = exports.CHANNEL_LINK_TYPE = exports.CHANNEL_LABEL = exports.CHANNEL_KEY = exports.CHANNEL_DROPDOWN_TYPE = exports.CHANNEL_DROPDOWN = void 0;
|
|
7
|
+
var _infogram = require("@twreporter/core/lib/constants/infogram");
|
|
8
|
+
var _categorySet = require("@twreporter/core/lib/constants/category-set");
|
|
9
|
+
var _CHANNEL_PATH, _CHANNEL_LABEL, _CHANNEL_TYPE, _CHANNEL_DROPDOWN;
|
|
10
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
11
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
12
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
13
|
+
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
14
|
+
var channelKey = {
|
|
15
|
+
latest: 'latest',
|
|
16
|
+
topic: 'topic',
|
|
17
|
+
category: 'category',
|
|
18
|
+
opinion: 'opinion',
|
|
19
|
+
column: 'column',
|
|
20
|
+
humanStory: 'human-story',
|
|
21
|
+
photography: 'photography',
|
|
22
|
+
podcast: 'podcast',
|
|
23
|
+
kidsReporter: 'kids-reporter',
|
|
24
|
+
infographic: 'infographic',
|
|
25
|
+
lawmaker: 'lawmaker'
|
|
26
|
+
};
|
|
27
|
+
var CHANNEL_KEY = exports.CHANNEL_KEY = channelKey;
|
|
28
|
+
|
|
29
|
+
// external links are in external-links.js file
|
|
30
|
+
var CHANNEL_PATH = exports.CHANNEL_PATH = (_CHANNEL_PATH = {}, _defineProperty(_CHANNEL_PATH, channelKey.latest, '/latest'), _defineProperty(_CHANNEL_PATH, channelKey.topic, '/topics'), _defineProperty(_CHANNEL_PATH, channelKey.humanStory, '/tags/58db34a30f56b40d001ae6a6'), _defineProperty(_CHANNEL_PATH, channelKey.photography, '/photography'), _defineProperty(_CHANNEL_PATH, channelKey.infographic, "/tags/".concat(_infogram.INFOGRAM_ID)), _CHANNEL_PATH);
|
|
31
|
+
var CHANNEL_LABEL = exports.CHANNEL_LABEL = (_CHANNEL_LABEL = {}, _defineProperty(_CHANNEL_LABEL, channelKey.latest, '最新'), _defineProperty(_CHANNEL_LABEL, channelKey.topic, '深度專題'), _defineProperty(_CHANNEL_LABEL, channelKey.category, '議題'), _defineProperty(_CHANNEL_LABEL, channelKey.opinion, '評論'), _defineProperty(_CHANNEL_LABEL, channelKey.column, '專欄'), _defineProperty(_CHANNEL_LABEL, channelKey.humanStory, '人物故事'), _defineProperty(_CHANNEL_LABEL, channelKey.photography, '影像'), _defineProperty(_CHANNEL_LABEL, channelKey.podcast, 'Podcast'), _defineProperty(_CHANNEL_LABEL, channelKey.kidsReporter, '少年報導者'), _defineProperty(_CHANNEL_LABEL, channelKey.infographic, '數位敘事'), _defineProperty(_CHANNEL_LABEL, channelKey.lawmaker, '報導者觀測站'), _CHANNEL_LABEL);
|
|
32
|
+
var channelLinkType = 'link';
|
|
33
|
+
var channelDropDownType = 'drop-down';
|
|
34
|
+
var CHANNEL_LINK_TYPE = exports.CHANNEL_LINK_TYPE = channelLinkType;
|
|
35
|
+
var CHANNEL_DROPDOWN_TYPE = exports.CHANNEL_DROPDOWN_TYPE = channelDropDownType;
|
|
36
|
+
var CHANNEL_TYPE = exports.CHANNEL_TYPE = (_CHANNEL_TYPE = {}, _defineProperty(_CHANNEL_TYPE, channelKey.latest, channelLinkType), _defineProperty(_CHANNEL_TYPE, channelKey.topic, channelLinkType), _defineProperty(_CHANNEL_TYPE, channelKey.category, channelDropDownType), _defineProperty(_CHANNEL_TYPE, channelKey.opinion, channelDropDownType), _defineProperty(_CHANNEL_TYPE, channelKey.column, channelLinkType), _defineProperty(_CHANNEL_TYPE, channelKey.humanStory, channelLinkType), _defineProperty(_CHANNEL_TYPE, channelKey.photography, channelLinkType), _defineProperty(_CHANNEL_TYPE, channelKey.podcast, channelDropDownType), _defineProperty(_CHANNEL_TYPE, channelKey.kidsReporter, channelLinkType), _defineProperty(_CHANNEL_TYPE, channelKey.infographic, channelLinkType), _defineProperty(_CHANNEL_TYPE, channelKey.lawmaker, channelLinkType), _CHANNEL_TYPE);
|
|
37
|
+
var CHANNEL_DROPDOWN = exports.CHANNEL_DROPDOWN = (_CHANNEL_DROPDOWN = {}, _defineProperty(_CHANNEL_DROPDOWN, channelKey.opinion, [{
|
|
38
|
+
type: 'subcategory',
|
|
39
|
+
key: _categorySet.SUBCATEGORY_PATH.bookReview
|
|
40
|
+
}, {
|
|
41
|
+
type: 'subcategory',
|
|
42
|
+
key: _categorySet.SUBCATEGORY_PATH.letter
|
|
43
|
+
}, {
|
|
44
|
+
type: 'subcategory',
|
|
45
|
+
key: _categorySet.SUBCATEGORY_PATH.all
|
|
46
|
+
}]), _defineProperty(_CHANNEL_DROPDOWN, channelKey.podcast, [{
|
|
47
|
+
type: 'path',
|
|
48
|
+
label: '關於報導者 Podcast',
|
|
49
|
+
path: '/a/podcast-list'
|
|
50
|
+
}, {
|
|
51
|
+
type: 'subcategory',
|
|
52
|
+
key: _categorySet.SUBCATEGORY_PATH.theRealStory
|
|
53
|
+
}, {
|
|
54
|
+
type: 'subcategory',
|
|
55
|
+
key: _categorySet.SUBCATEGORY_PATH.onTheGround
|
|
56
|
+
}]), _CHANNEL_DROPDOWN);
|
|
57
|
+
var CHANNEL_ORDER = exports.CHANNEL_ORDER = [channelKey.latest, 'divider', channelKey.topic, channelKey.category, channelKey.opinion, channelKey.humanStory, 'divider', channelKey.photography, channelKey.podcast, channelKey.kidsReporter, channelKey.lawmaker, channelKey.infographic, 'divider'];
|
|
58
|
+
var DESKTOP_CHANNEL_ORDER = exports.DESKTOP_CHANNEL_ORDER = [channelKey.latest, channelKey.topic, channelKey.category];
|
|
59
|
+
var _default = exports["default"] = {
|
|
60
|
+
CHANNEL_LINK_TYPE: CHANNEL_LINK_TYPE,
|
|
61
|
+
CHANNEL_DROPDOWN_TYPE: CHANNEL_DROPDOWN_TYPE,
|
|
62
|
+
CHANNEL_PATH: CHANNEL_PATH,
|
|
63
|
+
CHANNEL_LABEL: CHANNEL_LABEL,
|
|
64
|
+
CHANNEL_TYPE: CHANNEL_TYPE,
|
|
65
|
+
CHANNEL_ORDER: CHANNEL_ORDER,
|
|
66
|
+
DESKTOP_CHANNEL_ORDER: DESKTOP_CHANNEL_ORDER,
|
|
67
|
+
CHANNEL_KEY: CHANNEL_KEY,
|
|
68
|
+
CHANNEL_DROPDOWN: CHANNEL_DROPDOWN
|
|
69
|
+
};
|
|
@@ -62,5 +62,7 @@ var _default = exports["default"] = {
|
|
|
62
62
|
CHANNEL_LABEL: CHANNEL_LABEL,
|
|
63
63
|
CHANNEL_TYPE: CHANNEL_TYPE,
|
|
64
64
|
CHANNEL_ORDER: CHANNEL_ORDER,
|
|
65
|
-
DESKTOP_CHANNEL_ORDER: DESKTOP_CHANNEL_ORDER
|
|
65
|
+
DESKTOP_CHANNEL_ORDER: DESKTOP_CHANNEL_ORDER,
|
|
66
|
+
CHANNEL_KEY: CHANNEL_KEY,
|
|
67
|
+
CHANNEL_DROPDOWN: CHANNEL_DROPDOWN
|
|
66
68
|
};
|
|
@@ -15,6 +15,7 @@ var links = {
|
|
|
15
15
|
twitter: 'https://twitter.com/tw_reporter_org',
|
|
16
16
|
youtube: 'https://www.youtube.com/c/TwreporterOrg',
|
|
17
17
|
kidsReporter: 'https://kids.twreporter.org/',
|
|
18
|
-
publicationAndMerchandise: 'https://twreporter.waca.ec/'
|
|
18
|
+
publicationAndMerchandise: 'https://twreporter.waca.ec/',
|
|
19
|
+
lawmaker: 'https://lawmaker.twreporter.org/'
|
|
19
20
|
};
|
|
20
21
|
var _default = exports["default"] = links;
|
package/lib/utils/links.js
CHANGED
|
@@ -24,6 +24,7 @@ var _channels = require("../constants/channels");
|
|
|
24
24
|
var _externalLinks = _interopRequireDefault(require("../constants/external-links"));
|
|
25
25
|
var _requestOrigins = _interopRequireDefault(require("@twreporter/core/lib/constants/request-origins"));
|
|
26
26
|
var _releaseBranch = _interopRequireDefault(require("@twreporter/core/lib/constants/release-branch"));
|
|
27
|
+
var _featureFlag = require("@twreporter/core/lib/constants/feature-flag");
|
|
27
28
|
var _forEach = _interopRequireDefault(require("lodash/forEach"));
|
|
28
29
|
var _reduce = _interopRequireDefault(require("lodash/reduce"));
|
|
29
30
|
var _split = _interopRequireDefault(require("lodash/split"));
|
|
@@ -178,6 +179,9 @@ function getChannelLinks() {
|
|
|
178
179
|
return res;
|
|
179
180
|
}, {});
|
|
180
181
|
links[_channels.CHANNEL_KEY.kidsReporter] = __composeExternalLink(__getExternalLinks().kidsReporter, '_blank');
|
|
182
|
+
if (_featureFlag.LAWMAKER) {
|
|
183
|
+
links[_channels.CHANNEL_KEY.lawmaker] = __composeExternalLink(__getExternalLinks().lawmaker, '_blank');
|
|
184
|
+
}
|
|
181
185
|
return links;
|
|
182
186
|
}
|
|
183
187
|
function getTabBarLinks() {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@twreporter/universal-header",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.1.0-rc.1",
|
|
4
4
|
"description": "Universal header of TWReporter sites",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -22,8 +22,8 @@
|
|
|
22
22
|
"dependencies": {
|
|
23
23
|
"@material-symbols/svg-400": "^0.27.2",
|
|
24
24
|
"@reduxjs/toolkit": "^2.2.5",
|
|
25
|
-
"@twreporter/core": "^1.
|
|
26
|
-
"@twreporter/react-components": "^9.8.
|
|
25
|
+
"@twreporter/core": "^1.26.0-rc.0",
|
|
26
|
+
"@twreporter/react-components": "^9.8.1-rc.1",
|
|
27
27
|
"lodash": "^4.17.11",
|
|
28
28
|
"prop-types": "^15.6.2",
|
|
29
29
|
"querystring": "^0.2.0",
|
|
@@ -58,5 +58,5 @@
|
|
|
58
58
|
"react-dom": "^18.2.0",
|
|
59
59
|
"storybook": "^8.1.11"
|
|
60
60
|
},
|
|
61
|
-
"gitHead": "
|
|
61
|
+
"gitHead": "666a7b9c16a5e8ba895e1a722598359b69909d6c"
|
|
62
62
|
}
|