@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.
Files changed (52) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/lib/actions/auth.js +9 -25
  3. package/lib/actions/error-action-creators.js +6 -20
  4. package/lib/components/action-button-item.js +41 -71
  5. package/lib/components/action-button-item.stories.js +7 -24
  6. package/lib/components/action-button.js +19 -46
  7. package/lib/components/channels.js +16 -52
  8. package/lib/components/channels.stories.js +4 -13
  9. package/lib/components/customized-link.js +3 -16
  10. package/lib/components/drop-down-menu.js +10 -52
  11. package/lib/components/hamburger-footer.js +20 -59
  12. package/lib/components/hamburger-footer.stories.js +5 -21
  13. package/lib/components/hamburger-menu-item.js +36 -75
  14. package/lib/components/hamburger-menu-item.stories.js +17 -48
  15. package/lib/components/hamburger-menu.js +41 -125
  16. package/lib/components/hamburger-menu.stories.js +4 -16
  17. package/lib/components/header.js +28 -100
  18. package/lib/components/header.stories.js +7 -16
  19. package/lib/components/icons.js +27 -86
  20. package/lib/components/icons.stories.js +5 -17
  21. package/lib/components/slogan.js +7 -24
  22. package/lib/components/slogan.stories.js +3 -12
  23. package/lib/components/tab-bar.js +21 -48
  24. package/lib/components/tab-bar.stories.js +4 -16
  25. package/lib/constants/action-item-types.js +13 -36
  26. package/lib/constants/action-types.js +2 -3
  27. package/lib/constants/actions.js +9 -13
  28. package/lib/constants/categories.js +5 -9
  29. package/lib/constants/channels.js +16 -27
  30. package/lib/constants/colors.js +2 -3
  31. package/lib/constants/external-links.js +1 -2
  32. package/lib/constants/fonts.js +2 -5
  33. package/lib/constants/footer.js +11 -18
  34. package/lib/constants/hamburger-menu.js +2 -3
  35. package/lib/constants/prop-types.js +5 -12
  36. package/lib/constants/slogan.js +1 -2
  37. package/lib/constants/social-media.js +2 -4
  38. package/lib/constants/theme.js +2 -3
  39. package/lib/containers/header.js +108 -200
  40. package/lib/contexts/header-context.js +2 -7
  41. package/lib/index.js +3 -9
  42. package/lib/reducers/auth.js +2 -13
  43. package/lib/reducers/index.js +1 -6
  44. package/lib/standalone-header.js +14 -45
  45. package/lib/storybook/constants/index.js +2 -8
  46. package/lib/storybook/utils/get-enum-arg.js +2 -5
  47. package/lib/utils/animations.js +2 -9
  48. package/lib/utils/icon.js +4 -83
  49. package/lib/utils/jwt.js +3 -10
  50. package/lib/utils/links.js +10 -55
  51. package/lib/utils/theme.js +8 -42
  52. package/package.json +7 -6
@@ -17,5 +17,4 @@ var links = {
17
17
  kidsReporter: 'https://kids.twreporter.org/',
18
18
  publicationAndMerchandise: 'https://twreporter.backme.tw/shops/3619?locale=zh-TW'
19
19
  };
20
- var _default = links;
21
- exports["default"] = _default;
20
+ var _default = exports["default"] = links;
@@ -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
+ };
@@ -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 footerKey = {
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.footerKey = footerKey;
24
- var FOOTER_KEY = Object.freeze(footerKey);
25
- exports.FOOTER_KEY = FOOTER_KEY;
26
- var FOOTER_PATH = (_FOOTER_PATH = {}, _defineProperty(_FOOTER_PATH, footerKey.foundation, '/categories/foundation'), _defineProperty(_FOOTER_PATH, footerKey.aboutUs, '/about-us'), _defineProperty(_FOOTER_PATH, footerKey.influenceReport, '/a/impact-and-annual-report'), _defineProperty(_FOOTER_PATH, footerKey.member, '/account'), _defineProperty(_FOOTER_PATH, footerKey.myReading, '/myreading'), _defineProperty(_FOOTER_PATH, footerKey.bookmark, '/myreading/saved'), _defineProperty(_FOOTER_PATH, footerKey.history, '/myreading/history'), _FOOTER_PATH);
27
- exports.FOOTER_PATH = FOOTER_PATH;
28
- var FOOTER_LABEL = (_FOOTER_LABEL = {}, _defineProperty(_FOOTER_LABEL, footerKey.foundation, '基金會消息'), _defineProperty(_FOOTER_LABEL, footerKey.aboutUs, '關於我們'), _defineProperty(_FOOTER_LABEL, footerKey.influenceReport, '影響力報告'), _defineProperty(_FOOTER_LABEL, footerKey.openLab, '報導者開放實驗室'), _defineProperty(_FOOTER_LABEL, footerKey.member, '個人專區'), _defineProperty(_FOOTER_LABEL, footerKey.myReading, '我的閱讀'), _defineProperty(_FOOTER_LABEL, footerKey.bookmark, '已收藏'), _defineProperty(_FOOTER_LABEL, footerKey.history, '造訪紀錄'), _defineProperty(_FOOTER_LABEL, footerKey.publicationAndMerchandise, '出版品與周邊'), _FOOTER_LABEL);
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.CONTEXT_PROP = CONTEXT_PROP;
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.HAMBURGER_CONTEXT_PROP = HAMBURGER_CONTEXT_PROP;
57
- var LINK_PROP = {
51
+ var LINK_PROP = exports.LINK_PROP = {
58
52
  propTypes: linkPropTypes
59
- };
60
- exports.LINK_PROP = LINK_PROP;
53
+ };
@@ -5,5 +5,4 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports["default"] = void 0;
7
7
  var slogan = '深度 × 開放 × 非營利';
8
- var _default = slogan;
9
- exports["default"] = _default;
8
+ var _default = exports["default"] = slogan;
@@ -10,7 +10,5 @@ var socialMediaKey = {
10
10
  twitter: 'twitter',
11
11
  youtube: 'youtube'
12
12
  };
13
- var SOCIAL_MEDIA_KEY = socialMediaKey;
14
- exports.SOCIAL_MEDIA_KEY = SOCIAL_MEDIA_KEY;
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];
@@ -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
+ };
@@ -1,227 +1,135 @@
1
1
  "use strict";
2
2
 
3
- function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
4
-
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 ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
25
-
26
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
27
-
28
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
29
-
30
- function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
31
-
32
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
33
-
34
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
35
-
36
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
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 Container = /*#__PURE__*/function (_React$PureComponent) {
58
- _inherits(Container, _React$PureComponent);
59
-
60
- var _super = _createSuper(Container);
61
-
62
- function Container(props) {
63
- var _this;
64
-
65
- _classCallCheck(this, Container);
66
-
67
- _this = _super.call(this, props);
68
- _this.state = {
69
- toUseNarrow: false,
70
- hideHeader: false
71
- };
72
- _this.lastKnownPageYOffset = 0;
73
- _this.ticking = false;
74
- _this.handleScroll = _this.__handleScroll.bind(_assertThisInitialized(_this)); // Below parameters are used to calculate scroll transform status.
75
-
76
- _this.currentY = 0;
77
- _this.readyY = 0;
78
- _this.isTransforming = false;
79
- _this.transformTimer = null;
80
- return _this;
81
- }
82
-
83
- _createClass(Container, [{
84
- key: "componentDidMount",
85
- value: function componentDidMount() {
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
- key: "componentWillUnmount",
92
- value: function componentWillUnmount() {
93
- window.removeEventListener('scroll', this.handleScroll);
94
- this.lastKnownPageYOffset = null;
95
- this.ticking = null;
96
- this.handleScroll = null;
97
- this.currentY = null;
98
- this.readyY = null;
99
- this.isTransforming = null;
100
- this.transformTimer = null;
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
- * Wrap __handleScroll() with requestAnimationFrame() to avoid triggering browser reflow due to reading window.pageYOffset.
104
- * ref: https://developer.mozilla.org/en-US/docs/web/api/document/scroll_event#Example
105
- */
106
-
107
- }, {
108
- key: "__handleScroll",
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
- key: "__updateScrollState",
125
- value: function __updateScrollState(currentScrollTop) {
126
- var scrollDirection = currentScrollTop > this.currentY ? 'down' : 'up';
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
- key: "__getScrollState",
135
- value: function __getScrollState(scrollTop, scrollDirection) {
136
- var _this3 = this;
137
-
138
- var isCurrentNarrow = this.state.toUseNarrow;
139
- var nextToUseNarrow = scrollTop > TRANSFORM_HEADER_THRESHOLD;
140
- var scrollState = {};
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
- return Container;
213
- }(_react["default"].PureComponent);
214
-
215
- _defineProperty(Container, "defaultProps", _objectSpread({}, _propTypes.CONTEXT_PROP.defaultProps));
216
-
217
- _defineProperty(Container, "propTypes", _objectSpread({}, _propTypes.CONTEXT_PROP.propTypes));
218
-
219
- function mapStateToProps(state) {
220
- return {
221
- isAuthed: _.get(state, 'auth.isAuthed', false)
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
- var _default = (0, _reactRedux.connect)(mapStateToProps)(Container);
226
-
227
- exports["default"] = _default;
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.HamburgerContext = HamburgerContext;
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 Header = _header["default"];
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
+ };
@@ -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;
@@ -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;