@twreporter/react-components 8.27.2-rc.1 → 8.28.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,40 @@
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.28.0-rc.0](https://github.com/twreporter/twreporter-npm-packages/compare/@twreporter/react-components@8.27.2-rc.2...@twreporter/react-components@8.28.0-rc.0) (2024-05-08)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * add link for button ([58ecbb8](https://github.com/twreporter/twreporter-npm-packages/commit/58ecbb8f1008c6ad8d71b2ef35d690ebd6370a70))
12
+ * remove unused hover ([fe9f420](https://github.com/twreporter/twreporter-npm-packages/commit/fe9f4204baa5d905e75dd52d4e67e2f88ee5a308))
13
+ * use js default value and fix comments ([313a7d9](https://github.com/twreporter/twreporter-npm-packages/commit/313a7d93a9767edd13e3a45002eb42ee8e872e60))
14
+
15
+
16
+ ### Features
17
+
18
+ * add footer links contants and components ([2a5d284](https://github.com/twreporter/twreporter-npm-packages/commit/2a5d284493488b7fff8d7ec940e0a7772f15c3d8))
19
+ * add footer storybooks ([b74d8e0](https://github.com/twreporter/twreporter-npm-packages/commit/b74d8e0524196ccabc1f528bc0dbe58a2cc918b7))
20
+ * logo component for footer ([2684955](https://github.com/twreporter/twreporter-npm-packages/commit/2684955bbf04e2c22338f3a51de2390383bf3f65))
21
+ * logo footer ([5887d57](https://github.com/twreporter/twreporter-npm-packages/commit/5887d577a2509214f3e00dd22d404c506e517ab6))
22
+ * new footer component ([fff4e74](https://github.com/twreporter/twreporter-npm-packages/commit/fff4e74c8e485eba0ccb8b96bb50014a446a7eaf))
23
+ * plurk icon ([9876c40](https://github.com/twreporter/twreporter-npm-packages/commit/9876c409e1c3e2e84ab8e100837f72d997d61d2f))
24
+
25
+
26
+
27
+
28
+
29
+ ## [8.27.2-rc.2](https://github.com/twreporter/twreporter-npm-packages/compare/@twreporter/react-components@8.27.2-rc.1...@twreporter/react-components@8.27.2-rc.2) (2024-05-07)
30
+
31
+
32
+ ### Bug Fixes
33
+
34
+ * prevent ios chrome email format detection ([fd19ce7](https://github.com/twreporter/twreporter-npm-packages/commit/fd19ce7816bf2121a52dc66d572e1b9f6a020c78))
35
+
36
+
37
+
38
+
39
+
6
40
  ## [8.27.2-rc.1](https://github.com/twreporter/twreporter-npm-packages/compare/@twreporter/react-components@8.27.2-rc.0...@twreporter/react-components@8.27.2-rc.1) (2024-05-07)
7
41
 
8
42
  **Note:** Version bump only for package @twreporter/react-components
@@ -0,0 +1,128 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getSocialMediaLinks = exports.getLinksGroups = void 0;
7
+
8
+ var _entityPath = _interopRequireDefault(require("@twreporter/core/lib/constants/entity-path"));
9
+
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
11
+
12
+ var gtmId = {
13
+ support: 'footer-support',
14
+ newsletter: 'footer-newsletter'
15
+ };
16
+
17
+ var getLinksGroups = function getLinksGroups(mainOrigin) {
18
+ return [[{
19
+ slug: 'about',
20
+ text: '關於我們',
21
+ to: "".concat(mainOrigin).concat(_entityPath["default"].aboutus),
22
+ target: '_blank'
23
+ }, {
24
+ slug: 'authors',
25
+ text: '作者群',
26
+ to: "".concat(mainOrigin, "/authors"),
27
+ target: '_blank'
28
+ }, {
29
+ slug: 'contact',
30
+ text: '聯絡我們',
31
+ to: "".concat(mainOrigin).concat(_entityPath["default"].article, "contact-footer"),
32
+ target: '_blank'
33
+ }, {
34
+ slug: 'about',
35
+ text: '加入我們',
36
+ to: "".concat(mainOrigin).concat(_entityPath["default"].article, "hiring-job-description"),
37
+ target: '_blank'
38
+ }, {
39
+ slug: 'license',
40
+ text: '常見問題',
41
+ to: "".concat(mainOrigin).concat(_entityPath["default"].article, "about-us-questions"),
42
+ target: '_blank'
43
+ }], [{
44
+ slug: 'donate',
45
+ text: '捐款徵信',
46
+ to: "".concat(mainOrigin).concat(_entityPath["default"].article, "credit-donate"),
47
+ target: '_blank'
48
+ }, {
49
+ slug: 'media-center',
50
+ text: '基金會消息',
51
+ to: "".concat(mainOrigin).concat(_entityPath["default"].categories, "foundation"),
52
+ target: '_blank'
53
+ }, {
54
+ slug: 'impact-and-annual-report',
55
+ text: '影響力報告',
56
+ to: "".concat(mainOrigin).concat(_entityPath["default"].article, "impact-and-annual-report"),
57
+ target: '_blank'
58
+ }, {
59
+ slug: 'publication-and-merchandise',
60
+ text: '出版品與周邊',
61
+ to: 'https://twreporter.backme.tw/shops/3619?locale=zh-TW',
62
+ target: '_blank'
63
+ }], [{
64
+ slug: 'subcribe-email',
65
+ text: '訂閱電子報',
66
+ to: 'http://eepurl.com/djVwF9',
67
+ target: '_blank',
68
+ id: gtmId.newsletter
69
+ }, {
70
+ slug: 'subcribe-podcast',
71
+ text: '訂閱 Podcast',
72
+ to: 'https://bit.ly/4cxM3Tm',
73
+ target: '_blank'
74
+ }, {
75
+ slug: 'subcribe-RSS',
76
+ text: '訂閱 RSS',
77
+ to: 'https://public.twreporter.org/rss/twreporter-rss.xml',
78
+ target: '_blank'
79
+ }, {
80
+ slug: 'install-web-app',
81
+ text: '安裝Web App',
82
+ to: 'https://www.twreporter.org/a/how-to-follow-the-reporter#方法3:安裝Web App',
83
+ target: '_blank'
84
+ }, {
85
+ slug: 'subcribe-telegram',
86
+ text: '訂閱Telegram',
87
+ to: 'https://t.me/tw_reporter_org',
88
+ target: '_blank'
89
+ }]];
90
+ };
91
+
92
+ exports.getLinksGroups = getLinksGroups;
93
+
94
+ var getSocialMediaLinks = function getSocialMediaLinks() {
95
+ return [{
96
+ slug: 'facebook',
97
+ icon: 'facebook',
98
+ to: 'https://www.facebook.com/twreporter/',
99
+ target: '_blank'
100
+ }, {
101
+ slug: 'instagram',
102
+ icon: 'instagram',
103
+ to: 'https://www.instagram.com/twreporter/',
104
+ target: '_blank'
105
+ }, {
106
+ slug: 'x',
107
+ icon: 'twitter',
108
+ to: 'https://twitter.com/tw_reporter_org',
109
+ target: '_blank'
110
+ }, {
111
+ slug: 'medium',
112
+ icon: 'medium',
113
+ to: 'https://medium.com/twreporter',
114
+ target: '_blank'
115
+ }, {
116
+ slug: 'youtube',
117
+ icon: 'youtube',
118
+ to: 'https://www.youtube.com/@TwreporterOrg',
119
+ target: '_blank'
120
+ }, {
121
+ slug: 'plurk',
122
+ icon: 'plurk',
123
+ to: 'https://www.plurk.com/twreporter',
124
+ target: '_blank'
125
+ }];
126
+ };
127
+
128
+ exports.getSocialMediaLinks = getSocialMediaLinks;
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.footer = exports["default"] = void 0;
7
+
8
+ var _index = _interopRequireDefault(require("./index"));
9
+
10
+ var _constants = require("../storybook/constants");
11
+
12
+ var _releaseBranch = _interopRequireDefault(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: 'Footer',
18
+ component: _index["default"],
19
+ argTypes: {
20
+ releaseBranch: _constants.BRANCH_STORYBOOK_ARG_TYPE
21
+ }
22
+ };
23
+ exports["default"] = _default;
24
+ var footer = {
25
+ args: {
26
+ releaseBranch: _releaseBranch["default"].master
27
+ }
28
+ };
29
+ exports.footer = footer;
@@ -1,139 +1,185 @@
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
-
5
3
  Object.defineProperty(exports, "__esModule", {
6
4
  value: true
7
5
  });
8
6
  exports["default"] = void 0;
9
7
 
10
- var _propTypes = _interopRequireDefault(require("prop-types"));
11
-
12
8
  var _react = _interopRequireDefault(require("react"));
13
9
 
14
10
  var _styledComponents = _interopRequireDefault(require("styled-components"));
15
11
 
16
- var _content = _interopRequireDefault(require("./content"));
17
-
18
- var _iconList = _interopRequireDefault(require("./icon-list"));
19
-
20
- var _styles = _interopRequireDefault(require("./constants/styles"));
21
-
22
- var _css = require("@twreporter/core/lib/utils/css");
23
-
24
12
  var _mediaQuery = _interopRequireDefault(require("@twreporter/core/lib/utils/media-query"));
25
13
 
26
- var _propTypes2 = _interopRequireDefault(require("@twreporter/core/lib/constants/prop-types"));
14
+ var _propTypes = _interopRequireDefault(require("@twreporter/core/lib/constants/prop-types"));
27
15
 
28
16
  var _releaseBranch = _interopRequireDefault(require("@twreporter/core/lib/constants/release-branch"));
29
17
 
30
- var _font = require("@twreporter/core/lib/constants/font");
31
-
32
18
  var _fundraising = _interopRequireDefault(require("@twreporter/core/lib/constants/fundraising"));
33
19
 
34
20
  var _color = require("@twreporter/core/lib/constants/color");
35
21
 
36
- var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10;
37
-
38
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
39
-
40
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
22
+ var _requestOrigins = _interopRequireDefault(require("@twreporter/core/lib/constants/request-origins"));
41
23
 
42
- 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); } }
24
+ var _button = require("../button");
43
25
 
44
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
26
+ var _divider = _interopRequireDefault(require("../divider"));
45
27
 
46
- 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); }
28
+ var _paragraph = require("../text/paragraph");
47
29
 
48
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
30
+ var _rwd = require("../rwd");
49
31
 
50
- 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); }; }
32
+ var _customizedLink = _interopRequireDefault(require("../customized-link"));
51
33
 
52
- 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); }
34
+ var _link = require("./link");
53
35
 
54
- function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
36
+ var _logo = _interopRequireDefault(require("./logo"));
55
37
 
56
- 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; } }
38
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10;
57
39
 
58
- function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
40
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
59
41
 
60
42
  function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
61
43
 
62
44
  var FooterContainer = /*#__PURE__*/_styledComponents["default"].div.withConfig({
63
45
  displayName: "footer__FooterContainer",
64
46
  componentId: "d1uef9-0"
65
- })(["border-top:solid 0.5px ", ";width:100%;background-color:", ";padding:0;", " *{box-sizing:border-box;}"], _color.colorGrayscale.gray300, function (props) {
66
- return props.bgColor;
67
- }, _mediaQuery["default"].tabletAndAbove(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n min-height: ", "px;\n "])), _styles["default"].footerHeight.desktop));
47
+ })(["width:100%;background-color:", ";"], _color.colorGrayscale.white);
68
48
 
69
- var FooterContent = /*#__PURE__*/_styledComponents["default"].div.withConfig({
70
- displayName: "footer__FooterContent",
49
+ var FooterSection = /*#__PURE__*/_styledComponents["default"].div.withConfig({
50
+ displayName: "footer__FooterSection",
71
51
  componentId: "d1uef9-1"
72
- })(["position:relative;", " ", " ", " ", " margin-left:auto;margin-right:auto;position:relative;width:100%;"], _mediaQuery["default"].mobileOnly(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n padding: ", ";\n "])), (0, _css.arrayToCssShorthand)(_styles["default"].footerContentPadding.mobile)), _mediaQuery["default"].tabletOnly(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n padding: ", ";\n max-width: \n "])), (0, _css.arrayToCssShorthand)(_styles["default"].footerContentPadding.tablet)), _mediaQuery["default"].desktopOnly(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n padding: ", ";\n max-width: ", "px; \n "])), (0, _css.arrayToCssShorthand)(_styles["default"].footerContentPadding.desktop), _styles["default"].footerContentMaxWidth.desktop), _mediaQuery["default"].hdOnly(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["\n padding: ", ";\n max-width: ", "px;\n "])), (0, _css.arrayToCssShorthand)(_styles["default"].footerContentPadding.hd), _styles["default"].footerContentMaxWidth.hd));
52
+ })(["display:flex;flex-direction:column;margin:auto;", " ", ""], _mediaQuery["default"].desktopAndAbove(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n max-width: 1200px;\n padding: 48px;\n "]))), _mediaQuery["default"].tabletAndBelow(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n flex-direction: column;\n justify-content: center;\n max-width: 400px;\n padding: 48px 16px;\n "]))));
73
53
 
74
- var CompanyInfo = /*#__PURE__*/_styledComponents["default"].div.withConfig({
75
- displayName: "footer__CompanyInfo",
54
+ var UpperContainer = /*#__PURE__*/_styledComponents["default"].div.withConfig({
55
+ displayName: "footer__UpperContainer",
76
56
  componentId: "d1uef9-2"
77
- })(["display:flex;align-items:center;", " ", " ", " ", ""], _mediaQuery["default"].tabletAndBelow(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["\n flex-direction: column;\n p:last-child {\n margin-top: 10px;\n }\n "]))), _mediaQuery["default"].mobileOnly(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["\n width: 100%;\n margin-top: 30px;\n "]))), _mediaQuery["default"].tabletOnly(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral(["\n align-items: baseline;\n margin-top: 50px;\n "]))), _mediaQuery["default"].desktopAndAbove(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral(["\n width: 100%;\n margin-top: 30px;\n justify-content: space-between;\n "]))));
57
+ })(["width:100%;display:flex;flex-direction:row;justify-content:space-between;", ""], _mediaQuery["default"].tabletAndBelow(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n flex-direction: column;\n justify-content: center;\n "]))));
78
58
 
79
- var InfoContainer = /*#__PURE__*/_styledComponents["default"].p.withConfig({
80
- displayName: "footer__InfoContainer",
59
+ var InformationContainer = /*#__PURE__*/_styledComponents["default"].div.withConfig({
60
+ displayName: "footer__InformationContainer",
81
61
  componentId: "d1uef9-3"
82
- })(["font-size:12px;font-weight:", ";letter-spacing:0.4px;color:", ";", ""], _font.fontWeight.normal, _color.colorGrayscale.gray500, _mediaQuery["default"].mobileOnly(_templateObject10 || (_templateObject10 = _taggedTemplateLiteral(["\n text-align: center;\n "]))));
62
+ })(["display:flex;flex-direction:column;justify-content:space-between;a{text-decoration:none;}", " ", " .button{width:280px;justify-content:center;}"], _mediaQuery["default"].desktopAndAbove(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n max-width: 320px;\n "]))), _mediaQuery["default"].tabletAndBelow(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["\n gap: 32px;\n width: 100%;\n margin-bottom: 48px;\n align-items: center;\n text-align: center;\n "]))));
63
+
64
+ var LogoAndDescription = /*#__PURE__*/_styledComponents["default"].div.withConfig({
65
+ displayName: "footer__LogoAndDescription",
66
+ componentId: "d1uef9-4"
67
+ })(["width:100%;display:flex;flex-direction:column;gap:24px;", ""], _mediaQuery["default"].tabletAndBelow(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["\n align-items: center;\n gap: 16px;\n "]))));
68
+
69
+ var LinksContainer = /*#__PURE__*/_styledComponents["default"].div.withConfig({
70
+ displayName: "footer__LinksContainer",
71
+ componentId: "d1uef9-5"
72
+ })(["display:flex;gap:24px;", ""], _mediaQuery["default"].tabletAndBelow(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["\n margin-bottom: 16px;\n gap: 16px;\n "]))));
83
73
 
84
- var Copyright = function Copyright() {
85
- var currentYear = new Date().getFullYear();
86
- return /*#__PURE__*/_react["default"].createElement(InfoContainer, null, "Copyright \xA9 ".concat(currentYear, " The Reporter."));
74
+ var Divider = /*#__PURE__*/(0, _styledComponents["default"])(_divider["default"]).withConfig({
75
+ displayName: "footer__Divider",
76
+ componentId: "d1uef9-6"
77
+ })(["width:100%;margin-top:24px;margin-bottom:24px;"]);
78
+
79
+ var BottomContainer = /*#__PURE__*/_styledComponents["default"].div.withConfig({
80
+ displayName: "footer__BottomContainer",
81
+ componentId: "d1uef9-7"
82
+ })(["display:flex;justify-content:space-between;", ""], _mediaQuery["default"].tabletAndBelow(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral(["\n flex-direction: column-reverse;\n gap: 24px;\n align-items: center;\n text-align: center;\n "]))));
83
+
84
+ var InfoContainer = /*#__PURE__*/_styledComponents["default"].div.withConfig({
85
+ displayName: "footer__InfoContainer",
86
+ componentId: "d1uef9-8"
87
+ })(["display:flex;", ""], _mediaQuery["default"].tabletAndBelow(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral(["\n flex-direction: column;\n align-items: center;\n "]))));
88
+
89
+ var DescWithLink = /*#__PURE__*/(0, _styledComponents["default"])(_paragraph.P3).withConfig({
90
+ displayName: "footer__DescWithLink",
91
+ componentId: "d1uef9-9"
92
+ })(["color:", ";"], _color.colorGrayscale.gray600);
93
+
94
+ var IconList = /*#__PURE__*/_styledComponents["default"].div.withConfig({
95
+ displayName: "footer__IconList",
96
+ componentId: "d1uef9-10"
97
+ })(["display:flex;gap:16px;"]);
98
+
99
+ var P2Gray600 = /*#__PURE__*/(0, _styledComponents["default"])(_paragraph.P2).withConfig({
100
+ displayName: "footer__P2Gray600",
101
+ componentId: "d1uef9-11"
102
+ })(["color:", ";"], _color.colorGrayscale.gray600);
103
+ var P3Gray600 = /*#__PURE__*/(0, _styledComponents["default"])(_paragraph.P3).withConfig({
104
+ displayName: "footer__P3Gray600",
105
+ componentId: "d1uef9-12"
106
+ })(["color:", ";"], _color.colorGrayscale.gray600);
107
+
108
+ var DesktopAndAboveWithFlex = /*#__PURE__*/_styledComponents["default"].div.withConfig({
109
+ displayName: "footer__DesktopAndAboveWithFlex",
110
+ componentId: "d1uef9-13"
111
+ })(["display:flex;", ""], _mediaQuery["default"].tabletAndBelow(_templateObject10 || (_templateObject10 = _taggedTemplateLiteral(["\n display: none;\n "]))));
112
+
113
+ var InfoLink = function InfoLink(_ref) {
114
+ var _ref$releaseBranch = _ref.releaseBranch,
115
+ releaseBranch = _ref$releaseBranch === void 0 ? _releaseBranch["default"].release : _ref$releaseBranch;
116
+ var mainOrigin = _requestOrigins["default"].forClientSideRendering[releaseBranch].main;
117
+ return /*#__PURE__*/_react["default"].createElement(DescWithLink, null, /*#__PURE__*/_react["default"].createElement(_button.InheritLinkButton, {
118
+ text: "\u8A31\u53EF\u5354\u8B70",
119
+ link: {
120
+ isExternal: true,
121
+ to: "".concat(mainOrigin, "/a/license-footer"),
122
+ target: '_blank'
123
+ },
124
+ type: _button.InheritLinkButton.Type.UNDERLINE
125
+ }), "\uFF5C", /*#__PURE__*/_react["default"].createElement(_button.InheritLinkButton, {
126
+ text: "\u96B1\u79C1\u653F\u7B56",
127
+ link: {
128
+ isExternal: true,
129
+ to: "".concat(mainOrigin, "/a/privacy-footer"),
130
+ target: '_blank'
131
+ },
132
+ type: _button.InheritLinkButton.Type.UNDERLINE
133
+ }), "\uFF5C", /*#__PURE__*/_react["default"].createElement(_button.InheritLinkButton, {
134
+ text: "\u54C1\u724C\u898F\u7BC4",
135
+ link: {
136
+ isExternal: true,
137
+ to: 'https://twreporter.gitbook.io/the-reporter-brand-guidelines',
138
+ target: '_blank'
139
+ },
140
+ type: _button.InheritLinkButton.Type.UNDERLINE
141
+ }));
87
142
  };
88
143
 
89
- var Fundraising = function Fundraising() {
90
- if (!_fundraising["default"]) return null;
91
- return /*#__PURE__*/_react["default"].createElement(InfoContainer, null, _fundraising["default"]);
144
+ InfoLink.propTypes = {
145
+ releaseBranch: _propTypes["default"].releaseBranch
92
146
  };
93
147
 
94
- var Footer = /*#__PURE__*/function (_React$PureComponent) {
95
- _inherits(Footer, _React$PureComponent);
96
-
97
- var _super = _createSuper(Footer);
98
-
99
- function Footer() {
100
- _classCallCheck(this, Footer);
101
-
102
- return _super.apply(this, arguments);
103
- }
104
-
105
- _createClass(Footer, [{
106
- key: "render",
107
- value: function render() {
108
- var _this$props = this.props,
109
- bgColor = _this$props.bgColor,
110
- releaseBranch = _this$props.releaseBranch,
111
- pathname = _this$props.pathname,
112
- host = _this$props.host;
113
- return /*#__PURE__*/_react["default"].createElement(FooterContainer, {
114
- bgColor: bgColor
115
- }, /*#__PURE__*/_react["default"].createElement(FooterContent, null, /*#__PURE__*/_react["default"].createElement(_content["default"], {
116
- pathname: pathname,
117
- host: host,
118
- releaseBranch: releaseBranch
119
- }), /*#__PURE__*/_react["default"].createElement(_iconList["default"], null), /*#__PURE__*/_react["default"].createElement(CompanyInfo, null, /*#__PURE__*/_react["default"].createElement(Fundraising, null), /*#__PURE__*/_react["default"].createElement(Copyright, null))));
120
- }
121
- }]);
122
-
123
- return Footer;
124
- }(_react["default"].PureComponent);
148
+ var Footer = function Footer(_ref2) {
149
+ var _ref2$releaseBranch = _ref2.releaseBranch,
150
+ releaseBranch = _ref2$releaseBranch === void 0 ? _releaseBranch["default"].release : _ref2$releaseBranch;
151
+ return /*#__PURE__*/_react["default"].createElement(FooterContainer, null, /*#__PURE__*/_react["default"].createElement(FooterSection, null, /*#__PURE__*/_react["default"].createElement(UpperContainer, null, /*#__PURE__*/_react["default"].createElement(InformationContainer, null, /*#__PURE__*/_react["default"].createElement(LogoAndDescription, null, /*#__PURE__*/_react["default"].createElement(_logo["default"], {
152
+ releaseBranch: releaseBranch
153
+ }), /*#__PURE__*/_react["default"].createElement(P2Gray600, {
154
+ text: "\u53F0\u7063\u7B2C\u4E00\u500B\u7531\u516C\u76CA\u57FA\u91D1\u6703\u6210\u7ACB\u7684\u7DB2\u8DEF\u5A92\u9AD4\uFF0C\u81F4\u529B\u65BC\u516C\u5171\u9818\u57DF\u8ABF\u67E5\u5831\u5C0E\uFF0C\u6253\u9020\u591A\u5143\u9032\u6B65\u7684\u5A92\u9AD4\u74B0\u5883\u3002"
155
+ })), /*#__PURE__*/_react["default"].createElement(_customizedLink["default"], {
156
+ to: _requestOrigins["default"].forClientSideRendering[releaseBranch].accounts,
157
+ target: "_blank"
158
+ }, /*#__PURE__*/_react["default"].createElement(_button.PillButton, {
159
+ className: "button",
160
+ type: _button.PillButton.Type.SECONDARY,
161
+ text: '贊助我們'
162
+ }))), /*#__PURE__*/_react["default"].createElement(LinksContainer, null, /*#__PURE__*/_react["default"].createElement(_link.FooterLinkButtonGroups, {
163
+ releaseBranch: releaseBranch
164
+ }))), /*#__PURE__*/_react["default"].createElement(Divider, null), /*#__PURE__*/_react["default"].createElement(BottomContainer, null, /*#__PURE__*/_react["default"].createElement(InfoContainer, null, /*#__PURE__*/_react["default"].createElement(P3Gray600, {
165
+ text: _fundraising["default"]
166
+ }), /*#__PURE__*/_react["default"].createElement(DesktopAndAboveWithFlex, null, /*#__PURE__*/_react["default"].createElement(P3Gray600, {
167
+ text: "\uFF5C"
168
+ }), /*#__PURE__*/_react["default"].createElement(InfoLink, {
169
+ releaseBranch: releaseBranch
170
+ }), /*#__PURE__*/_react["default"].createElement(P3Gray600, {
171
+ text: "\uFF5C"
172
+ })), /*#__PURE__*/_react["default"].createElement(_rwd.TabletAndBelow, null, /*#__PURE__*/_react["default"].createElement(InfoLink, {
173
+ releaseBranch: releaseBranch
174
+ })), /*#__PURE__*/_react["default"].createElement(P3Gray600, {
175
+ text: "Copyright \xA9 ".concat(new Date().getFullYear(), " The Reporter.")
176
+ })), /*#__PURE__*/_react["default"].createElement(IconList, null, /*#__PURE__*/_react["default"].createElement(_link.FooterSocialMediaIcons, {
177
+ releaseBranch: releaseBranch
178
+ })))));
179
+ };
125
180
 
126
181
  Footer.propTypes = {
127
- bgColor: _propTypes["default"].string,
128
- releaseBranch: _propTypes2["default"].releaseBranch,
129
- host: _propTypes["default"].string,
130
- pathname: _propTypes["default"].string
131
- };
132
- Footer.defaultProps = {
133
- bgColor: _color.colorGrayscale.white,
134
- releaseBranch: _releaseBranch["default"].release,
135
- host: '',
136
- pathname: ''
182
+ releaseBranch: _propTypes["default"].releaseBranch
137
183
  };
138
184
  var _default = Footer;
139
185
  exports["default"] = _default;
@@ -0,0 +1,151 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.FooterSocialMediaIcons = exports.FooterLinkButtonGroups = void 0;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
11
+
12
+ var _propTypes = _interopRequireDefault(require("prop-types"));
13
+
14
+ var _propTypes2 = _interopRequireDefault(require("@twreporter/core/lib/constants/prop-types"));
15
+
16
+ var _mediaQuery = _interopRequireDefault(require("@twreporter/core/lib/utils/media-query"));
17
+
18
+ var _color = require("@twreporter/core/lib/constants/color");
19
+
20
+ var _requestOrigins = _interopRequireDefault(require("@twreporter/core/lib/constants/request-origins"));
21
+
22
+ var _releaseBranch = _interopRequireDefault(require("@twreporter/core/lib/constants/release-branch"));
23
+
24
+ var _icon = require("../icon");
25
+
26
+ var _button = require("../button");
27
+
28
+ var _paragraph = require("../text/paragraph");
29
+
30
+ var _customizedLink = _interopRequireDefault(require("../customized-link"));
31
+
32
+ var _links = require("./constants/links");
33
+
34
+ var _map = _interopRequireDefault(require("lodash/map"));
35
+
36
+ var _templateObject;
37
+
38
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
39
+
40
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }
41
+
42
+ function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
43
+
44
+ var _ = {
45
+ map: _map["default"]
46
+ };
47
+
48
+ var LinkColumn = /*#__PURE__*/_styledComponents["default"].div.withConfig({
49
+ displayName: "link__LinkColumn",
50
+ componentId: "sc-7lr0di-0"
51
+ })(["display:flex;flex-direction:column;gap:16px;", ""], _mediaQuery["default"].tabletAndBelow(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n flex-grow: 1;\n flex-basis: 33%;\n word-wrap: break-word;\n max-width: 33%;\n gap: 8px;\n "]))));
52
+
53
+ var LinkContainer = /*#__PURE__*/(0, _styledComponents["default"])(_customizedLink["default"]).withConfig({
54
+ displayName: "link__LinkContainer",
55
+ componentId: "sc-7lr0di-1"
56
+ })(["text-decoration:none;"]);
57
+ var LinkItem = /*#__PURE__*/(0, _styledComponents["default"])(_paragraph.P2).withConfig({
58
+ displayName: "link__LinkItem",
59
+ componentId: "sc-7lr0di-2"
60
+ })(["color:", ";&:hover{color:", ";}"], _color.colorGrayscale.gray600, _color.colorGrayscale.gray800);
61
+
62
+ var FooterLinkButton = function FooterLinkButton(_ref) {
63
+ var slug = _ref.slug,
64
+ text = _ref.text,
65
+ to = _ref.to,
66
+ target = _ref.target,
67
+ id = _ref.id;
68
+ return /*#__PURE__*/_react["default"].createElement(LinkContainer, {
69
+ slug: slug,
70
+ to: to,
71
+ target: target,
72
+ id: id
73
+ }, /*#__PURE__*/_react["default"].createElement(LinkItem, {
74
+ text: text
75
+ }));
76
+ };
77
+
78
+ FooterLinkButton.propTypes = {
79
+ slug: _propTypes["default"].string,
80
+ text: _propTypes["default"].string,
81
+ to: _propTypes["default"].string,
82
+ target: _propTypes["default"].oneOf(['_blank', '_self']),
83
+ id: _propTypes["default"].string
84
+ };
85
+
86
+ var FooterSocialMediaIcon = function FooterSocialMediaIcon(_ref2) {
87
+ var releaseBranch = _ref2.releaseBranch,
88
+ slug = _ref2.slug,
89
+ icon = _ref2.icon,
90
+ to = _ref2.to,
91
+ target = _ref2.target;
92
+
93
+ var Icon = /*#__PURE__*/_react["default"].createElement(_icon.SocialMedia, {
94
+ mediaType: icon,
95
+ releaseBranch: releaseBranch
96
+ });
97
+
98
+ return /*#__PURE__*/_react["default"].createElement(LinkContainer, {
99
+ slug: slug,
100
+ to: to,
101
+ target: target
102
+ }, /*#__PURE__*/_react["default"].createElement(_button.IconButton, {
103
+ iconComponent: Icon
104
+ }));
105
+ };
106
+
107
+ FooterSocialMediaIcon.propTypes = {
108
+ releaseBranch: _propTypes2["default"].releaseBranch,
109
+ slug: _propTypes["default"].string,
110
+ icon: _propTypes["default"].string,
111
+ to: _propTypes["default"].string,
112
+ target: _propTypes["default"].oneOf(['_blank', '_self'])
113
+ };
114
+
115
+ var FooterLinkButtonGroups = function FooterLinkButtonGroups(_ref3) {
116
+ var _ref3$releaseBranch = _ref3.releaseBranch,
117
+ releaseBranch = _ref3$releaseBranch === void 0 ? _releaseBranch["default"].release : _ref3$releaseBranch;
118
+ var mainOrigin = _requestOrigins["default"].forClientSideRendering[releaseBranch].main;
119
+ var linksGroups = (0, _links.getLinksGroups)(mainOrigin);
120
+ return _.map(linksGroups, function (links, indexofGroup) {
121
+ return /*#__PURE__*/_react["default"].createElement(LinkColumn, {
122
+ key: indexofGroup
123
+ }, _.map(links, function (link, indexofLink) {
124
+ return /*#__PURE__*/_react["default"].createElement(FooterLinkButton, _extends({
125
+ key: indexofLink
126
+ }, link));
127
+ }));
128
+ });
129
+ };
130
+
131
+ exports.FooterLinkButtonGroups = FooterLinkButtonGroups;
132
+ FooterLinkButtonGroups.propTypes = {
133
+ releaseBranch: _propTypes2["default"].releaseBranch
134
+ };
135
+
136
+ var FooterSocialMediaIcons = function FooterSocialMediaIcons(_ref4) {
137
+ var _ref4$releaseBranch = _ref4.releaseBranch,
138
+ releaseBranch = _ref4$releaseBranch === void 0 ? _releaseBranch["default"].release : _ref4$releaseBranch;
139
+ var icons = (0, _links.getSocialMediaLinks)();
140
+ return _.map(icons, function (icon, index) {
141
+ return /*#__PURE__*/_react["default"].createElement(FooterSocialMediaIcon, _extends({
142
+ key: index,
143
+ releaseBranch: releaseBranch
144
+ }, icon));
145
+ });
146
+ };
147
+
148
+ exports.FooterSocialMediaIcons = FooterSocialMediaIcons;
149
+ FooterSocialMediaIcons.propTypes = {
150
+ releaseBranch: _propTypes2["default"].releaseBranch
151
+ };