@twreporter/universal-header 2.3.0 → 2.4.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.
Files changed (41) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/lib/components/action-button-old.js +5 -5
  3. package/lib/components/action-button.js +8 -5
  4. package/lib/components/channels-old.js +8 -8
  5. package/lib/components/channels.js +17 -5
  6. package/lib/components/drop-down-menu.js +2 -2
  7. package/lib/components/hamburger-footer.js +156 -0
  8. package/lib/components/hamburger-footer.stories.js +75 -0
  9. package/lib/components/hamburger-icons.js +11 -11
  10. package/lib/components/hamburger-menu-item.js +174 -0
  11. package/lib/components/hamburger-menu-item.stories.js +150 -0
  12. package/lib/components/hamburger-menu-old.js +148 -0
  13. package/lib/components/hamburger-menu.js +309 -96
  14. package/lib/components/hamburger-menu.stories.js +64 -0
  15. package/lib/components/header-old.js +5 -5
  16. package/lib/components/header.js +160 -32
  17. package/lib/components/header.stories.js +16 -7
  18. package/lib/components/icons-old.js +9 -9
  19. package/lib/components/icons.js +5 -5
  20. package/lib/components/mobile-header.js +12 -12
  21. package/lib/components/search-box.js +2 -2
  22. package/lib/components/slogan-old.js +2 -2
  23. package/lib/components/slogan.js +1 -1
  24. package/lib/constants/actions.js +5 -11
  25. package/lib/constants/channels-old.js +41 -0
  26. package/lib/constants/channels.js +58 -25
  27. package/lib/constants/external-links.js +7 -1
  28. package/lib/constants/footer.js +24 -0
  29. package/lib/constants/hamburger-menu.js +13 -0
  30. package/lib/constants/prop-types-old.js +46 -0
  31. package/lib/constants/prop-types.js +26 -20
  32. package/lib/constants/social-media.js +16 -0
  33. package/lib/containers/header-old.js +11 -11
  34. package/lib/containers/header.js +23 -44
  35. package/lib/contexts/header-context.js +6 -7
  36. package/lib/standalone-header.js +7 -7
  37. package/lib/utils/links-old.js +177 -0
  38. package/lib/utils/links.js +60 -66
  39. package/lib/utils/theme-old.js +345 -0
  40. package/lib/utils/theme.js +49 -243
  41. package/package.json +4 -4
@@ -1,5 +1,7 @@
1
1
  "use strict";
2
2
 
3
+ function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
4
+
3
5
  Object.defineProperty(exports, "__esModule", {
4
6
  value: true
5
7
  });
@@ -7,142 +9,353 @@ exports["default"] = void 0;
7
9
 
8
10
  var _propTypes = _interopRequireDefault(require("prop-types"));
9
11
 
10
- var _react = _interopRequireDefault(require("react"));
12
+ var _react = _interopRequireWildcard(require("react"));
11
13
 
12
14
  var _styledComponents = _interopRequireDefault(require("styled-components"));
13
15
 
14
- var _css = require("@twreporter/core/lib/utils/css");
16
+ var _headerContext = _interopRequireWildcard(require("../contexts/header-context"));
15
17
 
16
- var _mobilePopUpModal = _interopRequireDefault(require("@twreporter/react-components/lib/mobile-pop-up-modal"));
18
+ var _links = require("../utils/links");
17
19
 
18
- var _headerContext = _interopRequireDefault(require("../contexts/header-context"));
20
+ var _theme = require("../utils/theme");
19
21
 
20
- var _theme = _interopRequireDefault(require("../utils/theme"));
22
+ var _channels = require("../constants/channels");
21
23
 
22
- var _actionButton = _interopRequireDefault(require("./action-button"));
24
+ var _hamburgerMenu = require("../constants/hamburger-menu");
23
25
 
24
- var _slogan = _interopRequireDefault(require("./slogan"));
26
+ var _actionButton = _interopRequireDefault(require("./action-button"));
25
27
 
26
- var _hamburgerIcons = _interopRequireDefault(require("./hamburger-icons"));
28
+ var _hamburgerFooter = _interopRequireDefault(require("./hamburger-footer"));
27
29
 
28
- var _channels = _interopRequireDefault(require("./channels.js"));
30
+ var _hamburgerMenuItem = require("./hamburger-menu-item");
29
31
 
30
32
  var _mediaQuery = _interopRequireDefault(require("@twreporter/core/lib/utils/media-query"));
31
33
 
32
- var _templateObject, _templateObject2, _templateObject3, _templateObject4;
34
+ var _customizedLink = _interopRequireDefault(require("@twreporter/react-components/lib/customized-link"));
35
+
36
+ var _divider = _interopRequireDefault(require("@twreporter/react-components/lib/divider"));
37
+
38
+ var _mobilePopUpModal = _interopRequireDefault(require("@twreporter/react-components/lib/mobile-pop-up-modal"));
39
+
40
+ var _button = require("@twreporter/react-components/lib/button");
41
+
42
+ var _icon = require("@twreporter/react-components/lib/icon");
43
+
44
+ var _logo = require("@twreporter/react-components/lib/logo");
45
+
46
+ var _input = require("@twreporter/react-components/lib/input");
47
+
48
+ var _categorySet = require("@twreporter/core/lib/constants/category-set");
49
+
50
+ var _theme2 = require("@twreporter/core/lib/constants/theme");
51
+
52
+ var _map = _interopRequireDefault(require("lodash/map"));
53
+
54
+ var _excluded = ["actions", "handleClose"];
55
+
56
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
57
+
58
+ 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); }
59
+
60
+ 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
61
 
34
62
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
35
63
 
64
+ function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
65
+
66
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
67
+
68
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
69
+
70
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
71
+
72
+ 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."); }
73
+
74
+ 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); }
75
+
76
+ 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; }
77
+
78
+ 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; }
79
+
80
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
81
+
36
82
  function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
37
83
 
38
- var styles = {
39
- closeButtonHeight: {
40
- mobile: 42,
41
- // px
42
- tablet: 60 // px
43
-
44
- },
45
- sloganMargin: {
46
- mobile: [28, 0],
47
- tablet: [38, 0]
48
- },
49
- channelMargin: {
50
- mobile: [20, 0, 0, 0],
51
- tablet: [40, 0, 0, 0]
52
- },
53
- serviceMargin: {
54
- mobile: [16, 0, 22, 0],
55
- tablet: [24, 0, 42, 0]
56
- }
84
+ var _ = {
85
+ map: _map["default"]
57
86
  };
58
-
59
- var MenuContainer = /*#__PURE__*/_styledComponents["default"].div.withConfig({
60
- displayName: "hamburger-menu__MenuContainer",
87
+ var StyledModal = /*#__PURE__*/(0, _styledComponents["default"])(_mobilePopUpModal["default"]).withConfig({
88
+ displayName: "hamburger-menu__StyledModal",
61
89
  componentId: "sc-15rzowt-0"
62
- })(["background-color:", ";display:flex;flex-direction:column;justify-content:space-between;height:auto;min-height:100%;"], function (props) {
90
+ })(["box-shadow:0px 0px 24px rgba(0,0,0,0.1);background-color:", ";overflow-y:unset;"], function (props) {
63
91
  return props.bgColor;
64
92
  });
65
93
 
66
- var CloseContainer = /*#__PURE__*/_styledComponents["default"].div.withConfig({
67
- displayName: "hamburger-menu__CloseContainer",
94
+ var MenuContainer = /*#__PURE__*/_styledComponents["default"].div.withConfig({
95
+ displayName: "hamburger-menu__MenuContainer",
68
96
  componentId: "sc-15rzowt-1"
69
- })(["position:absolute;top:10px;right:10px;height:", "px;width:", "px;", ""], styles.closeButtonHeight.mobile, styles.closeButtonHeight.mobile, _mediaQuery["default"].tabletOnly(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n height: ", "px;\n width: ", "px;\n "])), styles.closeButtonHeight.tablet, styles.closeButtonHeight.tablet));
97
+ })(["max-width:", ";max-height:100vh;overflow-y:scroll;overscroll-behavior:none;background-color:", ";", " &::-webkit-scrollbar{background-color:transparent;width:4px;}&::-webkit-scrollbar-thumb{background-color:", ";border-radius:2px;}"], _hamburgerMenu.MENU_WIDTH.desktop, function (props) {
98
+ return props.bgColor;
99
+ }, _mediaQuery["default"].tabletOnly(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n max-width: ", ";\n "])), _hamburgerMenu.MENU_WIDTH.tablet), function (props) {
100
+ return props.scrollBarColor;
101
+ });
70
102
 
71
- var FlexBox = /*#__PURE__*/_styledComponents["default"].div.withConfig({
72
- displayName: "hamburger-menu__FlexBox",
103
+ var CloseSection = /*#__PURE__*/_styledComponents["default"].div.withConfig({
104
+ displayName: "hamburger-menu__CloseSection",
73
105
  componentId: "sc-15rzowt-2"
74
- })(["display:flex;flex-direction:column;align-items:center;"]);
106
+ })(["display:flex;padding:24px 32px 16px 0;justify-content:end;align-items:center;", ""], _mediaQuery["default"].mobileOnly(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n display: none;\n "]))));
75
107
 
76
- var SloganContainer = /*#__PURE__*/_styledComponents["default"].div.withConfig({
77
- displayName: "hamburger-menu__SloganContainer",
108
+ var LogoSection = /*#__PURE__*/_styledComponents["default"].div.withConfig({
109
+ displayName: "hamburger-menu__LogoSection",
78
110
  componentId: "sc-15rzowt-3"
79
- })(["margin:", ";", ""], (0, _css.arrayToCssShorthand)(styles.sloganMargin.mobile), _mediaQuery["default"].tabletOnly(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n margin: ", ";\n "])), (0, _css.arrayToCssShorthand)(styles.sloganMargin.tablet)));
111
+ })(["display:flex;justify-content:center;a{display:flex;}img{height:24px;width:24px;}", ""], _mediaQuery["default"].mobileOnly(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n display: none;\n "]))));
80
112
 
81
- var ActionContainer = /*#__PURE__*/_styledComponents["default"].div.withConfig({
82
- displayName: "hamburger-menu__ActionContainer",
113
+ var SearchSection = /*#__PURE__*/_styledComponents["default"].div.withConfig({
114
+ displayName: "hamburger-menu__SearchSection",
83
115
  componentId: "sc-15rzowt-4"
84
- })(["width:100%;padding:0 30px;"]);
116
+ })(["padding:16px 32px 0 32px;", " ", ""], _mediaQuery["default"].mobileOnly(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n padding: 24px 32px;\n "]))), _mediaQuery["default"].desktopAndAbove(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["\n display: none;\n "]))));
85
117
 
86
- var ChannelContainer = /*#__PURE__*/_styledComponents["default"].div.withConfig({
87
- displayName: "hamburger-menu__ChannelContainer",
118
+ var ContentSection = /*#__PURE__*/_styledComponents["default"].div.withConfig({
119
+ displayName: "hamburger-menu__ContentSection",
88
120
  componentId: "sc-15rzowt-5"
89
- })(["width:100%;margin:10px 0;margin:", ";", ""], (0, _css.arrayToCssShorthand)(styles.channelMargin.mobile), _mediaQuery["default"].tabletOnly(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n margin: ", ";\n "])), (0, _css.arrayToCssShorthand)(styles.channelMargin.tablet)));
121
+ })(["padding-top:16px;"]);
90
122
 
91
- var ServiceContainer = /*#__PURE__*/_styledComponents["default"].div.withConfig({
92
- displayName: "hamburger-menu__ServiceContainer",
123
+ var ActionSection = /*#__PURE__*/_styledComponents["default"].div.withConfig({
124
+ displayName: "hamburger-menu__ActionSection",
93
125
  componentId: "sc-15rzowt-6"
94
- })(["position:relative;bottom:0;display:flex;justify-content:center;align-items:center;width:100%;margin:", ";", ""], (0, _css.arrayToCssShorthand)(styles.serviceMargin.mobile), _mediaQuery["default"].tabletOnly(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n margin: ", ";\n "])), (0, _css.arrayToCssShorthand)(styles.serviceMargin.tablet)));
95
-
96
- var HamburgerMenu = function HamburgerMenu(_ref) {
97
- var channels = _ref.channels,
98
- services = _ref.services,
99
- actions = _ref.actions,
100
- handleClose = _ref.handleClose;
101
- return /*#__PURE__*/_react["default"].createElement(_headerContext["default"].Consumer, null, function (_ref2) {
102
- var theme = _ref2.theme;
103
-
104
- var _themeUtils$selectHam = _theme["default"].selectHamburgerMenuTheme(theme),
105
- bgColor = _themeUtils$selectHam.bgColor;
106
-
107
- var CloseIcon = _theme["default"].selectIcons(theme).close;
108
-
109
- var closeJSX = /*#__PURE__*/_react["default"].createElement(CloseContainer, {
110
- onClick: handleClose
111
- }, /*#__PURE__*/_react["default"].createElement(CloseIcon, null));
112
-
113
- return /*#__PURE__*/_react["default"].createElement(_mobilePopUpModal["default"], null, /*#__PURE__*/_react["default"].createElement(MenuContainer, {
114
- bgColor: bgColor
115
- }, closeJSX, /*#__PURE__*/_react["default"].createElement(FlexBox, null, /*#__PURE__*/_react["default"].createElement(SloganContainer, null, /*#__PURE__*/_react["default"].createElement(_slogan["default"], {
116
- themeFunction: _theme["default"].selectSloganHBTheme
117
- })), /*#__PURE__*/_react["default"].createElement(ActionContainer, null, /*#__PURE__*/_react["default"].createElement(_actionButton["default"], {
118
- actions: actions,
119
- direction: "column",
120
- themeFunction: _theme["default"].selectActionButtonHBTheme,
121
- callback: handleClose
122
- })), /*#__PURE__*/_react["default"].createElement(ChannelContainer, null, /*#__PURE__*/_react["default"].createElement(_channels["default"], {
123
- data: channels,
124
- direction: "column",
125
- currentPathname: "",
126
- themeFunction: _theme["default"].selectChannelHBTheme,
127
- callback: handleClose
128
- }))), /*#__PURE__*/_react["default"].createElement(ServiceContainer, null, /*#__PURE__*/_react["default"].createElement(_hamburgerIcons["default"], {
129
- services: services,
130
- callback: handleClose
131
- }))));
126
+ })(["padding:40px 32px 32px 32px;"]);
127
+
128
+ var DropdownItemContainer = /*#__PURE__*/_styledComponents["default"].div.withConfig({
129
+ displayName: "hamburger-menu__DropdownItemContainer",
130
+ componentId: "sc-15rzowt-7"
131
+ })([""]);
132
+
133
+ var SubContainer = /*#__PURE__*/_styledComponents["default"].div.withConfig({
134
+ displayName: "hamburger-menu__SubContainer",
135
+ componentId: "sc-15rzowt-8"
136
+ })(["max-height:", ";overflow:hidden;transition:max-height 300ms ease-in-out;"], function (props) {
137
+ return props.isActive ? '300px' : '0';
138
+ });
139
+
140
+ var DividerContainer = /*#__PURE__*/_styledComponents["default"].div.withConfig({
141
+ displayName: "hamburger-menu__DividerContainer",
142
+ componentId: "sc-15rzowt-9"
143
+ })(["margin:16px 32px;"]);
144
+
145
+ var DropdownContent = function DropdownContent(_ref) {
146
+ var itemKey = _ref.itemKey,
147
+ isActive = _ref.isActive,
148
+ toggleFunc = _ref.toggleFunc;
149
+
150
+ var _useContext = (0, _react.useContext)(_headerContext["default"]),
151
+ releaseBranch = _useContext.releaseBranch,
152
+ isLinkExternal = _useContext.isLinkExternal;
153
+
154
+ var _useContext2 = (0, _react.useContext)(_headerContext.HamburgerContext),
155
+ closeHamburgerMenu = _useContext2.closeHamburgerMenu;
156
+
157
+ var subItemJSX;
158
+
159
+ if (itemKey === _channels.CHANNEL_KEY.category) {
160
+ // category
161
+ subItemJSX = _.map(_categorySet.CATEGORY_ORDER, function (catKey) {
162
+ var label = _categorySet.CATEGORY_LABEL[catKey];
163
+ var path = "/categories/".concat(catKey);
164
+ var link = (0, _links.getCategoryLink)(isLinkExternal, releaseBranch, path);
165
+
166
+ if (!label || !link) {
167
+ return;
168
+ }
169
+
170
+ return /*#__PURE__*/_react["default"].createElement(_hamburgerMenuItem.MenuSubItem, {
171
+ text: label,
172
+ link: link,
173
+ key: catKey
174
+ });
175
+ });
176
+ } else {
177
+ // subcategory
178
+ subItemJSX = _.map(_channels.CHANNEL_DROPDOWN[itemKey], function (subItem, key) {
179
+ var type = subItem.type;
180
+ var label, path;
181
+
182
+ if (type === 'subcategory') {
183
+ label = _categorySet.SUBCATEGORY_LABEL[subItem.key];
184
+ path = "/categories/".concat(_categorySet.CATEGORY_PATH[itemKey]);
185
+
186
+ if (subItem.key !== 'all') {
187
+ path += "/{subItem.key}";
188
+ }
189
+ }
190
+
191
+ if (type === 'path') {
192
+ label = subItem.label;
193
+ path = subItem.path;
194
+ }
195
+
196
+ var link = (0, _links.getCategoryLink)(isLinkExternal, releaseBranch, path);
197
+
198
+ if (!label || !link) {
199
+ return;
200
+ }
201
+
202
+ var componentKey = "".concat(itemKey, "-").concat(key);
203
+ return /*#__PURE__*/_react["default"].createElement(_hamburgerMenuItem.MenuSubItem, {
204
+ text: label,
205
+ link: link,
206
+ key: componentKey
207
+ });
208
+ });
209
+ }
210
+
211
+ var label = _channels.CHANNEL_LABEL[itemKey];
212
+
213
+ var handleClick = function handleClick() {
214
+ return toggleFunc(itemKey);
215
+ };
216
+
217
+ var dropdownKey = "".concat(itemKey, "-dropdown");
218
+ return /*#__PURE__*/_react["default"].createElement(DropdownItemContainer, {
219
+ key: itemKey
220
+ }, /*#__PURE__*/_react["default"].createElement(_hamburgerMenuItem.MenuDropdownItem, {
221
+ text: label,
222
+ isActive: isActive,
223
+ onClick: handleClick,
224
+ key: dropdownKey
225
+ }), /*#__PURE__*/_react["default"].createElement(SubContainer, {
226
+ isActive: isActive,
227
+ onClick: closeHamburgerMenu
228
+ }, subItemJSX));
229
+ };
230
+
231
+ DropdownContent.propTypes = {
232
+ itemKey: _propTypes["default"].string,
233
+ isActive: _propTypes["default"].bool,
234
+ toggleFunc: _propTypes["default"].func
235
+ };
236
+
237
+ var Content = function Content() {
238
+ var _useContext3 = (0, _react.useContext)(_headerContext["default"]),
239
+ releaseBranch = _useContext3.releaseBranch,
240
+ isLinkExternal = _useContext3.isLinkExternal;
241
+
242
+ var _useContext4 = (0, _react.useContext)(_headerContext.HamburgerContext),
243
+ closeHamburgerMenu = _useContext4.closeHamburgerMenu;
244
+
245
+ var _useState = (0, _react.useState)(''),
246
+ _useState2 = _slicedToArray(_useState, 2),
247
+ activeKey = _useState2[0],
248
+ setActiveKey = _useState2[1];
249
+
250
+ var itemLinks = (0, _links.getChannelLinks)(isLinkExternal, releaseBranch);
251
+
252
+ var itemJSX = _.map(_channels.CHANNEL_ORDER, function (itemKey, index) {
253
+ // divider
254
+ if (itemKey === 'divider') {
255
+ return /*#__PURE__*/_react["default"].createElement(DividerContainer, {
256
+ key: index
257
+ }, /*#__PURE__*/_react["default"].createElement(_divider["default"], null));
258
+ }
259
+
260
+ var label = _channels.CHANNEL_LABEL[itemKey];
261
+ var type = _channels.CHANNEL_TYPE[itemKey]; // link type
262
+
263
+ if (type === _channels.CHANNEL_LINK_TYPE) {
264
+ var link = itemLinks && itemLinks[itemKey];
265
+
266
+ if (!label || !link) {
267
+ return;
268
+ }
269
+
270
+ return /*#__PURE__*/_react["default"].createElement(_hamburgerMenuItem.MenuLinkItem, {
271
+ text: label,
272
+ link: link,
273
+ key: itemKey,
274
+ onClick: closeHamburgerMenu
275
+ });
276
+ } // dropdown type
277
+
278
+
279
+ var isActive = activeKey === itemKey;
280
+
281
+ var toggleFunc = function toggleFunc(key) {
282
+ var nextActiveKey = activeKey === key ? '' : key;
283
+ setActiveKey(nextActiveKey);
284
+ };
285
+
286
+ return /*#__PURE__*/_react["default"].createElement(DropdownContent, {
287
+ itemKey: itemKey,
288
+ isActive: isActive,
289
+ toggleFunc: toggleFunc
290
+ });
132
291
  });
292
+
293
+ return /*#__PURE__*/_react["default"].createElement(ContentSection, null, itemJSX);
294
+ };
295
+
296
+ var HamburgerMenu = function HamburgerMenu(_ref2) {
297
+ var actions = _ref2.actions,
298
+ handleClose = _ref2.handleClose,
299
+ props = _objectWithoutProperties(_ref2, _excluded);
300
+
301
+ var _useContext5 = (0, _react.useContext)(_headerContext["default"]),
302
+ theme = _useContext5.theme,
303
+ releaseBranch = _useContext5.releaseBranch,
304
+ isLinkExternal = _useContext5.isLinkExternal;
305
+
306
+ var menuTheme = theme === _theme2.THEME.photography ? theme : _theme2.THEME.noraml;
307
+
308
+ var _selectHamburgerMenuT = (0, _theme.selectHamburgerMenuTheme)(menuTheme),
309
+ bgColor = _selectHamburgerMenuT.bgColor,
310
+ scrollBarColor = _selectHamburgerMenuT.scrollBarColor;
311
+
312
+ var logoType = (0, _theme.selectLogoType)(menuTheme);
313
+
314
+ var CloseIcon = /*#__PURE__*/_react["default"].createElement(_icon.Cross, {
315
+ releaseBranch: releaseBranch
316
+ });
317
+
318
+ var logoLink = (0, _links.getLogoLink)(isLinkExternal, releaseBranch);
319
+
320
+ var onSearch = function onSearch(keywords) {
321
+ if (!window) {
322
+ return;
323
+ }
324
+
325
+ window.location = "".concat((0, _links.getSearchLink)(isLinkExternal, releaseBranch).to, "?q=").concat(keywords);
326
+ };
327
+
328
+ var modalHeight = '100vh';
329
+ var modalWidth = _hamburgerMenu.MENU_WIDTH.desktop;
330
+ var contextValue = {
331
+ closeHamburgerMenu: handleClose
332
+ };
333
+ return /*#__PURE__*/_react["default"].createElement(_headerContext.HamburgerContext.Provider, {
334
+ value: contextValue
335
+ }, /*#__PURE__*/_react["default"].createElement(StyledModal, {
336
+ modalHeight: modalHeight,
337
+ modalWidth: modalWidth,
338
+ bgColor: bgColor
339
+ }, /*#__PURE__*/_react["default"].createElement(MenuContainer, _extends({
340
+ bgColor: bgColor,
341
+ scrollBarColor: scrollBarColor
342
+ }, props), /*#__PURE__*/_react["default"].createElement(CloseSection, null, /*#__PURE__*/_react["default"].createElement(_button.IconButton, {
343
+ iconComponent: CloseIcon,
344
+ theme: menuTheme,
345
+ onClick: handleClose
346
+ })), /*#__PURE__*/_react["default"].createElement(LogoSection, null, /*#__PURE__*/_react["default"].createElement(_customizedLink["default"], logoLink, /*#__PURE__*/_react["default"].createElement(_logo.LogoSymbol, {
347
+ type: logoType
348
+ }))), /*#__PURE__*/_react["default"].createElement(SearchSection, null, /*#__PURE__*/_react["default"].createElement(_input.SearchBar, {
349
+ onSearch: onSearch
350
+ })), /*#__PURE__*/_react["default"].createElement(Content, null), /*#__PURE__*/_react["default"].createElement(_hamburgerFooter["default"], null), /*#__PURE__*/_react["default"].createElement(ActionSection, null, /*#__PURE__*/_react["default"].createElement(_actionButton["default"], {
351
+ actions: actions,
352
+ direction: "column"
353
+ })))));
133
354
  };
134
355
 
135
356
  HamburgerMenu.propTypes = {
136
- channels: _propTypes["default"].array,
137
- services: _propTypes["default"].array,
138
357
  actions: _propTypes["default"].array,
139
358
  handleClose: _propTypes["default"].func
140
359
  };
141
- HamburgerMenu.defaultProps = {
142
- channels: [],
143
- services: [],
144
- actions: [],
145
- handleClose: function handleClose() {}
146
- };
147
360
  var _default = HamburgerMenu;
148
361
  exports["default"] = _default;
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.menu = exports["default"] = void 0;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ var _hamburgerMenu = _interopRequireDefault(require("./hamburger-menu"));
11
+
12
+ var _headerContext = _interopRequireDefault(require("../contexts/header-context"));
13
+
14
+ var _theme = require("@twreporter/core/lib/constants/theme");
15
+
16
+ var _releaseBranch = require("@twreporter/core/lib/constants/release-branch");
17
+
18
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
19
+
20
+ /* eslint-disable react/prop-types */
21
+ var _default = {
22
+ title: 'Hamburger/Menu',
23
+ component: _hamburgerMenu["default"],
24
+ argTypes: {
25
+ theme: _theme.THEME_STORYBOOK_ARG_TYPE,
26
+ releaseBranch: _releaseBranch.BRANCH_STORYBOOK_ARG_TYPE
27
+ }
28
+ };
29
+ exports["default"] = _default;
30
+ var defaultActions = [{
31
+ key: 'newsLetter'
32
+ }, {
33
+ key: 'support'
34
+ }];
35
+
36
+ var onClose = function onClose() {
37
+ var _window;
38
+
39
+ return (_window = window) === null || _window === void 0 ? void 0 : _window.alert('click close !');
40
+ };
41
+
42
+ var menu = function menu(props) {
43
+ var theme = props.theme,
44
+ releaseBranch = props.releaseBranch;
45
+ var context = {
46
+ theme: theme,
47
+ releaseBranch: releaseBranch,
48
+ isLinkExternal: true
49
+ };
50
+ return /*#__PURE__*/_react["default"].createElement(_headerContext["default"].Provider, {
51
+ value: context
52
+ }, /*#__PURE__*/_react["default"].createElement(_hamburgerMenu["default"], props));
53
+ };
54
+
55
+ exports.menu = menu;
56
+ menu.args = {
57
+ actions: defaultActions,
58
+ handleClose: onClose
59
+ };
60
+ menu.parameter = {
61
+ controls: {
62
+ exclude: ['actions', 'handleClose']
63
+ }
64
+ };
@@ -17,9 +17,9 @@ var _styledComponents = _interopRequireWildcard(require("styled-components"));
17
17
 
18
18
  var _headerContext = _interopRequireDefault(require("../contexts/header-context"));
19
19
 
20
- var _links = _interopRequireDefault(require("../utils/links"));
20
+ var _linksOld = _interopRequireDefault(require("../utils/links-old"));
21
21
 
22
- var _theme = _interopRequireDefault(require("../utils/theme"));
22
+ var _themeOld = _interopRequireDefault(require("../utils/theme-old"));
23
23
 
24
24
  var _animations = _interopRequireDefault(require("../utils/animations"));
25
25
 
@@ -173,11 +173,11 @@ var Header = function Header(_ref) {
173
173
  toUseNarrow = _ref2.toUseNarrow,
174
174
  hideHeader = _ref2.hideHeader;
175
175
 
176
- var _themeUtils$selectHea = _theme["default"].selectHeaderTheme(theme),
176
+ var _themeUtils$selectHea = _themeOld["default"].selectHeaderTheme(theme),
177
177
  bgColor = _themeUtils$selectHea.bgColor,
178
178
  borderColor = _themeUtils$selectHea.borderColor;
179
179
 
180
- var logoType = _theme["default"].selectLogoType(theme);
180
+ var logoType = _themeOld["default"].selectLogoType(theme);
181
181
 
182
182
  return /*#__PURE__*/_react["default"].createElement(Box, {
183
183
  bgColor: bgColor,
@@ -198,7 +198,7 @@ var Header = function Header(_ref) {
198
198
  enter: 500,
199
199
  exit: 500
200
200
  }
201
- }, /*#__PURE__*/_react["default"].createElement(_customizedLink["default"], _links["default"].getLogoLink(isLinkExternal, releaseBranch), /*#__PURE__*/_react["default"].createElement(_logo.LogoHeader, {
201
+ }, /*#__PURE__*/_react["default"].createElement(_customizedLink["default"], _linksOld["default"].getLogoLink(isLinkExternal, releaseBranch), /*#__PURE__*/_react["default"].createElement(_logo.LogoHeader, {
202
202
  type: logoType,
203
203
  releaseBranch: releaseBranch
204
204
  })))), /*#__PURE__*/_react["default"].createElement(ActionContainer, null, /*#__PURE__*/_react["default"].createElement(_CSSTransition["default"], {