@twreporter/universal-header 2.3.0 → 2.4.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.
- package/CHANGELOG.md +28 -0
- package/lib/components/action-button-old.js +5 -5
- package/lib/components/action-button.js +8 -5
- package/lib/components/channels-old.js +8 -8
- package/lib/components/channels.js +17 -5
- package/lib/components/drop-down-menu.js +2 -2
- package/lib/components/hamburger-footer.js +156 -0
- package/lib/components/hamburger-footer.stories.js +75 -0
- package/lib/components/hamburger-icons.js +11 -11
- package/lib/components/hamburger-menu-item.js +174 -0
- package/lib/components/hamburger-menu-item.stories.js +150 -0
- package/lib/components/hamburger-menu-old.js +148 -0
- package/lib/components/hamburger-menu.js +309 -96
- package/lib/components/hamburger-menu.stories.js +64 -0
- package/lib/components/header-old.js +5 -5
- package/lib/components/header.js +160 -32
- package/lib/components/header.stories.js +16 -7
- package/lib/components/icons-old.js +9 -9
- package/lib/components/icons.js +5 -5
- package/lib/components/mobile-header.js +12 -12
- package/lib/components/search-box.js +2 -2
- package/lib/components/slogan-old.js +2 -2
- package/lib/components/slogan.js +1 -1
- package/lib/constants/actions.js +5 -11
- package/lib/constants/channels-old.js +41 -0
- package/lib/constants/channels.js +58 -25
- package/lib/constants/external-links.js +7 -1
- package/lib/constants/footer.js +24 -0
- package/lib/constants/hamburger-menu.js +13 -0
- package/lib/constants/prop-types-old.js +46 -0
- package/lib/constants/prop-types.js +26 -20
- package/lib/constants/social-media.js +16 -0
- package/lib/containers/header-old.js +11 -11
- package/lib/containers/header.js +23 -44
- package/lib/contexts/header-context.js +6 -7
- package/lib/standalone-header.js +7 -7
- package/lib/utils/links-old.js +177 -0
- package/lib/utils/links.js +60 -66
- package/lib/utils/theme-old.js +345 -0
- package/lib/utils/theme.js +49 -243
- package/package.json +4 -4
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
"use strict";
|
|
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
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.MenuDropdownItem = exports.MenuSubItem = exports.MenuLinkItem = void 0;
|
|
9
|
+
|
|
10
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
11
|
+
|
|
12
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
13
|
+
|
|
14
|
+
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
15
|
+
|
|
16
|
+
var _headerContext = _interopRequireDefault(require("../contexts/header-context"));
|
|
17
|
+
|
|
18
|
+
var _theme = require("../utils/theme");
|
|
19
|
+
|
|
20
|
+
var _customizedLink = _interopRequireDefault(require("@twreporter/react-components/lib/customized-link"));
|
|
21
|
+
|
|
22
|
+
var _icon = require("@twreporter/react-components/lib/icon");
|
|
23
|
+
|
|
24
|
+
var _paragraph = require("@twreporter/react-components/lib/text/paragraph");
|
|
25
|
+
|
|
26
|
+
var _excluded = ["text", "link"],
|
|
27
|
+
_excluded2 = ["text", "link"],
|
|
28
|
+
_excluded3 = ["text", "isActive"];
|
|
29
|
+
|
|
30
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
31
|
+
|
|
32
|
+
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); }
|
|
33
|
+
|
|
34
|
+
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; }
|
|
35
|
+
|
|
36
|
+
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); }
|
|
37
|
+
|
|
38
|
+
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; }
|
|
39
|
+
|
|
40
|
+
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; }
|
|
41
|
+
|
|
42
|
+
var StyledP1 = /*#__PURE__*/(0, _styledComponents["default"])(_paragraph.P1).withConfig({
|
|
43
|
+
displayName: "hamburger-menu-item__StyledP1",
|
|
44
|
+
componentId: "t1lhbb-0"
|
|
45
|
+
})([""]);
|
|
46
|
+
var StyledP2 = /*#__PURE__*/(0, _styledComponents["default"])(_paragraph.P2).withConfig({
|
|
47
|
+
displayName: "hamburger-menu-item__StyledP2",
|
|
48
|
+
componentId: "t1lhbb-1"
|
|
49
|
+
})([""]);
|
|
50
|
+
|
|
51
|
+
var ItemContainer = /*#__PURE__*/_styledComponents["default"].div.withConfig({
|
|
52
|
+
displayName: "hamburger-menu-item__ItemContainer",
|
|
53
|
+
componentId: "t1lhbb-2"
|
|
54
|
+
})(["", "{padding:8px 32px;}cursor:pointer;color:", ";a{text-decoration:none;color:", ";}svg{background-color:", ";}&:hover{background-color:", ";}&:active{background-color:", ";}"], StyledP1, function (props) {
|
|
55
|
+
return props.color;
|
|
56
|
+
}, function (props) {
|
|
57
|
+
return props.color;
|
|
58
|
+
}, function (props) {
|
|
59
|
+
return props.color;
|
|
60
|
+
}, function (props) {
|
|
61
|
+
return props.hoverBgColor;
|
|
62
|
+
}, function (props) {
|
|
63
|
+
return props.activeBgColor;
|
|
64
|
+
});
|
|
65
|
+
|
|
66
|
+
var SubItemContainer = /*#__PURE__*/(0, _styledComponents["default"])(ItemContainer).withConfig({
|
|
67
|
+
displayName: "hamburger-menu-item__SubItemContainer",
|
|
68
|
+
componentId: "t1lhbb-3"
|
|
69
|
+
})(["", "{padding:8px 32px 8px 48px;}"], StyledP2);
|
|
70
|
+
var DropdownItemContainer = /*#__PURE__*/(0, _styledComponents["default"])(ItemContainer).withConfig({
|
|
71
|
+
displayName: "hamburger-menu-item__DropdownItemContainer",
|
|
72
|
+
componentId: "t1lhbb-4"
|
|
73
|
+
})(["padding:8px 32px;display:flex;align-items:center;justify-content:space-between;svg{transform:rotate(", ");transition:all 300ms;}"], function (props) {
|
|
74
|
+
return props.rotate;
|
|
75
|
+
});
|
|
76
|
+
|
|
77
|
+
var MenuLinkItem = function MenuLinkItem(_ref) {
|
|
78
|
+
var _ref$text = _ref.text,
|
|
79
|
+
text = _ref$text === void 0 ? '' : _ref$text,
|
|
80
|
+
_ref$link = _ref.link,
|
|
81
|
+
link = _ref$link === void 0 ? {} : _ref$link,
|
|
82
|
+
props = _objectWithoutProperties(_ref, _excluded);
|
|
83
|
+
|
|
84
|
+
var _useContext = (0, _react.useContext)(_headerContext["default"]),
|
|
85
|
+
theme = _useContext.theme;
|
|
86
|
+
|
|
87
|
+
var _selectHamburgerItemT = (0, _theme.selectHamburgerItemTheme)(theme),
|
|
88
|
+
color = _selectHamburgerItemT.color,
|
|
89
|
+
hoverBgColor = _selectHamburgerItemT.hoverBgColor,
|
|
90
|
+
activeBgColor = _selectHamburgerItemT.activeBgColor;
|
|
91
|
+
|
|
92
|
+
return /*#__PURE__*/_react["default"].createElement(ItemContainer, _extends({
|
|
93
|
+
color: color,
|
|
94
|
+
hoverBgColor: hoverBgColor,
|
|
95
|
+
activeBgColor: activeBgColor
|
|
96
|
+
}, props), /*#__PURE__*/_react["default"].createElement(_customizedLink["default"], link, /*#__PURE__*/_react["default"].createElement(StyledP1, {
|
|
97
|
+
text: text,
|
|
98
|
+
weight: "bold"
|
|
99
|
+
})));
|
|
100
|
+
};
|
|
101
|
+
|
|
102
|
+
exports.MenuLinkItem = MenuLinkItem;
|
|
103
|
+
MenuLinkItem.propTypes = {
|
|
104
|
+
text: _propTypes["default"].string,
|
|
105
|
+
link: _propTypes["default"].object
|
|
106
|
+
};
|
|
107
|
+
|
|
108
|
+
var MenuSubItem = function MenuSubItem(_ref2) {
|
|
109
|
+
var _ref2$text = _ref2.text,
|
|
110
|
+
text = _ref2$text === void 0 ? '' : _ref2$text,
|
|
111
|
+
_ref2$link = _ref2.link,
|
|
112
|
+
link = _ref2$link === void 0 ? {} : _ref2$link,
|
|
113
|
+
props = _objectWithoutProperties(_ref2, _excluded2);
|
|
114
|
+
|
|
115
|
+
var _useContext2 = (0, _react.useContext)(_headerContext["default"]),
|
|
116
|
+
theme = _useContext2.theme;
|
|
117
|
+
|
|
118
|
+
var _selectHamburgerItemT2 = (0, _theme.selectHamburgerItemTheme)(theme),
|
|
119
|
+
color = _selectHamburgerItemT2.color,
|
|
120
|
+
hoverBgColor = _selectHamburgerItemT2.hoverBgColor,
|
|
121
|
+
activeBgColor = _selectHamburgerItemT2.activeBgColor;
|
|
122
|
+
|
|
123
|
+
return /*#__PURE__*/_react["default"].createElement(SubItemContainer, _extends({
|
|
124
|
+
color: color,
|
|
125
|
+
hoverBgColor: hoverBgColor,
|
|
126
|
+
activeBgColor: activeBgColor
|
|
127
|
+
}, props), /*#__PURE__*/_react["default"].createElement(_customizedLink["default"], link, /*#__PURE__*/_react["default"].createElement(StyledP2, {
|
|
128
|
+
text: text,
|
|
129
|
+
weight: "bold"
|
|
130
|
+
})));
|
|
131
|
+
};
|
|
132
|
+
|
|
133
|
+
exports.MenuSubItem = MenuSubItem;
|
|
134
|
+
MenuSubItem.propTypes = {
|
|
135
|
+
text: _propTypes["default"].string,
|
|
136
|
+
link: _propTypes["default"].object
|
|
137
|
+
};
|
|
138
|
+
|
|
139
|
+
var MenuDropdownItem = function MenuDropdownItem(_ref3) {
|
|
140
|
+
var _ref3$text = _ref3.text,
|
|
141
|
+
text = _ref3$text === void 0 ? '' : _ref3$text,
|
|
142
|
+
_ref3$isActive = _ref3.isActive,
|
|
143
|
+
isActive = _ref3$isActive === void 0 ? false : _ref3$isActive,
|
|
144
|
+
props = _objectWithoutProperties(_ref3, _excluded3);
|
|
145
|
+
|
|
146
|
+
var _useContext3 = (0, _react.useContext)(_headerContext["default"]),
|
|
147
|
+
theme = _useContext3.theme,
|
|
148
|
+
releaseBranch = _useContext3.releaseBranch;
|
|
149
|
+
|
|
150
|
+
var _selectHamburgerItemT3 = (0, _theme.selectHamburgerItemTheme)(theme, isActive),
|
|
151
|
+
color = _selectHamburgerItemT3.color,
|
|
152
|
+
hoverBgColor = _selectHamburgerItemT3.hoverBgColor,
|
|
153
|
+
activeBgColor = _selectHamburgerItemT3.activeBgColor;
|
|
154
|
+
|
|
155
|
+
var iconRotateDeg = isActive ? '-180deg' : '0';
|
|
156
|
+
return /*#__PURE__*/_react["default"].createElement(DropdownItemContainer, _extends({
|
|
157
|
+
color: color,
|
|
158
|
+
hoverBgColor: hoverBgColor,
|
|
159
|
+
activeBgColor: activeBgColor,
|
|
160
|
+
rotate: iconRotateDeg
|
|
161
|
+
}, props), /*#__PURE__*/_react["default"].createElement(_paragraph.P1, {
|
|
162
|
+
text: text,
|
|
163
|
+
weight: "bold"
|
|
164
|
+
}), /*#__PURE__*/_react["default"].createElement(_icon.Arrow, {
|
|
165
|
+
direction: "down",
|
|
166
|
+
releaseBranch: releaseBranch
|
|
167
|
+
}));
|
|
168
|
+
};
|
|
169
|
+
|
|
170
|
+
exports.MenuDropdownItem = MenuDropdownItem;
|
|
171
|
+
MenuDropdownItem.propTypes = {
|
|
172
|
+
text: _propTypes["default"].string,
|
|
173
|
+
isActive: _propTypes["default"].bool
|
|
174
|
+
};
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.menuSubItem = exports.MenuDropdownItemExample = exports.menuLinkItem = exports["default"] = void 0;
|
|
7
|
+
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
|
|
10
|
+
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
11
|
+
|
|
12
|
+
var _clientApi = require("@storybook/client-api");
|
|
13
|
+
|
|
14
|
+
var _hamburgerMenuItem = require("./hamburger-menu-item");
|
|
15
|
+
|
|
16
|
+
var _headerContext = _interopRequireDefault(require("../contexts/header-context"));
|
|
17
|
+
|
|
18
|
+
var _theme = require("@twreporter/core/lib/constants/theme");
|
|
19
|
+
|
|
20
|
+
var _releaseBranch = require("@twreporter/core/lib/constants/release-branch");
|
|
21
|
+
|
|
22
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
23
|
+
|
|
24
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
25
|
+
|
|
26
|
+
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."); }
|
|
27
|
+
|
|
28
|
+
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); }
|
|
29
|
+
|
|
30
|
+
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; }
|
|
31
|
+
|
|
32
|
+
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; }
|
|
33
|
+
|
|
34
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
35
|
+
|
|
36
|
+
var _default = {
|
|
37
|
+
title: 'Hamburger/Item',
|
|
38
|
+
component: _hamburgerMenuItem.MenuLinkItem,
|
|
39
|
+
argTypes: {
|
|
40
|
+
theme: _theme.THEME_STORYBOOK_ARG_TYPE,
|
|
41
|
+
releaseBranch: _releaseBranch.BRANCH_STORYBOOK_ARG_TYPE
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
exports["default"] = _default;
|
|
45
|
+
|
|
46
|
+
var Container = /*#__PURE__*/_styledComponents["default"].div.withConfig({
|
|
47
|
+
displayName: "hamburger-menu-itemstories__Container",
|
|
48
|
+
componentId: "xfb28s-0"
|
|
49
|
+
})(["width:375px;background-color:", ";padding:16px 0;box-shadow:0px 0px 24px rgba(0,0,0,0.1);"], function (props) {
|
|
50
|
+
return props.bgColor;
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
var getBgColor = function getBgColor(theme) {
|
|
54
|
+
if (theme === _theme.THEME.photography) {
|
|
55
|
+
return {
|
|
56
|
+
bgColor: 'linear-gradient(0deg, rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.2)), #052142'
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
return {
|
|
61
|
+
bgColor: 'white'
|
|
62
|
+
};
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
var menuLinkItem = function menuLinkItem(props) {
|
|
66
|
+
var theme = props.theme,
|
|
67
|
+
releaseBranch = props.releaseBranch;
|
|
68
|
+
var context = {
|
|
69
|
+
theme: theme,
|
|
70
|
+
releaseBranch: releaseBranch,
|
|
71
|
+
isLinkExternal: true
|
|
72
|
+
};
|
|
73
|
+
|
|
74
|
+
var _getBgColor = getBgColor(theme),
|
|
75
|
+
bgColor = _getBgColor.bgColor;
|
|
76
|
+
|
|
77
|
+
return /*#__PURE__*/_react["default"].createElement(_headerContext["default"].Provider, {
|
|
78
|
+
value: context
|
|
79
|
+
}, /*#__PURE__*/_react["default"].createElement(Container, {
|
|
80
|
+
bgColor: bgColor
|
|
81
|
+
}, /*#__PURE__*/_react["default"].createElement(_hamburgerMenuItem.MenuLinkItem, props)));
|
|
82
|
+
};
|
|
83
|
+
|
|
84
|
+
exports.menuLinkItem = menuLinkItem;
|
|
85
|
+
menuLinkItem.args = {
|
|
86
|
+
text: '深度專題'
|
|
87
|
+
};
|
|
88
|
+
|
|
89
|
+
var MenuDropdownItemExample = function MenuDropdownItemExample(props) {
|
|
90
|
+
var _useArgs = (0, _clientApi.useArgs)(),
|
|
91
|
+
_useArgs2 = _slicedToArray(_useArgs, 2),
|
|
92
|
+
isActive = _useArgs2[0].isActive,
|
|
93
|
+
updateArgs = _useArgs2[1];
|
|
94
|
+
|
|
95
|
+
var theme = props.theme,
|
|
96
|
+
releaseBranch = props.releaseBranch,
|
|
97
|
+
text = props.text;
|
|
98
|
+
var context = {
|
|
99
|
+
theme: theme,
|
|
100
|
+
releaseBranch: releaseBranch,
|
|
101
|
+
isLinkExternal: true
|
|
102
|
+
};
|
|
103
|
+
|
|
104
|
+
var _getBgColor2 = getBgColor(theme),
|
|
105
|
+
bgColor = _getBgColor2.bgColor;
|
|
106
|
+
|
|
107
|
+
var handleClick = function handleClick() {
|
|
108
|
+
return updateArgs({
|
|
109
|
+
isActive: !isActive
|
|
110
|
+
});
|
|
111
|
+
};
|
|
112
|
+
|
|
113
|
+
return /*#__PURE__*/_react["default"].createElement(_headerContext["default"].Provider, {
|
|
114
|
+
value: context
|
|
115
|
+
}, /*#__PURE__*/_react["default"].createElement(Container, {
|
|
116
|
+
bgColor: bgColor
|
|
117
|
+
}, /*#__PURE__*/_react["default"].createElement(_hamburgerMenuItem.MenuDropdownItem, {
|
|
118
|
+
text: text,
|
|
119
|
+
isActive: isActive,
|
|
120
|
+
onClick: handleClick
|
|
121
|
+
})));
|
|
122
|
+
};
|
|
123
|
+
|
|
124
|
+
exports.MenuDropdownItemExample = MenuDropdownItemExample;
|
|
125
|
+
MenuDropdownItemExample.args = {
|
|
126
|
+
text: '議題',
|
|
127
|
+
isActive: false
|
|
128
|
+
};
|
|
129
|
+
|
|
130
|
+
var menuSubItem = function menuSubItem(props) {
|
|
131
|
+
var theme = props.theme;
|
|
132
|
+
var context = {
|
|
133
|
+
theme: theme,
|
|
134
|
+
isLinkExternal: true
|
|
135
|
+
};
|
|
136
|
+
|
|
137
|
+
var _getBgColor3 = getBgColor(theme),
|
|
138
|
+
bgColor = _getBgColor3.bgColor;
|
|
139
|
+
|
|
140
|
+
return /*#__PURE__*/_react["default"].createElement(_headerContext["default"].Provider, {
|
|
141
|
+
value: context
|
|
142
|
+
}, /*#__PURE__*/_react["default"].createElement(Container, {
|
|
143
|
+
bgColor: bgColor
|
|
144
|
+
}, /*#__PURE__*/_react["default"].createElement(_hamburgerMenuItem.MenuSubItem, props)));
|
|
145
|
+
};
|
|
146
|
+
|
|
147
|
+
exports.menuSubItem = menuSubItem;
|
|
148
|
+
menuSubItem.args = {
|
|
149
|
+
text: '小標題'
|
|
150
|
+
};
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports["default"] = void 0;
|
|
7
|
+
|
|
8
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
9
|
+
|
|
10
|
+
var _react = _interopRequireDefault(require("react"));
|
|
11
|
+
|
|
12
|
+
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
13
|
+
|
|
14
|
+
var _css = require("@twreporter/core/lib/utils/css");
|
|
15
|
+
|
|
16
|
+
var _mobilePopUpModal = _interopRequireDefault(require("@twreporter/react-components/lib/mobile-pop-up-modal"));
|
|
17
|
+
|
|
18
|
+
var _headerContext = _interopRequireDefault(require("../contexts/header-context"));
|
|
19
|
+
|
|
20
|
+
var _themeOld = _interopRequireDefault(require("../utils/theme-old"));
|
|
21
|
+
|
|
22
|
+
var _actionButtonOld = _interopRequireDefault(require("./action-button-old"));
|
|
23
|
+
|
|
24
|
+
var _sloganOld = _interopRequireDefault(require("./slogan-old"));
|
|
25
|
+
|
|
26
|
+
var _hamburgerIcons = _interopRequireDefault(require("./hamburger-icons"));
|
|
27
|
+
|
|
28
|
+
var _channelsOld = _interopRequireDefault(require("./channels-old"));
|
|
29
|
+
|
|
30
|
+
var _mediaQuery = _interopRequireDefault(require("@twreporter/core/lib/utils/media-query"));
|
|
31
|
+
|
|
32
|
+
var _templateObject, _templateObject2, _templateObject3, _templateObject4;
|
|
33
|
+
|
|
34
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
35
|
+
|
|
36
|
+
function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
|
|
37
|
+
|
|
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
|
+
}
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
var MenuContainer = /*#__PURE__*/_styledComponents["default"].div.withConfig({
|
|
60
|
+
displayName: "hamburger-menu-old__MenuContainer",
|
|
61
|
+
componentId: "ai0vhm-0"
|
|
62
|
+
})(["background-color:", ";display:flex;flex-direction:column;justify-content:space-between;height:auto;min-height:100%;"], function (props) {
|
|
63
|
+
return props.bgColor;
|
|
64
|
+
});
|
|
65
|
+
|
|
66
|
+
var CloseContainer = /*#__PURE__*/_styledComponents["default"].div.withConfig({
|
|
67
|
+
displayName: "hamburger-menu-old__CloseContainer",
|
|
68
|
+
componentId: "ai0vhm-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));
|
|
70
|
+
|
|
71
|
+
var FlexBox = /*#__PURE__*/_styledComponents["default"].div.withConfig({
|
|
72
|
+
displayName: "hamburger-menu-old__FlexBox",
|
|
73
|
+
componentId: "ai0vhm-2"
|
|
74
|
+
})(["display:flex;flex-direction:column;align-items:center;"]);
|
|
75
|
+
|
|
76
|
+
var SloganContainer = /*#__PURE__*/_styledComponents["default"].div.withConfig({
|
|
77
|
+
displayName: "hamburger-menu-old__SloganContainer",
|
|
78
|
+
componentId: "ai0vhm-3"
|
|
79
|
+
})(["margin:", ";", ""], (0, _css.arrayToCssShorthand)(styles.sloganMargin.mobile), _mediaQuery["default"].tabletOnly(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n margin: ", ";\n "])), (0, _css.arrayToCssShorthand)(styles.sloganMargin.tablet)));
|
|
80
|
+
|
|
81
|
+
var ActionContainer = /*#__PURE__*/_styledComponents["default"].div.withConfig({
|
|
82
|
+
displayName: "hamburger-menu-old__ActionContainer",
|
|
83
|
+
componentId: "ai0vhm-4"
|
|
84
|
+
})(["width:100%;padding:0 30px;"]);
|
|
85
|
+
|
|
86
|
+
var ChannelContainer = /*#__PURE__*/_styledComponents["default"].div.withConfig({
|
|
87
|
+
displayName: "hamburger-menu-old__ChannelContainer",
|
|
88
|
+
componentId: "ai0vhm-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)));
|
|
90
|
+
|
|
91
|
+
var ServiceContainer = /*#__PURE__*/_styledComponents["default"].div.withConfig({
|
|
92
|
+
displayName: "hamburger-menu-old__ServiceContainer",
|
|
93
|
+
componentId: "ai0vhm-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 = _themeOld["default"].selectHamburgerMenuTheme(theme),
|
|
105
|
+
bgColor = _themeUtils$selectHam.bgColor;
|
|
106
|
+
|
|
107
|
+
var CloseIcon = _themeOld["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(_sloganOld["default"], {
|
|
116
|
+
themeFunction: _themeOld["default"].selectSloganHBTheme
|
|
117
|
+
})), /*#__PURE__*/_react["default"].createElement(ActionContainer, null, /*#__PURE__*/_react["default"].createElement(_actionButtonOld["default"], {
|
|
118
|
+
actions: actions,
|
|
119
|
+
direction: "column",
|
|
120
|
+
themeFunction: _themeOld["default"].selectActionButtonHBTheme,
|
|
121
|
+
callback: handleClose
|
|
122
|
+
})), /*#__PURE__*/_react["default"].createElement(ChannelContainer, null, /*#__PURE__*/_react["default"].createElement(_channelsOld["default"], {
|
|
123
|
+
data: channels,
|
|
124
|
+
direction: "column",
|
|
125
|
+
currentPathname: "",
|
|
126
|
+
themeFunction: _themeOld["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
|
+
}))));
|
|
132
|
+
});
|
|
133
|
+
};
|
|
134
|
+
|
|
135
|
+
HamburgerMenu.propTypes = {
|
|
136
|
+
channels: _propTypes["default"].array,
|
|
137
|
+
services: _propTypes["default"].array,
|
|
138
|
+
actions: _propTypes["default"].array,
|
|
139
|
+
handleClose: _propTypes["default"].func
|
|
140
|
+
};
|
|
141
|
+
HamburgerMenu.defaultProps = {
|
|
142
|
+
channels: [],
|
|
143
|
+
services: [],
|
|
144
|
+
actions: [],
|
|
145
|
+
handleClose: function handleClose() {}
|
|
146
|
+
};
|
|
147
|
+
var _default = HamburgerMenu;
|
|
148
|
+
exports["default"] = _default;
|