@twreporter/react-components 8.14.0-rc.2 → 8.15.0-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,33 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [8.15.0-rc.0](https://github.com/twreporter/twreporter-npm-packages/compare/@twreporter/react-components@8.14.0...@twreporter/react-components@8.15.0-rc.0) (2022-10-27)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * add comment for event handler notice ([eb872aa](https://github.com/twreporter/twreporter-npm-packages/commit/eb872aa9de69408e4bad58ba7d9c52bfa2f80d1a))
12
+ * fix feature toggle & style ([9d615b1](https://github.com/twreporter/twreporter-npm-packages/commit/9d615b1091bf5762329f878f13c114cf1dce9912))
13
+ * fix style & bug & naming ([7d824ab](https://github.com/twreporter/twreporter-npm-packages/commit/7d824abc5429b3505555aa174c038c67056abccb))
14
+
15
+
16
+ ### Features
17
+
18
+ * add LogoSymbol component & story ([3a1d773](https://github.com/twreporter/twreporter-npm-packages/commit/3a1d773972c576fd48e37e538687e9f6756f5e79))
19
+ * add SocialMedia component & fic category-set constants ([617c87c](https://github.com/twreporter/twreporter-npm-packages/commit/617c87c4d67f16e3e9ca2cd778b526a563708277))
20
+
21
+
22
+
23
+
24
+
25
+ # [8.14.0](https://github.com/twreporter/twreporter-npm-packages/compare/@twreporter/react-components@8.14.0-rc.2...@twreporter/react-components@8.14.0) (2022-10-26)
26
+
27
+ **Note:** Version bump only for package @twreporter/react-components
28
+
29
+
30
+
31
+
32
+
6
33
  # [8.14.0-rc.2](https://github.com/twreporter/twreporter-npm-packages/compare/@twreporter/react-components@8.14.0-rc.1...@twreporter/react-components@8.14.0-rc.2) (2022-10-25)
7
34
 
8
35
 
package/lib/divider.js CHANGED
@@ -15,8 +15,16 @@ var _color = require("@twreporter/core/lib/constants/color");
15
15
 
16
16
  var _css = require("@twreporter/core/lib/utils/css");
17
17
 
18
+ var _excluded = ["direction"];
19
+
18
20
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
19
21
 
22
+ 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); }
23
+
24
+ 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; }
25
+
26
+ 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; }
27
+
20
28
  var borderWidth = {
21
29
  vertical: [0, '1px', 0, 0],
22
30
  horizontal: ['1px', 0, 0, 0]
@@ -43,10 +51,12 @@ var DividerBox = /*#__PURE__*/_styledComponents["default"].div.withConfig({
43
51
 
44
52
  var Divider = function Divider(_ref) {
45
53
  var _ref$direction = _ref.direction,
46
- direction = _ref$direction === void 0 ? 'horizontal' : _ref$direction;
47
- return /*#__PURE__*/_react["default"].createElement(DividerBox, {
54
+ direction = _ref$direction === void 0 ? 'horizontal' : _ref$direction,
55
+ props = _objectWithoutProperties(_ref, _excluded);
56
+
57
+ return /*#__PURE__*/_react["default"].createElement(DividerBox, _extends({
48
58
  direction: direction
49
- });
59
+ }, props));
50
60
  };
51
61
 
52
62
  Divider.propTypes = {
@@ -18,11 +18,13 @@ var useOutsideClick = function useOutsideClick(callback) {
18
18
  if (ref.current && !ref.current.contains(event.target)) {
19
19
  callback(event);
20
20
  }
21
- };
21
+ }; // to work with react synthetic events, we need to add event handler on window instead of document
22
+ // ref: https://dev.to/dvnrsn/why-isn-t-event-stoppropagation-working-1bnm
23
+
22
24
 
23
- document.addEventListener('click', handleClick);
25
+ window.addEventListener('click', handleClick);
24
26
  return function () {
25
- document.removeEventListener('click', handleClick);
27
+ window.removeEventListener('click', handleClick);
26
28
  };
27
29
  }, [ref, callback]);
28
30
  return ref;
package/lib/icon/index.js CHANGED
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports["default"] = exports.Line = exports.Youtube = exports.Twitter = exports.Medium = exports.Instagram = exports.Facebook = exports.Printer = exports.Loading = exports.Copy = exports.Topic = exports.Article = exports.Clock = exports.Text = exports.Share = exports.Home = exports.Member = exports.Search = exports.Cross = exports.Hamburger = exports.Bookmark = exports.Arrow = exports.Icon = void 0;
6
+ exports["default"] = exports.SocialMedia = exports.Line = exports.Youtube = exports.Twitter = exports.Medium = exports.Instagram = exports.Facebook = exports.Printer = exports.Loading = exports.Copy = exports.Topic = exports.Article = exports.Clock = exports.Text = exports.Share = exports.Home = exports.Member = exports.Search = exports.Cross = exports.Hamburger = exports.Bookmark = exports.Arrow = exports.Icon = void 0;
7
7
 
8
8
  var _react = _interopRequireDefault(require("react"));
9
9
 
@@ -13,7 +13,8 @@ var _styledComponents = _interopRequireDefault(require("styled-components"));
13
13
 
14
14
  var _releaseBranch = require("@twreporter/core/lib/constants/release-branch");
15
15
 
16
- var _excluded = ["filename", "releaseBranch"];
16
+ var _excluded = ["filename", "releaseBranch"],
17
+ _excluded2 = ["mediaType"];
17
18
 
18
19
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
19
20
 
@@ -294,6 +295,21 @@ exports.Line = Line;
294
295
  Line.propTypes = {
295
296
  releaseBranch: _releaseBranch.BRANCH_PROP_TYPES
296
297
  };
298
+
299
+ var SocialMedia = function SocialMedia(_ref4) {
300
+ var mediaType = _ref4.mediaType,
301
+ args = _objectWithoutProperties(_ref4, _excluded2);
302
+
303
+ return /*#__PURE__*/_react["default"].createElement(Icon, _extends({
304
+ filename: mediaType
305
+ }, args));
306
+ };
307
+
308
+ exports.SocialMedia = SocialMedia;
309
+ SocialMedia.propTypes = {
310
+ mediaType: _propTypes["default"].oneOf(['facebook', 'instagram', 'medium', 'twitter', 'youtube', 'line']),
311
+ releaseBranch: _releaseBranch.BRANCH_PROP_TYPES
312
+ };
297
313
  var _default = {
298
314
  Arrow: Arrow,
299
315
  Article: Article,
@@ -315,6 +331,7 @@ var _default = {
315
331
  Text: Text,
316
332
  Topic: Topic,
317
333
  Twitter: Twitter,
318
- Youtube: Youtube
334
+ Youtube: Youtube,
335
+ SocialMedia: SocialMedia
319
336
  };
320
337
  exports["default"] = _default;
@@ -64,7 +64,7 @@ var _ = {
64
64
  var InputContainer = /*#__PURE__*/_styledComponents["default"].div.withConfig({
65
65
  displayName: "search-bar__InputContainer",
66
66
  componentId: "sc-1mjh7mz-0"
67
- })(["display:flex;align-items:center;padding:8px 16px;border:none;border-radius:40px;margin:8px;background-color:", ";"], function (props) {
67
+ })(["display:flex;align-items:center;padding:8px 16px;border:none;border-radius:40px;background-color:", ";"], function (props) {
68
68
  return props.bgColor;
69
69
  });
70
70
 
@@ -91,7 +91,7 @@ var Input = /*#__PURE__*/_styledComponents["default"].input.withConfig({
91
91
  var DesktopOnlyIconButton = /*#__PURE__*/(0, _styledComponents["default"])(_button.IconButton).withConfig({
92
92
  displayName: "search-bar__DesktopOnlyIconButton",
93
93
  componentId: "sc-1mjh7mz-3"
94
- })(["", ""], _mediaQuery["default"].tabletAndBelow(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n display: none;\n "]))));
94
+ })(["margin-left:8px;", ""], _mediaQuery["default"].tabletAndBelow(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n display: none;\n "]))));
95
95
 
96
96
  var defaultFunc = function defaultFunc() {};
97
97
 
@@ -17,42 +17,22 @@ var _releaseBranch = require("@twreporter/core/lib/constants/release-branch");
17
17
 
18
18
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
19
19
 
20
- function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
21
-
22
- 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."); }
23
-
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
-
26
- 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; }
27
-
28
- 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; }
29
-
30
- function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
31
-
20
+ // utils
21
+ // @twreporter
32
22
  var LogoContainer = /*#__PURE__*/_styledComponents["default"].img.withConfig({
33
23
  displayName: "logo-header__LogoContainer",
34
24
  componentId: "rlga04-0"
35
- })(["", ""], function (props) {
36
- return props.isHide ? 'display: none;' : '';
37
- });
25
+ })([""]);
38
26
 
39
27
  var LogoHeader = function LogoHeader(_ref) {
40
28
  var type = _ref.type,
41
29
  releaseBranch = _ref.releaseBranch;
42
30
 
43
- var _pathUtil$selectLogoP = _path["default"].selectLogoPath('header', releaseBranch),
44
- _pathUtil$selectLogoP2 = _slicedToArray(_pathUtil$selectLogoP, 2),
45
- logoDefaultSrc = _pathUtil$selectLogoP2[0],
46
- logoWhiteSrc = _pathUtil$selectLogoP2[1];
31
+ var logoSrc = _path["default"].selectLogoPath('header', releaseBranch, type);
47
32
 
48
33
  return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(LogoContainer, {
49
34
  alt: "The Reporter Logo",
50
- src: logoDefaultSrc,
51
- isHide: type !== 'default'
52
- }), /*#__PURE__*/_react["default"].createElement(LogoContainer, {
53
- alt: "The Reporter Logo",
54
- src: logoWhiteSrc,
55
- isHide: type !== 'white'
35
+ src: logoSrc
56
36
  }));
57
37
  };
58
38
 
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ var _propTypes = _interopRequireDefault(require("prop-types"));
11
+
12
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
13
+
14
+ var _path = _interopRequireDefault(require("../utils/path"));
15
+
16
+ var _releaseBranch = require("@twreporter/core/lib/constants/release-branch");
17
+
18
+ var _excluded = ["type", "releaseBranch"];
19
+
20
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
21
+
22
+ 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); }
23
+
24
+ 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; }
25
+
26
+ 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; }
27
+
28
+ var LogoContainer = /*#__PURE__*/_styledComponents["default"].img.withConfig({
29
+ displayName: "logo-symbol__LogoContainer",
30
+ componentId: "dea8w0-0"
31
+ })([""]);
32
+
33
+ var LogoSymbol = function LogoSymbol(_ref) {
34
+ var _ref$type = _ref.type,
35
+ type = _ref$type === void 0 ? 'default' : _ref$type,
36
+ _ref$releaseBranch = _ref.releaseBranch,
37
+ releaseBranch = _ref$releaseBranch === void 0 ? _releaseBranch.BRANCH.master : _ref$releaseBranch,
38
+ props = _objectWithoutProperties(_ref, _excluded);
39
+
40
+ var logoSrc = _path["default"].selectLogoPath('symbol', releaseBranch, type);
41
+
42
+ return /*#__PURE__*/_react["default"].createElement(LogoContainer, _extends({
43
+ src: logoSrc,
44
+ alt: "The Reporter Logo"
45
+ }, props));
46
+ };
47
+
48
+ LogoSymbol.propTypes = {
49
+ type: _propTypes["default"].oneOf(['default', 'black', 'white']),
50
+ releaseBranch: _releaseBranch.BRANCH_PROP_TYPES
51
+ };
52
+ var _default = LogoSymbol;
53
+ exports["default"] = _default;
package/lib/logo/index.js CHANGED
@@ -15,16 +15,25 @@ Object.defineProperty(exports, "LogoFooter", {
15
15
  return _logoFooter["default"];
16
16
  }
17
17
  });
18
+ Object.defineProperty(exports, "LogoSymbol", {
19
+ enumerable: true,
20
+ get: function get() {
21
+ return _logoSymbol["default"];
22
+ }
23
+ });
18
24
  exports["default"] = void 0;
19
25
 
20
26
  var _logoHeader = _interopRequireDefault(require("./components/logo-header"));
21
27
 
22
28
  var _logoFooter = _interopRequireDefault(require("./components/logo-footer"));
23
29
 
30
+ var _logoSymbol = _interopRequireDefault(require("./components/logo-symbol"));
31
+
24
32
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
25
33
 
26
34
  var _default = {
27
35
  LogoHeader: _logoHeader["default"],
28
- LogoFooter: _logoFooter["default"]
36
+ LogoFooter: _logoFooter["default"],
37
+ LogoSymbol: _logoSymbol["default"]
29
38
  };
30
39
  exports["default"] = _default;
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.symbol = exports["default"] = void 0;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ var _logoSymbol = _interopRequireDefault(require("../components/logo-symbol"));
11
+
12
+ var _releaseBranch = require("@twreporter/core/lib/constants/release-branch");
13
+
14
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
15
+
16
+ var _default = {
17
+ title: 'Logo/Symbol',
18
+ component: _logoSymbol["default"],
19
+ argTypes: {
20
+ releaseBranch: _releaseBranch.BRANCH_STORYBOOK_ARG_TYPE
21
+ }
22
+ };
23
+ exports["default"] = _default;
24
+
25
+ var symbol = function symbol(args) {
26
+ return /*#__PURE__*/_react["default"].createElement(_logoSymbol["default"], args);
27
+ };
28
+
29
+ exports.symbol = symbol;
30
+ symbol.args = {
31
+ type: 'default'
32
+ };
@@ -6,13 +6,13 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports["default"] = void 0;
7
7
  var baseGCSDir = 'https://www.twreporter.org/images/logo/';
8
8
 
9
- function selectLogoPath(logoType, branch) {
9
+ function selectLogoPath(logoType, branch, type) {
10
10
  switch (logoType) {
11
11
  case 'header':
12
12
  {
13
13
  var defaultPath = "".concat(baseGCSDir, "logo-header.").concat(branch, ".svg");
14
14
  var whitePath = "".concat(baseGCSDir, "logo-header-white.").concat(branch, ".svg");
15
- return [defaultPath, whitePath];
15
+ return type === 'white' ? whitePath : defaultPath;
16
16
  }
17
17
 
18
18
  case 'footer':
@@ -20,6 +20,16 @@ function selectLogoPath(logoType, branch) {
20
20
  return "".concat(baseGCSDir, "logo-footer.").concat(branch, ".svg");
21
21
  }
22
22
 
23
+ case 'symbol':
24
+ {
25
+ var path = {
26
+ "default": "".concat(baseGCSDir, "logo-symbol-default.").concat(branch, ".svg"),
27
+ black: "".concat(baseGCSDir, "logo-symbol-black.").concat(branch, ".svg"),
28
+ white: "".concat(baseGCSDir, "logo-symbol-white.").concat(branch, ".svg")
29
+ };
30
+ return path[type];
31
+ }
32
+
23
33
  default:
24
34
  {
25
35
  return '';
@@ -160,6 +160,9 @@ var MobileTab = function MobileTab(_ref2) {
160
160
  onClick: handleClick
161
161
  });
162
162
  });
163
+ (0, _react.useEffect)(function () {
164
+ setActiveIndex(activeTabIndex);
165
+ }, [activeTabIndex]);
163
166
  return /*#__PURE__*/_react["default"].createElement(MobileTabContainer, {
164
167
  ref: ref,
165
168
  showGradientMask: showGradientMask
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@twreporter/react-components",
3
- "version": "8.14.0-rc.2",
3
+ "version": "8.15.0-rc.0",
4
4
  "main": "lib/index.js",
5
5
  "repository": "https://github.com/twreporter/twreporter-npm-packages.git",
6
6
  "author": "twreporter <developer@twreporter.org>",
@@ -15,8 +15,8 @@
15
15
  "chromatic": "npx chromatic --exit-zero-on-changes"
16
16
  },
17
17
  "dependencies": {
18
- "@twreporter/core": "^1.7.0-rc.3",
19
- "@twreporter/redux": "^7.4.0-rc.3",
18
+ "@twreporter/core": "^1.8.0-rc.0",
19
+ "@twreporter/redux": "^7.4.1-rc.0",
20
20
  "fontfaceobserver-es": "^3.3.3",
21
21
  "hoist-non-react-statics": "^2.3.1",
22
22
  "lodash": "^4.0.0",
@@ -44,5 +44,5 @@
44
44
  "babel-loader": "^8.2.4",
45
45
  "chromatic": "^6.5.4"
46
46
  },
47
- "gitHead": "b21fabf303948f309fe4d1cce92fd0af3371ff91"
47
+ "gitHead": "18f6387366e10e692e08e5356f69409d3535c1b6"
48
48
  }