@twreporter/universal-header 3.0.3-rc.0 → 3.0.3-rc.2
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 +16 -0
- package/lib/actions/auth.js +9 -25
- package/lib/actions/error-action-creators.js +6 -20
- package/lib/components/action-button-item.js +41 -71
- package/lib/components/action-button-item.stories.js +7 -24
- package/lib/components/action-button.js +19 -46
- package/lib/components/channels.js +16 -52
- package/lib/components/channels.stories.js +4 -13
- package/lib/components/customized-link.js +3 -16
- package/lib/components/drop-down-menu.js +10 -52
- package/lib/components/hamburger-footer.js +20 -59
- package/lib/components/hamburger-footer.stories.js +5 -21
- package/lib/components/hamburger-menu-item.js +36 -75
- package/lib/components/hamburger-menu-item.stories.js +17 -48
- package/lib/components/hamburger-menu.js +41 -125
- package/lib/components/hamburger-menu.stories.js +4 -16
- package/lib/components/header.js +28 -100
- package/lib/components/header.stories.js +7 -16
- package/lib/components/icons.js +27 -86
- package/lib/components/icons.stories.js +5 -17
- package/lib/components/slogan.js +7 -24
- package/lib/components/slogan.stories.js +3 -12
- package/lib/components/tab-bar.js +21 -48
- package/lib/components/tab-bar.stories.js +4 -16
- package/lib/constants/action-item-types.js +13 -36
- package/lib/constants/action-types.js +2 -3
- package/lib/constants/actions.js +9 -13
- package/lib/constants/categories.js +5 -9
- package/lib/constants/channels.js +16 -27
- package/lib/constants/colors.js +2 -3
- package/lib/constants/external-links.js +1 -2
- package/lib/constants/fonts.js +2 -5
- package/lib/constants/footer.js +11 -18
- package/lib/constants/hamburger-menu.js +2 -3
- package/lib/constants/prop-types.js +5 -12
- package/lib/constants/slogan.js +1 -2
- package/lib/constants/social-media.js +2 -4
- package/lib/constants/theme.js +2 -3
- package/lib/containers/header.js +108 -200
- package/lib/contexts/header-context.js +2 -7
- package/lib/index.js +3 -9
- package/lib/reducers/auth.js +2 -13
- package/lib/reducers/index.js +1 -6
- package/lib/standalone-header.js +14 -45
- package/lib/storybook/constants/index.js +2 -8
- package/lib/storybook/utils/get-enum-arg.js +2 -5
- package/lib/utils/animations.js +2 -9
- package/lib/utils/icon.js +4 -83
- package/lib/utils/jwt.js +3 -10
- package/lib/utils/links.js +10 -55
- package/lib/utils/theme.js +8 -42
- package/package.json +7 -6
package/lib/constants/fonts.js
CHANGED
|
@@ -4,10 +4,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports["default"] = void 0;
|
|
7
|
-
|
|
8
7
|
var _font = require("@twreporter/core/lib/constants/font");
|
|
9
|
-
|
|
10
|
-
var _default = {
|
|
8
|
+
var _default = exports["default"] = {
|
|
11
9
|
size: {
|
|
12
10
|
xsmall: '9px',
|
|
13
11
|
small: '12px',
|
|
@@ -30,5 +28,4 @@ var _default = {
|
|
|
30
28
|
family: {
|
|
31
29
|
serif: 'source-han-serif-tc, serif'
|
|
32
30
|
}
|
|
33
|
-
};
|
|
34
|
-
exports["default"] = _default;
|
|
31
|
+
};
|
package/lib/constants/footer.js
CHANGED
|
@@ -4,12 +4,12 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.footerKey = exports.MEMBER_ORDER = exports.FOOTER_PATH = exports.FOOTER_ORDER = exports.FOOTER_LABEL = exports.FOOTER_KEY = exports.FOOTER_ICON = void 0;
|
|
7
|
-
|
|
8
7
|
var _FOOTER_PATH, _FOOTER_LABEL, _FOOTER_ICON;
|
|
9
|
-
|
|
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
|
-
|
|
12
|
-
var
|
|
8
|
+
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); }
|
|
9
|
+
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; }
|
|
10
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
11
|
+
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); }
|
|
12
|
+
var footerKey = exports.footerKey = {
|
|
13
13
|
foundation: 'foundation',
|
|
14
14
|
aboutUs: 'about-us',
|
|
15
15
|
influenceReport: 'influence-report',
|
|
@@ -20,16 +20,9 @@ var footerKey = {
|
|
|
20
20
|
history: 'history',
|
|
21
21
|
publicationAndMerchandise: 'publication-and-merchandise'
|
|
22
22
|
};
|
|
23
|
-
exports.
|
|
24
|
-
var
|
|
25
|
-
exports.
|
|
26
|
-
var
|
|
27
|
-
exports.
|
|
28
|
-
var
|
|
29
|
-
exports.FOOTER_LABEL = FOOTER_LABEL;
|
|
30
|
-
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);
|
|
31
|
-
exports.FOOTER_ICON = FOOTER_ICON;
|
|
32
|
-
var FOOTER_ORDER = [footerKey.foundation, footerKey.aboutUs, footerKey.influenceReport, footerKey.openLab, footerKey.publicationAndMerchandise];
|
|
33
|
-
exports.FOOTER_ORDER = FOOTER_ORDER;
|
|
34
|
-
var MEMBER_ORDER = [footerKey.member, footerKey.myReading, footerKey.bookmark, footerKey.history];
|
|
35
|
-
exports.MEMBER_ORDER = MEMBER_ORDER;
|
|
23
|
+
var FOOTER_KEY = exports.FOOTER_KEY = Object.freeze(footerKey);
|
|
24
|
+
var FOOTER_PATH = exports.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);
|
|
25
|
+
var FOOTER_LABEL = exports.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, '造訪紀錄'), _defineProperty(_FOOTER_LABEL, footerKey.publicationAndMerchandise, '出版品與周邊'), _FOOTER_LABEL);
|
|
26
|
+
var FOOTER_ICON = exports.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);
|
|
27
|
+
var FOOTER_ORDER = exports.FOOTER_ORDER = [footerKey.foundation, footerKey.aboutUs, footerKey.influenceReport, footerKey.openLab, footerKey.publicationAndMerchandise];
|
|
28
|
+
var MEMBER_ORDER = exports.MEMBER_ORDER = [footerKey.member, footerKey.myReading, footerKey.bookmark, footerKey.history];
|
|
@@ -4,10 +4,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.MENU_WIDTH = void 0;
|
|
7
|
-
var MENU_WIDTH = {
|
|
7
|
+
var MENU_WIDTH = exports.MENU_WIDTH = {
|
|
8
8
|
hd: '280px',
|
|
9
9
|
desktop: '280px',
|
|
10
10
|
tablet: '320px',
|
|
11
11
|
mobile: '100vw'
|
|
12
|
-
};
|
|
13
|
-
exports.MENU_WIDTH = MENU_WIDTH;
|
|
12
|
+
};
|
|
@@ -4,16 +4,12 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.LINK_PROP = exports.HAMBURGER_CONTEXT_PROP = exports.CONTEXT_PROP = void 0;
|
|
7
|
-
|
|
8
7
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
9
|
-
|
|
10
8
|
var _releaseBranch = require("@twreporter/core/lib/constants/release-branch");
|
|
11
|
-
|
|
12
9
|
var _theme = require("@twreporter/core/lib/constants/theme");
|
|
13
|
-
|
|
14
10
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
15
|
-
|
|
16
11
|
// @twreporter
|
|
12
|
+
|
|
17
13
|
var contextPropTypes = {
|
|
18
14
|
theme: _theme.THEME_PROP_TYPES,
|
|
19
15
|
releaseBranch: _releaseBranch.BRANCH_PROP_TYPES,
|
|
@@ -44,17 +40,14 @@ var hamburgerContextDefaultProps = {
|
|
|
44
40
|
closeHamburgerMenu: function closeHamburgerMenu() {},
|
|
45
41
|
isHamburgerMenuOpen: false
|
|
46
42
|
};
|
|
47
|
-
var CONTEXT_PROP = {
|
|
43
|
+
var CONTEXT_PROP = exports.CONTEXT_PROP = {
|
|
48
44
|
propTypes: contextPropTypes,
|
|
49
45
|
defaultProps: contextDefaultProps
|
|
50
46
|
};
|
|
51
|
-
exports.
|
|
52
|
-
var HAMBURGER_CONTEXT_PROP = {
|
|
47
|
+
var HAMBURGER_CONTEXT_PROP = exports.HAMBURGER_CONTEXT_PROP = {
|
|
53
48
|
propTypes: hamburgerContextPropTypes,
|
|
54
49
|
defaultProps: hamburgerContextDefaultProps
|
|
55
50
|
};
|
|
56
|
-
exports.
|
|
57
|
-
var LINK_PROP = {
|
|
51
|
+
var LINK_PROP = exports.LINK_PROP = {
|
|
58
52
|
propTypes: linkPropTypes
|
|
59
|
-
};
|
|
60
|
-
exports.LINK_PROP = LINK_PROP;
|
|
53
|
+
};
|
package/lib/constants/slogan.js
CHANGED
|
@@ -10,7 +10,5 @@ var socialMediaKey = {
|
|
|
10
10
|
twitter: 'twitter',
|
|
11
11
|
youtube: 'youtube'
|
|
12
12
|
};
|
|
13
|
-
var SOCIAL_MEDIA_KEY = socialMediaKey;
|
|
14
|
-
exports.
|
|
15
|
-
var SOCIAL_MEDIA_ORDER = [socialMediaKey.facebook, socialMediaKey.instagram, socialMediaKey.twitter, socialMediaKey.youtube];
|
|
16
|
-
exports.SOCIAL_MEDIA_ORDER = SOCIAL_MEDIA_ORDER;
|
|
13
|
+
var SOCIAL_MEDIA_KEY = exports.SOCIAL_MEDIA_KEY = socialMediaKey;
|
|
14
|
+
var SOCIAL_MEDIA_ORDER = exports.SOCIAL_MEDIA_ORDER = [socialMediaKey.facebook, socialMediaKey.instagram, socialMediaKey.twitter, socialMediaKey.youtube];
|
package/lib/constants/theme.js
CHANGED
|
@@ -4,10 +4,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports["default"] = void 0;
|
|
7
|
-
var _default = {
|
|
7
|
+
var _default = exports["default"] = {
|
|
8
8
|
transparent: 'transparent',
|
|
9
9
|
normal: 'normal',
|
|
10
10
|
photography: 'photography',
|
|
11
11
|
index: 'index'
|
|
12
|
-
};
|
|
13
|
-
exports["default"] = _default;
|
|
12
|
+
};
|
package/lib/containers/header.js
CHANGED
|
@@ -1,227 +1,135 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
function _typeof(
|
|
4
|
-
|
|
3
|
+
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); }
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports["default"] = void 0;
|
|
9
|
-
|
|
10
|
-
var _react = _interopRequireDefault(require("react"));
|
|
11
|
-
|
|
8
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
12
9
|
var _reactRedux = require("react-redux");
|
|
13
|
-
|
|
14
10
|
var _headerContext = _interopRequireDefault(require("../contexts/header-context"));
|
|
15
|
-
|
|
16
11
|
var _propTypes = require("../constants/prop-types");
|
|
17
|
-
|
|
18
12
|
var _header = _interopRequireDefault(require("../components/header"));
|
|
19
|
-
|
|
20
13
|
var _get = _interopRequireDefault(require("lodash/get"));
|
|
21
|
-
|
|
22
14
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
23
|
-
|
|
24
|
-
function
|
|
25
|
-
|
|
26
|
-
function _objectSpread(
|
|
27
|
-
|
|
28
|
-
function
|
|
29
|
-
|
|
30
|
-
function
|
|
31
|
-
|
|
32
|
-
function
|
|
33
|
-
|
|
34
|
-
function
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
|
|
39
|
-
|
|
40
|
-
function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
|
|
41
|
-
|
|
42
|
-
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
|
|
43
|
-
|
|
44
|
-
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
45
|
-
|
|
46
|
-
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
|
47
|
-
|
|
48
|
-
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
|
-
|
|
15
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
16
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
|
|
17
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
18
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
19
|
+
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; }
|
|
20
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
21
|
+
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); }
|
|
22
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
23
|
+
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."); }
|
|
24
|
+
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); }
|
|
25
|
+
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; }
|
|
26
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
27
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } // constant
|
|
28
|
+
// Header
|
|
29
|
+
// lodash
|
|
50
30
|
var _ = {
|
|
51
31
|
get: _get["default"]
|
|
52
32
|
};
|
|
53
33
|
var HIDE_HEADER_THRESHOLD = 8;
|
|
54
34
|
var TRANSFORM_HEADER_THRESHOLD = 40;
|
|
55
35
|
var TRANSFORM_TIMEOUT = 800;
|
|
56
|
-
|
|
57
|
-
var
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
window.addEventListener('scroll', this.handleScroll, {
|
|
87
|
-
passive: true
|
|
36
|
+
var Container = function Container(_ref) {
|
|
37
|
+
var releaseBranch = _ref.releaseBranch,
|
|
38
|
+
isLinkExternal = _ref.isLinkExternal,
|
|
39
|
+
theme = _ref.theme,
|
|
40
|
+
pathname = _ref.pathname,
|
|
41
|
+
referrerPath = _ref.referrerPath,
|
|
42
|
+
hamburgerContext = _ref.hamburgerContext;
|
|
43
|
+
var _useState = (0, _react.useState)(false),
|
|
44
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
45
|
+
toUseNarrow = _useState2[0],
|
|
46
|
+
setToUseNarrow = _useState2[1];
|
|
47
|
+
var _useState3 = (0, _react.useState)(false),
|
|
48
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
49
|
+
hideHeader = _useState4[0],
|
|
50
|
+
setHideHeader = _useState4[1];
|
|
51
|
+
var isAuthed = (0, _reactRedux.useSelector)(function (state) {
|
|
52
|
+
return _.get(state, 'auth.isAuthed', false);
|
|
53
|
+
});
|
|
54
|
+
var lastKnownPageYOffset = (0, _react.useRef)(0);
|
|
55
|
+
var ticking = (0, _react.useRef)(false);
|
|
56
|
+
var currentY = (0, _react.useRef)(0);
|
|
57
|
+
var readyY = (0, _react.useRef)(0);
|
|
58
|
+
var isTransforming = (0, _react.useRef)(false);
|
|
59
|
+
var transformTimer = (0, _react.useRef)(null);
|
|
60
|
+
var handleScroll = (0, _react.useCallback)(function () {
|
|
61
|
+
lastKnownPageYOffset.current = window.pageYOffset;
|
|
62
|
+
if (!ticking.current) {
|
|
63
|
+
window.requestAnimationFrame(function () {
|
|
64
|
+
updateScrollState(lastKnownPageYOffset.current);
|
|
65
|
+
ticking.current = false;
|
|
88
66
|
});
|
|
67
|
+
ticking.current = true;
|
|
89
68
|
}
|
|
90
|
-
},
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
69
|
+
}, []);
|
|
70
|
+
var updateScrollState = (0, _react.useCallback)(function (currentScrollTop) {
|
|
71
|
+
var scrollDirection = currentScrollTop > currentY.current ? 'down' : 'up';
|
|
72
|
+
currentY.current = currentScrollTop;
|
|
73
|
+
var updateState = getScrollState(currentScrollTop, scrollDirection);
|
|
74
|
+
setToUseNarrow(updateState.toUseNarrow);
|
|
75
|
+
setHideHeader(updateState.hideHeader);
|
|
76
|
+
}, []);
|
|
77
|
+
var getScrollState = (0, _react.useCallback)(function (scrollTop, scrollDirection) {
|
|
78
|
+
var isCurrentNarrow = toUseNarrow;
|
|
79
|
+
var nextToUseNarrow = scrollTop > TRANSFORM_HEADER_THRESHOLD;
|
|
80
|
+
var scrollState = {};
|
|
81
|
+
if (isTransforming.current) {
|
|
82
|
+
return scrollState;
|
|
101
83
|
}
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
value: function __handleScroll() {
|
|
110
|
-
var _this2 = this;
|
|
111
|
-
|
|
112
|
-
this.lastKnownPageYOffset = window.pageYOffset;
|
|
113
|
-
|
|
114
|
-
if (!this.ticking) {
|
|
115
|
-
window.requestAnimationFrame(function () {
|
|
116
|
-
_this2.__updateScrollState(_this2.lastKnownPageYOffset);
|
|
117
|
-
|
|
118
|
-
_this2.ticking = false;
|
|
119
|
-
});
|
|
120
|
-
this.ticking = true;
|
|
84
|
+
if (scrollDirection === 'up') {
|
|
85
|
+
readyY.current = scrollTop;
|
|
86
|
+
scrollState.hideHeader = false;
|
|
87
|
+
}
|
|
88
|
+
if (scrollDirection === 'down') {
|
|
89
|
+
if (isCurrentNarrow && scrollTop - readyY.current > HIDE_HEADER_THRESHOLD) {
|
|
90
|
+
scrollState.hideHeader = true;
|
|
121
91
|
}
|
|
122
92
|
}
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
this.currentY = currentScrollTop;
|
|
128
|
-
|
|
129
|
-
var updateState = this.__getScrollState(currentScrollTop, scrollDirection);
|
|
130
|
-
|
|
131
|
-
this.setState(updateState);
|
|
93
|
+
if (isCurrentNarrow) {
|
|
94
|
+
scrollState.toUseNarrow = scrollDirection === 'down' ? true : nextToUseNarrow;
|
|
95
|
+
} else {
|
|
96
|
+
scrollState.toUseNarrow = scrollDirection === 'up' ? false : nextToUseNarrow;
|
|
132
97
|
}
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
if (this.isTransforming) {
|
|
143
|
-
return scrollState;
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
if (scrollDirection === 'up') {
|
|
147
|
-
this.readyY = scrollTop;
|
|
148
|
-
scrollState.hideHeader = false;
|
|
98
|
+
if (isCurrentNarrow !== scrollState.toUseNarrow) {
|
|
99
|
+
if (!transformTimer.current) {
|
|
100
|
+
isTransforming.current = true;
|
|
101
|
+
transformTimer.current = setTimeout(function () {
|
|
102
|
+
isTransforming.current = false;
|
|
103
|
+
readyY.current = currentY.current;
|
|
104
|
+
transformTimer.current = null;
|
|
105
|
+
}, TRANSFORM_TIMEOUT);
|
|
149
106
|
}
|
|
150
|
-
|
|
151
|
-
if (scrollDirection === 'down') {
|
|
152
|
-
// after transforming to narrow header, header should hide when scroll down
|
|
153
|
-
if (isCurrentNarrow && scrollTop - this.readyY > HIDE_HEADER_THRESHOLD) {
|
|
154
|
-
scrollState.hideHeader = true;
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
if (isCurrentNarrow) {
|
|
159
|
-
// after transforming to narrow header, always remain narrow when scroll down
|
|
160
|
-
scrollState.toUseNarrow = scrollDirection === 'down' ? true : nextToUseNarrow;
|
|
161
|
-
} else {
|
|
162
|
-
// after transfroming to wide header, always remain wide when scroll up
|
|
163
|
-
scrollState.toUseNarrow = scrollDirection === 'up' ? false : nextToUseNarrow;
|
|
164
|
-
} // register transform timer to mark header transform status
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
if (isCurrentNarrow !== scrollState.toUseNarrow) {
|
|
168
|
-
if (!this.transformTimer) {
|
|
169
|
-
this.isTransforming = true;
|
|
170
|
-
this.transformTimer = setTimeout(function () {
|
|
171
|
-
_this3.isTransforming = false;
|
|
172
|
-
_this3.readyY = _this3.currentY;
|
|
173
|
-
_this3.transformTimer = null;
|
|
174
|
-
}, TRANSFORM_TIMEOUT);
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
|
|
178
|
-
return scrollState;
|
|
179
|
-
}
|
|
180
|
-
}, {
|
|
181
|
-
key: "render",
|
|
182
|
-
value: function render() {
|
|
183
|
-
var _this$props = this.props,
|
|
184
|
-
releaseBranch = _this$props.releaseBranch,
|
|
185
|
-
isAuthed = _this$props.isAuthed,
|
|
186
|
-
isLinkExternal = _this$props.isLinkExternal,
|
|
187
|
-
theme = _this$props.theme,
|
|
188
|
-
pathname = _this$props.pathname,
|
|
189
|
-
referrerPath = _this$props.referrerPath,
|
|
190
|
-
hamburgerContext = _this$props.hamburgerContext;
|
|
191
|
-
var _this$state = this.state,
|
|
192
|
-
toUseNarrow = _this$state.toUseNarrow,
|
|
193
|
-
hideHeader = _this$state.hideHeader;
|
|
194
|
-
var contextValue = {
|
|
195
|
-
releaseBranch: releaseBranch,
|
|
196
|
-
isAuthed: isAuthed,
|
|
197
|
-
isLinkExternal: isLinkExternal,
|
|
198
|
-
theme: theme,
|
|
199
|
-
pathname: pathname,
|
|
200
|
-
referrerPath: referrerPath,
|
|
201
|
-
toUseNarrow: toUseNarrow,
|
|
202
|
-
hideHeader: hideHeader
|
|
203
|
-
};
|
|
204
|
-
return /*#__PURE__*/_react["default"].createElement(_headerContext["default"].Provider, {
|
|
205
|
-
value: contextValue
|
|
206
|
-
}, /*#__PURE__*/_react["default"].createElement(_header["default"], {
|
|
207
|
-
hamburgerContext: hamburgerContext
|
|
208
|
-
}));
|
|
209
107
|
}
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
108
|
+
return scrollState;
|
|
109
|
+
}, [toUseNarrow]);
|
|
110
|
+
(0, _react.useEffect)(function () {
|
|
111
|
+
window.addEventListener('scroll', handleScroll, {
|
|
112
|
+
passive: true
|
|
113
|
+
});
|
|
114
|
+
return function () {
|
|
115
|
+
window.removeEventListener('scroll', handleScroll);
|
|
116
|
+
};
|
|
117
|
+
}, [handleScroll]);
|
|
118
|
+
var contextValue = {
|
|
119
|
+
releaseBranch: releaseBranch,
|
|
120
|
+
isAuthed: isAuthed,
|
|
121
|
+
isLinkExternal: isLinkExternal,
|
|
122
|
+
theme: theme,
|
|
123
|
+
pathname: pathname,
|
|
124
|
+
referrerPath: referrerPath,
|
|
125
|
+
toUseNarrow: toUseNarrow,
|
|
126
|
+
hideHeader: hideHeader
|
|
222
127
|
};
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
128
|
+
return /*#__PURE__*/_react["default"].createElement(_headerContext["default"].Provider, {
|
|
129
|
+
value: contextValue
|
|
130
|
+
}, /*#__PURE__*/_react["default"].createElement(_header["default"], {
|
|
131
|
+
hamburgerContext: hamburgerContext
|
|
132
|
+
}));
|
|
133
|
+
};
|
|
134
|
+
Container.propTypes = _objectSpread({}, _propTypes.CONTEXT_PROP.propTypes);
|
|
135
|
+
var _default = exports["default"] = Container;
|
|
@@ -4,13 +4,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports["default"] = exports.HamburgerContext = void 0;
|
|
7
|
-
|
|
8
7
|
var _react = require("react");
|
|
9
|
-
|
|
10
8
|
var _propTypes = require("../constants/prop-types");
|
|
11
|
-
|
|
12
9
|
var HeaderContext = /*#__PURE__*/(0, _react.createContext)(_propTypes.CONTEXT_PROP);
|
|
13
|
-
var HamburgerContext = /*#__PURE__*/(0, _react.createContext)(_propTypes.HAMBURGER_CONTEXT_PROP);
|
|
14
|
-
exports
|
|
15
|
-
var _default = HeaderContext;
|
|
16
|
-
exports["default"] = _default;
|
|
10
|
+
var HamburgerContext = exports.HamburgerContext = /*#__PURE__*/(0, _react.createContext)(_propTypes.HAMBURGER_CONTEXT_PROP);
|
|
11
|
+
var _default = exports["default"] = HeaderContext;
|
package/lib/index.js
CHANGED
|
@@ -4,17 +4,11 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports["default"] = exports.Header = void 0;
|
|
7
|
-
|
|
8
7
|
var _standaloneHeader = _interopRequireDefault(require("./standalone-header"));
|
|
9
|
-
|
|
10
8
|
var _header = _interopRequireDefault(require("./containers/header"));
|
|
11
|
-
|
|
12
9
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
13
|
-
|
|
14
|
-
var
|
|
15
|
-
exports.Header = Header;
|
|
16
|
-
var _default = {
|
|
10
|
+
var Header = exports.Header = _header["default"];
|
|
11
|
+
var _default = exports["default"] = {
|
|
17
12
|
Header: Header,
|
|
18
13
|
StandaloneHeader: _standaloneHeader["default"]
|
|
19
|
-
};
|
|
20
|
-
exports["default"] = _default;
|
|
14
|
+
};
|
package/lib/reducers/auth.js
CHANGED
|
@@ -4,16 +4,12 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports["default"] = auth;
|
|
7
|
-
|
|
8
7
|
var _actionTypes = _interopRequireDefault(require("../constants/action-types"));
|
|
9
|
-
|
|
10
8
|
var _jwt = _interopRequireDefault(require("../utils/jwt"));
|
|
11
|
-
|
|
12
9
|
var _get = _interopRequireDefault(require("lodash/get"));
|
|
13
|
-
|
|
14
10
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
15
|
-
|
|
16
11
|
// lodash
|
|
12
|
+
|
|
17
13
|
var _ = {
|
|
18
14
|
get: _get["default"]
|
|
19
15
|
};
|
|
@@ -25,6 +21,7 @@ var initState = {
|
|
|
25
21
|
isRequesting: false,
|
|
26
22
|
userInfo: null
|
|
27
23
|
};
|
|
24
|
+
|
|
28
25
|
/**
|
|
29
26
|
* @param {Object} state - redux state
|
|
30
27
|
* @param {bool} state.isRequesting - requst is in progress
|
|
@@ -43,18 +40,15 @@ var initState = {
|
|
|
43
40
|
* @param {Object} action.payload.options - request options
|
|
44
41
|
* @param {string} action.payload.message - error message
|
|
45
42
|
*/
|
|
46
|
-
|
|
47
43
|
function auth() {
|
|
48
44
|
var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initState;
|
|
49
45
|
var action = arguments.length > 1 ? arguments[1] : undefined;
|
|
50
|
-
|
|
51
46
|
switch (action.type) {
|
|
52
47
|
case _actionTypes["default"].AUTH_CLEAR:
|
|
53
48
|
{
|
|
54
49
|
// return empty state
|
|
55
50
|
return initState;
|
|
56
51
|
}
|
|
57
|
-
|
|
58
52
|
case _actionTypes["default"].REQUEST_AUTH:
|
|
59
53
|
{
|
|
60
54
|
return {
|
|
@@ -68,7 +62,6 @@ function auth() {
|
|
|
68
62
|
userInfo: initState.userInfo
|
|
69
63
|
};
|
|
70
64
|
}
|
|
71
|
-
|
|
72
65
|
case _actionTypes["default"].AUTH_FAILURE:
|
|
73
66
|
{
|
|
74
67
|
return {
|
|
@@ -82,13 +75,10 @@ function auth() {
|
|
|
82
75
|
userInfo: initState.userInfo
|
|
83
76
|
};
|
|
84
77
|
}
|
|
85
|
-
|
|
86
78
|
case _actionTypes["default"].AUTH_SUCCESS:
|
|
87
79
|
{
|
|
88
80
|
var jwt = _.get(action, 'payload.data.jwt', '');
|
|
89
|
-
|
|
90
81
|
var userInfo = _jwt["default"].decodePayload(jwt);
|
|
91
|
-
|
|
92
82
|
return {
|
|
93
83
|
accessToken: jwt,
|
|
94
84
|
lastAction: {
|
|
@@ -100,7 +90,6 @@ function auth() {
|
|
|
100
90
|
userInfo: userInfo
|
|
101
91
|
};
|
|
102
92
|
}
|
|
103
|
-
|
|
104
93
|
default:
|
|
105
94
|
{
|
|
106
95
|
return state;
|
package/lib/reducers/index.js
CHANGED
|
@@ -4,13 +4,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports["default"] = void 0;
|
|
7
|
-
|
|
8
7
|
var _redux = require("redux");
|
|
9
|
-
|
|
10
8
|
var _auth = _interopRequireDefault(require("./auth"));
|
|
11
|
-
|
|
12
9
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
13
|
-
|
|
14
10
|
var rootReducer = (0, _redux.combineReducers)({
|
|
15
11
|
origins: function origins() {
|
|
16
12
|
var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
@@ -18,5 +14,4 @@ var rootReducer = (0, _redux.combineReducers)({
|
|
|
18
14
|
},
|
|
19
15
|
auth: _auth["default"]
|
|
20
16
|
});
|
|
21
|
-
var _default = rootReducer;
|
|
22
|
-
exports["default"] = _default;
|
|
17
|
+
var _default = exports["default"] = rootReducer;
|