@times-components/save-and-share-bar 0.12.7 → 0.13.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 +11 -0
- package/babel.config.js +13 -2
- package/dist/bar-item.js +57 -1
- package/dist/constants/index.js +11 -1
- package/dist/email-share.js +114 -1
- package/dist/get-tokenised-article-url-api.js +22 -1
- package/dist/save-and-share-bar.js +154 -1
- package/dist/styles/index.js +72 -1
- package/dist/tracking/with-track-events.js +74 -1
- package/package.json +19 -20
- package/rnw.js +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,17 @@
|
|
|
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
|
+
# [0.13.0](https://github.com/newsuk/times-components/compare/@times-components/save-and-share-bar@0.12.7...@times-components/save-and-share-bar@0.13.0) (2022-08-18)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Features
|
|
10
|
+
|
|
11
|
+
* **TDP-1712:** remove react-native foreverrrrr ([#3064](https://github.com/newsuk/times-components/issues/3064)) ([2a20cb5](https://github.com/newsuk/times-components/commit/2a20cb5abc10a4e7ca2d62487967f8fcf4eccb62)), closes [#3037](https://github.com/newsuk/times-components/issues/3037) [#3045](https://github.com/newsuk/times-components/issues/3045) [#3050](https://github.com/newsuk/times-components/issues/3050) [#3056](https://github.com/newsuk/times-components/issues/3056) [#3057](https://github.com/newsuk/times-components/issues/3057) [#3066](https://github.com/newsuk/times-components/issues/3066) [#3065](https://github.com/newsuk/times-components/issues/3065) [#3037](https://github.com/newsuk/times-components/issues/3037) [#3045](https://github.com/newsuk/times-components/issues/3045) [#3045](https://github.com/newsuk/times-components/issues/3045) [#3056](https://github.com/newsuk/times-components/issues/3056) [#3066](https://github.com/newsuk/times-components/issues/3066) [#3069](https://github.com/newsuk/times-components/issues/3069) [#3068](https://github.com/newsuk/times-components/issues/3068) [#3070](https://github.com/newsuk/times-components/issues/3070) [#3072](https://github.com/newsuk/times-components/issues/3072) [#3073](https://github.com/newsuk/times-components/issues/3073) [#3071](https://github.com/newsuk/times-components/issues/3071) [#3074](https://github.com/newsuk/times-components/issues/3074) [#3076](https://github.com/newsuk/times-components/issues/3076) [#3079](https://github.com/newsuk/times-components/issues/3079) [#3078](https://github.com/newsuk/times-components/issues/3078) [#3083](https://github.com/newsuk/times-components/issues/3083) [#3087](https://github.com/newsuk/times-components/issues/3087) [#3091](https://github.com/newsuk/times-components/issues/3091) [#3096](https://github.com/newsuk/times-components/issues/3096) [#3102](https://github.com/newsuk/times-components/issues/3102) [#3105](https://github.com/newsuk/times-components/issues/3105) [#3108](https://github.com/newsuk/times-components/issues/3108) [#3111](https://github.com/newsuk/times-components/issues/3111) [#3112](https://github.com/newsuk/times-components/issues/3112) [#3113](https://github.com/newsuk/times-components/issues/3113) [#3114](https://github.com/newsuk/times-components/issues/3114) [#3120](https://github.com/newsuk/times-components/issues/3120) [#3119](https://github.com/newsuk/times-components/issues/3119) [#3112](https://github.com/newsuk/times-components/issues/3112) [#3126](https://github.com/newsuk/times-components/issues/3126) [#3112](https://github.com/newsuk/times-components/issues/3112) [#3126](https://github.com/newsuk/times-components/issues/3126) [#3127](https://github.com/newsuk/times-components/issues/3127) [#3116](https://github.com/newsuk/times-components/issues/3116) [#3128](https://github.com/newsuk/times-components/issues/3128) [#3132](https://github.com/newsuk/times-components/issues/3132) [#3133](https://github.com/newsuk/times-components/issues/3133)
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
6
17
|
## [0.12.7](https://github.com/newsuk/times-components/compare/@times-components/save-and-share-bar@0.12.6...@times-components/save-and-share-bar@0.12.7) (2022-08-08)
|
|
7
18
|
|
|
8
19
|
**Note:** Version bump only for package @times-components/save-and-share-bar
|
package/babel.config.js
CHANGED
|
@@ -3,8 +3,19 @@ module.exports = api => {
|
|
|
3
3
|
return {
|
|
4
4
|
plugins: [
|
|
5
5
|
"babel-plugin-styled-components",
|
|
6
|
-
"@babel/plugin-
|
|
6
|
+
"@babel/plugin-proposal-export-default-from"
|
|
7
7
|
],
|
|
8
|
-
presets: [
|
|
8
|
+
presets: [
|
|
9
|
+
[
|
|
10
|
+
"@babel/preset-env",
|
|
11
|
+
{
|
|
12
|
+
targets: {
|
|
13
|
+
esmodules: true
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
],
|
|
17
|
+
"@babel/preset-react",
|
|
18
|
+
"@babel/preset-typescript"
|
|
19
|
+
]
|
|
9
20
|
};
|
|
10
21
|
};
|
package/dist/bar-item.js
CHANGED
|
@@ -1 +1,57 @@
|
|
|
1
|
-
|
|
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 _utils = require("@times-components/utils");
|
|
11
|
+
|
|
12
|
+
var _link = _interopRequireDefault(require("@times-components/link"));
|
|
13
|
+
|
|
14
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
15
|
+
|
|
16
|
+
var _styles = _interopRequireDefault(require("./styles"));
|
|
17
|
+
|
|
18
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
19
|
+
|
|
20
|
+
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); }
|
|
21
|
+
|
|
22
|
+
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; }
|
|
23
|
+
|
|
24
|
+
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; }
|
|
25
|
+
|
|
26
|
+
/* eslint-disable jsx-a11y/anchor-is-valid, react/require-default-props */
|
|
27
|
+
const BarItem = _ref => {
|
|
28
|
+
let children = _ref.children,
|
|
29
|
+
_ref$colour = _ref.colour,
|
|
30
|
+
colour = _ref$colour === void 0 ? _styles.default.svgIcon.fillColour : _ref$colour,
|
|
31
|
+
dataTestId = _ref.dataTestId,
|
|
32
|
+
_ref$hoverColour = _ref.hoverColour,
|
|
33
|
+
hoverColour = _ref$hoverColour === void 0 ? _styles.default.svgIcon.hoverFillColour : _ref$hoverColour,
|
|
34
|
+
_ref$onPress = _ref.onPress,
|
|
35
|
+
onPress = _ref$onPress === void 0 ? () => {} : _ref$onPress,
|
|
36
|
+
props = _objectWithoutProperties(_ref, ["children", "colour", "dataTestId", "hoverColour", "onPress"]);
|
|
37
|
+
|
|
38
|
+
return /*#__PURE__*/_react.default.createElement(_utils.TcView, {
|
|
39
|
+
"data-testid": dataTestId
|
|
40
|
+
}, /*#__PURE__*/_react.default.createElement(_link.default, _extends({
|
|
41
|
+
onPress: onPress,
|
|
42
|
+
responsiveLinkStyles: _styles.default.link
|
|
43
|
+
}, props), /*#__PURE__*/_react.default.createElement(_utils.HoverIcon, {
|
|
44
|
+
colour: colour,
|
|
45
|
+
hoverColour: hoverColour
|
|
46
|
+
}, children)));
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
BarItem.propTypes = {
|
|
50
|
+
children: _propTypes.default.node.isRequired,
|
|
51
|
+
colour: _propTypes.default.string,
|
|
52
|
+
dataTestId: _propTypes.default.string,
|
|
53
|
+
hoverColour: _propTypes.default.string,
|
|
54
|
+
onPress: _propTypes.default.func
|
|
55
|
+
};
|
|
56
|
+
var _default = BarItem;
|
|
57
|
+
exports.default = _default;
|
package/dist/constants/index.js
CHANGED
|
@@ -1 +1,11 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _default = {
|
|
8
|
+
facebook: "https://www.facebook.com/sharer/sharer.php",
|
|
9
|
+
twitter: "https://twitter.com/intent/tweet"
|
|
10
|
+
};
|
|
11
|
+
exports.default = _default;
|
package/dist/email-share.js
CHANGED
|
@@ -1 +1,114 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
+
|
|
10
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
11
|
+
|
|
12
|
+
var _icons = require("@times-components/icons");
|
|
13
|
+
|
|
14
|
+
var _styles = _interopRequireDefault(require("./styles"));
|
|
15
|
+
|
|
16
|
+
var _barItem = _interopRequireDefault(require("./bar-item"));
|
|
17
|
+
|
|
18
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
19
|
+
|
|
20
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
21
|
+
|
|
22
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
23
|
+
|
|
24
|
+
/* eslint-env browser */
|
|
25
|
+
class EmailShare extends _react.Component {
|
|
26
|
+
constructor(props) {
|
|
27
|
+
super(props);
|
|
28
|
+
this.state = {
|
|
29
|
+
isLoading: false
|
|
30
|
+
};
|
|
31
|
+
this.onShare = this.onShare.bind(this);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
onShare(e) {
|
|
35
|
+
const _this$props = this.props,
|
|
36
|
+
articleId = _this$props.articleId,
|
|
37
|
+
getTokenisedShareUrl = _this$props.getTokenisedShareUrl,
|
|
38
|
+
shouldTokenise = _this$props.shouldTokenise,
|
|
39
|
+
articleUrl = _this$props.articleUrl,
|
|
40
|
+
onShareEmail = _this$props.onShareEmail,
|
|
41
|
+
articleHeadline = _this$props.articleHeadline;
|
|
42
|
+
e.preventDefault();
|
|
43
|
+
onShareEmail({
|
|
44
|
+
articleId,
|
|
45
|
+
articleUrl,
|
|
46
|
+
articleHeadline
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
if (shouldTokenise) {
|
|
50
|
+
this.setState({
|
|
51
|
+
isLoading: true
|
|
52
|
+
});
|
|
53
|
+
getTokenisedShareUrl(articleId).then(res => {
|
|
54
|
+
const data = res.data;
|
|
55
|
+
|
|
56
|
+
if (data && data.article) {
|
|
57
|
+
this.setState({
|
|
58
|
+
isLoading: false
|
|
59
|
+
});
|
|
60
|
+
this.openMailClient(data.article.tokenisedUrl);
|
|
61
|
+
}
|
|
62
|
+
}).catch(error => {
|
|
63
|
+
this.setState({
|
|
64
|
+
isLoading: false
|
|
65
|
+
});
|
|
66
|
+
console.error("Error in connecting to api", error);
|
|
67
|
+
});
|
|
68
|
+
} else {
|
|
69
|
+
const matches = window.location.search.match(/[?&]shareToken=([^&]+)/);
|
|
70
|
+
this.openMailClient(matches ? "".concat(articleUrl, "?shareToken=").concat(matches[1]) : articleUrl);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
openMailClient(url) {
|
|
75
|
+
const _this$props2 = this.props,
|
|
76
|
+
articleHeadline = _this$props2.articleHeadline,
|
|
77
|
+
publicationName = _this$props2.publicationName;
|
|
78
|
+
const publication = publicationName !== "TIMES" ? "The Sunday Times" : "The Times";
|
|
79
|
+
const mailtoEmailUrl = "mailto:?subject=".concat(articleHeadline, " from ").concat(publication, "&body=I thought you would be interested in this story from ").concat(publication, "%0A%0A").concat(articleHeadline, "%0A%0A").concat(url);
|
|
80
|
+
window.location.assign(mailtoEmailUrl);
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
render() {
|
|
84
|
+
const isLoading = this.state.isLoading;
|
|
85
|
+
return /*#__PURE__*/_react.default.createElement(_barItem.default, {
|
|
86
|
+
onPress: this.onShare,
|
|
87
|
+
dataTestId: "email-share",
|
|
88
|
+
url: ""
|
|
89
|
+
}, isLoading ? /*#__PURE__*/_react.default.createElement(_icons.IconActivityIndicator, {
|
|
90
|
+
size: "small",
|
|
91
|
+
style: _styles.default.activityLoader
|
|
92
|
+
}) : /*#__PURE__*/_react.default.createElement(_icons.IconEmail, {
|
|
93
|
+
fillColour: "currentColor",
|
|
94
|
+
height: _styles.default.svgIcon.height,
|
|
95
|
+
title: "Share by email"
|
|
96
|
+
}));
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
EmailShare.propTypes = {
|
|
102
|
+
getTokenisedShareUrl: _propTypes.default.func.isRequired,
|
|
103
|
+
onShareEmail: _propTypes.default.func.isRequired,
|
|
104
|
+
articleUrl: _propTypes.default.string.isRequired,
|
|
105
|
+
articleHeadline: _propTypes.default.string.isRequired,
|
|
106
|
+
articleId: _propTypes.default.string.isRequired,
|
|
107
|
+
shouldTokenise: _propTypes.default.bool.isRequired,
|
|
108
|
+
publicationName: _propTypes.default.string
|
|
109
|
+
};
|
|
110
|
+
EmailShare.defaultProps = {
|
|
111
|
+
publicationName: "TIMES"
|
|
112
|
+
};
|
|
113
|
+
var _default = EmailShare;
|
|
114
|
+
exports.default = _default;
|
|
@@ -1 +1,22 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
var _providerQueries = require("@times-components/provider-queries");
|
|
9
|
+
|
|
10
|
+
var _utils = require("@times-components/utils");
|
|
11
|
+
|
|
12
|
+
const client = (0, _utils.makeClient)();
|
|
13
|
+
|
|
14
|
+
const getTokenisedArticleUrlApi = id => client.query({
|
|
15
|
+
query: _providerQueries.getTokenisedArticleUrl,
|
|
16
|
+
variables: {
|
|
17
|
+
id
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
var _default = getTokenisedArticleUrlApi;
|
|
22
|
+
exports.default = _default;
|
|
@@ -1 +1,154 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
+
|
|
10
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
11
|
+
|
|
12
|
+
var _utils = require("@times-components/utils");
|
|
13
|
+
|
|
14
|
+
var _icons = require("@times-components/icons");
|
|
15
|
+
|
|
16
|
+
var _saveStarWeb = _interopRequireDefault(require("@times-components/save-star-web"));
|
|
17
|
+
|
|
18
|
+
var _userState = _interopRequireDefault(require("@times-components/user-state"));
|
|
19
|
+
|
|
20
|
+
var _context = require("@times-components/context");
|
|
21
|
+
|
|
22
|
+
var _getTokenisedArticleUrlApi = _interopRequireDefault(require("./get-tokenised-article-url-api"));
|
|
23
|
+
|
|
24
|
+
var _withTrackEvents = _interopRequireDefault(require("./tracking/with-track-events"));
|
|
25
|
+
|
|
26
|
+
var _constants = _interopRequireDefault(require("./constants"));
|
|
27
|
+
|
|
28
|
+
var _styles = _interopRequireDefault(require("./styles"));
|
|
29
|
+
|
|
30
|
+
var _barItem = _interopRequireDefault(require("./bar-item"));
|
|
31
|
+
|
|
32
|
+
var _emailShare = _interopRequireDefault(require("./email-share"));
|
|
33
|
+
|
|
34
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
35
|
+
|
|
36
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
37
|
+
|
|
38
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
39
|
+
|
|
40
|
+
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); }
|
|
41
|
+
|
|
42
|
+
/* eslint-disable jsx-a11y/anchor-is-valid */
|
|
43
|
+
class SaveAndShareBar extends _react.Component {
|
|
44
|
+
constructor(props) {
|
|
45
|
+
super(props);
|
|
46
|
+
this.copyToClipboard = this.copyToClipboard.bind(this);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
copyToClipboard(e) {
|
|
50
|
+
const _this$props = this.props,
|
|
51
|
+
onCopyLink = _this$props.onCopyLink,
|
|
52
|
+
articleUrl = _this$props.articleUrl;
|
|
53
|
+
e.preventDefault();
|
|
54
|
+
navigator.clipboard.writeText(articleUrl);
|
|
55
|
+
onCopyLink();
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
render() {
|
|
59
|
+
const _this$props2 = this.props,
|
|
60
|
+
articleId = _this$props2.articleId,
|
|
61
|
+
articleUrl = _this$props2.articleUrl,
|
|
62
|
+
savingEnabled = _this$props2.savingEnabled,
|
|
63
|
+
sharingEnabled = _this$props2.sharingEnabled,
|
|
64
|
+
onShareOnFB = _this$props2.onShareOnFB,
|
|
65
|
+
onShareOnTwitter = _this$props2.onShareOnTwitter;
|
|
66
|
+
return /*#__PURE__*/_react.default.createElement(_utils.TcView, {
|
|
67
|
+
style: _styles.default.container,
|
|
68
|
+
"data-testid": "save-and-share-bar"
|
|
69
|
+
}, sharingEnabled && /*#__PURE__*/_react.default.createElement(_utils.TcView, {
|
|
70
|
+
style: _styles.default.rowItem
|
|
71
|
+
}, /*#__PURE__*/_react.default.createElement(_utils.TcText, {
|
|
72
|
+
style: (0, _utils.checkStylesForUnits)(_styles.default.label)
|
|
73
|
+
}, "Share"), /*#__PURE__*/_react.default.createElement(_context.SectionContext.Consumer, null, _ref => {
|
|
74
|
+
let publicationName = _ref.publicationName;
|
|
75
|
+
return /*#__PURE__*/_react.default.createElement(_userState.default, {
|
|
76
|
+
state: _userState.default.subscriber,
|
|
77
|
+
fallback: /*#__PURE__*/_react.default.createElement(_emailShare.default, _extends({}, this.props, {
|
|
78
|
+
shouldTokenise: false,
|
|
79
|
+
publicationName: publicationName
|
|
80
|
+
}))
|
|
81
|
+
}, /*#__PURE__*/_react.default.createElement(_emailShare.default, _extends({}, this.props, {
|
|
82
|
+
shouldTokenise: true,
|
|
83
|
+
publicationName: publicationName
|
|
84
|
+
})));
|
|
85
|
+
}), /*#__PURE__*/_react.default.createElement(_barItem.default, {
|
|
86
|
+
onPress: onShareOnTwitter,
|
|
87
|
+
target: "_blank",
|
|
88
|
+
dataTestId: "share-twitter",
|
|
89
|
+
url: "".concat(_constants.default.twitter, "?text=").concat(articleUrl)
|
|
90
|
+
}, /*#__PURE__*/_react.default.createElement(_icons.IconTwitter, {
|
|
91
|
+
fillColour: "currentColor",
|
|
92
|
+
height: _styles.default.svgIcon.height,
|
|
93
|
+
title: "Share on Twitter"
|
|
94
|
+
})), /*#__PURE__*/_react.default.createElement(_barItem.default, {
|
|
95
|
+
onPress: onShareOnFB,
|
|
96
|
+
target: "_blank",
|
|
97
|
+
dataTestId: "share-facebook",
|
|
98
|
+
url: "".concat(_constants.default.facebook, "?u=").concat(articleUrl)
|
|
99
|
+
}, /*#__PURE__*/_react.default.createElement(_icons.IconFacebook, {
|
|
100
|
+
fillColour: "currentColor",
|
|
101
|
+
height: _styles.default.svgIcon.fb.height,
|
|
102
|
+
title: "Share on Facebook"
|
|
103
|
+
})), /*#__PURE__*/_react.default.createElement(_barItem.default, {
|
|
104
|
+
color: _styles.default.svgIcon.save.strokeColour,
|
|
105
|
+
hoverColor: _styles.default.svgIcon.hoverFillColour,
|
|
106
|
+
onPress: this.copyToClipboard,
|
|
107
|
+
dataTestId: "copy-to-clickboard",
|
|
108
|
+
url: ""
|
|
109
|
+
}, /*#__PURE__*/_react.default.createElement(_icons.IconCopyLink, {
|
|
110
|
+
fillColour: "currentColor",
|
|
111
|
+
height: _styles.default.svgIcon.height,
|
|
112
|
+
title: "Copy link to clipboard"
|
|
113
|
+
}))), savingEnabled ? /*#__PURE__*/_react.default.createElement(_userState.default, {
|
|
114
|
+
state: _userState.default.loggedIn,
|
|
115
|
+
serverRender: false
|
|
116
|
+
}, /*#__PURE__*/_react.default.createElement(_utils.TcView, {
|
|
117
|
+
style: _styles.default.rowItemRight,
|
|
118
|
+
"data-testid": "save-star"
|
|
119
|
+
}, /*#__PURE__*/_react.default.createElement(_saveStarWeb.default, {
|
|
120
|
+
colour: _styles.default.svgIcon.save.strokeColour,
|
|
121
|
+
hoverColor: _styles.default.svgIcon.hoverFillColour,
|
|
122
|
+
articleId: articleId,
|
|
123
|
+
height: _styles.default.svgIcon.star.height
|
|
124
|
+
}))) : null);
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
}
|
|
128
|
+
/* eslint-disable react/no-unused-prop-types */
|
|
129
|
+
|
|
130
|
+
|
|
131
|
+
SaveAndShareBar.propTypes = {
|
|
132
|
+
articleId: _propTypes.default.string.isRequired,
|
|
133
|
+
articleUrl: _propTypes.default.string.isRequired,
|
|
134
|
+
articleHeadline: _propTypes.default.string.isRequired,
|
|
135
|
+
getTokenisedShareUrl: _propTypes.default.func,
|
|
136
|
+
onCopyLink: _propTypes.default.func.isRequired,
|
|
137
|
+
onShareOnFB: _propTypes.default.func,
|
|
138
|
+
onShareEmail: _propTypes.default.func,
|
|
139
|
+
onShareOnTwitter: _propTypes.default.func,
|
|
140
|
+
savingEnabled: _propTypes.default.bool.isRequired,
|
|
141
|
+
sharingEnabled: _propTypes.default.bool.isRequired
|
|
142
|
+
};
|
|
143
|
+
/* Serves as an indication when share links are clicked for tracking and analytics */
|
|
144
|
+
|
|
145
|
+
SaveAndShareBar.defaultProps = {
|
|
146
|
+
onShareOnFB: () => {},
|
|
147
|
+
onShareOnTwitter: () => {},
|
|
148
|
+
onShareEmail: () => {},
|
|
149
|
+
getTokenisedShareUrl: _getTokenisedArticleUrlApi.default
|
|
150
|
+
};
|
|
151
|
+
|
|
152
|
+
var _default = (0, _withTrackEvents.default)(SaveAndShareBar);
|
|
153
|
+
|
|
154
|
+
exports.default = _default;
|
package/dist/styles/index.js
CHANGED
|
@@ -1 +1,72 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
var _tsStyleguide = require("@times-components/ts-styleguide");
|
|
9
|
+
|
|
10
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
11
|
+
|
|
12
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
13
|
+
|
|
14
|
+
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; }
|
|
15
|
+
|
|
16
|
+
const ICON_SIZE = 40;
|
|
17
|
+
const styles = {
|
|
18
|
+
container: {
|
|
19
|
+
flex: 1,
|
|
20
|
+
flexDirection: "row",
|
|
21
|
+
justifyContent: "space-between",
|
|
22
|
+
paddingTop: (0, _tsStyleguide.spacing)(2),
|
|
23
|
+
paddingBottom: (0, _tsStyleguide.spacing)(2),
|
|
24
|
+
height: "100%",
|
|
25
|
+
alignItems: "center"
|
|
26
|
+
},
|
|
27
|
+
activityLoader: {
|
|
28
|
+
borderRadius: 9999,
|
|
29
|
+
height: 40,
|
|
30
|
+
overflow: "hidden",
|
|
31
|
+
width: 40
|
|
32
|
+
},
|
|
33
|
+
label: _objectSpread(_objectSpread({}, (0, _tsStyleguide.fontFactory)({
|
|
34
|
+
font: "supporting",
|
|
35
|
+
fontSize: "meta"
|
|
36
|
+
})), {}, {
|
|
37
|
+
color: _tsStyleguide.colours.functional.secondary,
|
|
38
|
+
marginRight: (0, _tsStyleguide.spacing)(2),
|
|
39
|
+
transform: "translateY(9%)"
|
|
40
|
+
}),
|
|
41
|
+
link: {
|
|
42
|
+
base: "\n margin-left: ".concat((0, _tsStyleguide.spacing)(1), ";\n cursor: pointer;\n border-radius: ").concat(ICON_SIZE, "px;\n\n &, > * {\n display: flex;\n align-items: center;\n justify-content: center;\n height: ").concat(ICON_SIZE, "px;\n width: ").concat(ICON_SIZE, "px;\n }\n\n &:hover {\n background-color: ").concat(_tsStyleguide.colours.functional.whiteGrey, ";\n }\n &:active {\n background-color: ").concat(_tsStyleguide.colours.functional.keyline, ";\n }\n ")
|
|
43
|
+
},
|
|
44
|
+
rowItem: {
|
|
45
|
+
alignItems: "center",
|
|
46
|
+
flexDirection: "row",
|
|
47
|
+
height: ICON_SIZE
|
|
48
|
+
},
|
|
49
|
+
rowItemRight: {
|
|
50
|
+
alignItems: "center",
|
|
51
|
+
flexDirection: "row",
|
|
52
|
+
height: ICON_SIZE,
|
|
53
|
+
marginLeft: "auto"
|
|
54
|
+
},
|
|
55
|
+
svgIcon: {
|
|
56
|
+
fb: {
|
|
57
|
+
height: 18
|
|
58
|
+
},
|
|
59
|
+
star: {
|
|
60
|
+
height: 18
|
|
61
|
+
},
|
|
62
|
+
fillColour: _tsStyleguide.colours.functional.secondary,
|
|
63
|
+
height: 16,
|
|
64
|
+
hoverFillColour: _tsStyleguide.colours.functional.brandColour,
|
|
65
|
+
save: {
|
|
66
|
+
fillColour: _tsStyleguide.colours.functional.white,
|
|
67
|
+
strokeColour: _tsStyleguide.colours.functional.secondary
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
var _default = styles;
|
|
72
|
+
exports.default = _default;
|
|
@@ -1 +1,74 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
var _tracking = require("@times-components/tracking");
|
|
9
|
+
|
|
10
|
+
var _default = Component => (0, _tracking.withTrackEvents)(Component, {
|
|
11
|
+
analyticsEvents: [{
|
|
12
|
+
actionName: "Pressed",
|
|
13
|
+
eventName: "onSaveToMyArticles",
|
|
14
|
+
getAttrs: _ref => {
|
|
15
|
+
let articleId = _ref.articleId,
|
|
16
|
+
articleHeadline = _ref.articleHeadline;
|
|
17
|
+
return {
|
|
18
|
+
articleId,
|
|
19
|
+
articleHeadline
|
|
20
|
+
};
|
|
21
|
+
},
|
|
22
|
+
trackingName: "ArticleSaveToMyArticles"
|
|
23
|
+
}, {
|
|
24
|
+
actionName: "Pressed",
|
|
25
|
+
eventName: "onShareEmail",
|
|
26
|
+
getAttrs: _ref2 => {
|
|
27
|
+
let articleId = _ref2.articleId,
|
|
28
|
+
articleHeadline = _ref2.articleHeadline;
|
|
29
|
+
return {
|
|
30
|
+
articleId,
|
|
31
|
+
articleHeadline
|
|
32
|
+
};
|
|
33
|
+
},
|
|
34
|
+
trackingName: "ArticleShareUrlByEmail"
|
|
35
|
+
}, {
|
|
36
|
+
actionName: "Pressed",
|
|
37
|
+
eventName: "onCopyLink",
|
|
38
|
+
getAttrs: _ref3 => {
|
|
39
|
+
let articleId = _ref3.articleId,
|
|
40
|
+
articleHeadline = _ref3.articleHeadline;
|
|
41
|
+
return {
|
|
42
|
+
articleId,
|
|
43
|
+
articleHeadline
|
|
44
|
+
};
|
|
45
|
+
},
|
|
46
|
+
trackingName: "ArticleCopyLink"
|
|
47
|
+
}, {
|
|
48
|
+
actionName: "Pressed",
|
|
49
|
+
eventName: "onShareOnFB",
|
|
50
|
+
getAttrs: _ref4 => {
|
|
51
|
+
let articleId = _ref4.articleId,
|
|
52
|
+
articleHeadline = _ref4.articleHeadline;
|
|
53
|
+
return {
|
|
54
|
+
articleId,
|
|
55
|
+
articleHeadline
|
|
56
|
+
};
|
|
57
|
+
},
|
|
58
|
+
trackingName: "ArticleShareOnFacebook"
|
|
59
|
+
}, {
|
|
60
|
+
actionName: "Pressed",
|
|
61
|
+
eventName: "onShareOnTwitter",
|
|
62
|
+
getAttrs: _ref5 => {
|
|
63
|
+
let articleId = _ref5.articleId,
|
|
64
|
+
articleHeadline = _ref5.articleHeadline;
|
|
65
|
+
return {
|
|
66
|
+
articleId,
|
|
67
|
+
articleHeadline
|
|
68
|
+
};
|
|
69
|
+
},
|
|
70
|
+
trackingName: "ArticleShareOnTwitter"
|
|
71
|
+
}]
|
|
72
|
+
});
|
|
73
|
+
|
|
74
|
+
exports.default = _default;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@times-components/save-and-share-bar",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.13.0",
|
|
4
4
|
"description": "Save and Share bar",
|
|
5
5
|
"main": "dist/save-and-share-bar",
|
|
6
6
|
"dev": "src/save-and-share-bar",
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"fmt": "eslint . --fix && prettier --write '**/*.*'",
|
|
10
10
|
"prettier:diff": "prettier --list-different '**/*.*'",
|
|
11
11
|
"lint": "eslint . && yarn prettier:diff && yarn depcheck",
|
|
12
|
-
"test:web": "jest --config='./__tests__/
|
|
12
|
+
"test:web": "jest --config='./__tests__/jest.config.js'",
|
|
13
13
|
"prepublishOnly": "yarn transpile && yarn bundle",
|
|
14
14
|
"watch": "watch 'yarn bundle' ./src --ignoreDotFiles --ignoreUnreadable",
|
|
15
15
|
"cleanup-dist": "rm -rf dist",
|
|
@@ -32,26 +32,26 @@
|
|
|
32
32
|
"homepage": "https://github.com/newsuk/times-components#readme",
|
|
33
33
|
"dependencies": {
|
|
34
34
|
"@storybook/addon-knobs": "5.3.18",
|
|
35
|
-
"@times-components/context": "1.
|
|
36
|
-
"@times-components/icons": "2.
|
|
37
|
-
"@times-components/link": "3.
|
|
38
|
-
"@times-components/message-bar": "0.
|
|
39
|
-
"@times-components/provider-queries": "2.
|
|
40
|
-
"@times-components/save-star-web": "0.
|
|
41
|
-
"@times-components/tracking": "2.
|
|
42
|
-
"@times-components/ts-styleguide": "1.
|
|
43
|
-
"@times-components/user-state": "0.
|
|
44
|
-
"@times-components/utils": "6.
|
|
35
|
+
"@times-components/context": "1.10.0",
|
|
36
|
+
"@times-components/icons": "2.19.0",
|
|
37
|
+
"@times-components/link": "3.11.0",
|
|
38
|
+
"@times-components/message-bar": "0.7.0",
|
|
39
|
+
"@times-components/provider-queries": "2.18.0",
|
|
40
|
+
"@times-components/save-star-web": "0.9.0",
|
|
41
|
+
"@times-components/tracking": "2.12.0",
|
|
42
|
+
"@times-components/ts-styleguide": "1.37.0",
|
|
43
|
+
"@times-components/user-state": "0.4.0",
|
|
44
|
+
"@times-components/utils": "6.15.0",
|
|
45
45
|
"prop-types": "15.7.2"
|
|
46
46
|
},
|
|
47
47
|
"devDependencies": {
|
|
48
48
|
"@babel/core": "7.4.4",
|
|
49
49
|
"@times-components/eslint-config-thetimes": "0.8.18",
|
|
50
|
-
"@times-components/jest-configurator": "
|
|
51
|
-
"@times-components/jest-serializer": "3.
|
|
52
|
-
"@times-components/provider-test-tools": "1.
|
|
53
|
-
"@times-components/storybook": "4.
|
|
54
|
-
"@times-components/webpack-configurator": "2.0
|
|
50
|
+
"@times-components/jest-configurator-web": "0.8.0",
|
|
51
|
+
"@times-components/jest-serializer": "3.4.0",
|
|
52
|
+
"@times-components/provider-test-tools": "1.27.0",
|
|
53
|
+
"@times-components/storybook": "4.5.0",
|
|
54
|
+
"@times-components/webpack-configurator": "2.1.0",
|
|
55
55
|
"babel-jest": "24.8.0",
|
|
56
56
|
"eslint": "5.9.0",
|
|
57
57
|
"jest": "24.8.0",
|
|
@@ -59,8 +59,7 @@
|
|
|
59
59
|
"react": "16.9.0",
|
|
60
60
|
"react-dom": "16.9.0",
|
|
61
61
|
"react-test-renderer": "16.9.0",
|
|
62
|
-
"webpack": "4.30.0"
|
|
63
|
-
"webpack-cli": "3.3.1"
|
|
62
|
+
"webpack": "4.30.0"
|
|
64
63
|
},
|
|
65
64
|
"resolutions": {
|
|
66
65
|
"react": "16.9.0",
|
|
@@ -73,5 +72,5 @@
|
|
|
73
72
|
"publishConfig": {
|
|
74
73
|
"access": "public"
|
|
75
74
|
},
|
|
76
|
-
"gitHead": "
|
|
75
|
+
"gitHead": "fe2f12b7448a88662c53f840772282cd97756c5c"
|
|
77
76
|
}
|
package/rnw.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
module.exports=function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=14)}([function(e,t){e.exports=require("@babel/runtime/helpers/interopRequireDefault")},function(e,t){e.exports=require("react")},function(e,t){e.exports=require("prop-types")},function(e,t){e.exports=require("@times-components/utils/rnw")},function(e,t,r){var n=r(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=n(r(23)),a=r(24);function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?i(Object(r),!0).forEach((function(t){(0,o.default)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):i(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var u={container:{flex:1,flexDirection:"row",justifyContent:"space-between",paddingTop:(0,a.spacing)(2),paddingBottom:(0,a.spacing)(2),height:"100%",alignItems:"center"},activityLoader:{borderRadius:9999,height:40,overflow:"hidden",width:40},label:l(l({},(0,a.fontFactory)({font:"supporting",fontSize:"meta"})),{},{color:a.colours.functional.secondary,marginRight:(0,a.spacing)(2),transform:"translateY(9%)"}),link:{base:"\n margin-left: "+(0,a.spacing)(1)+";\n cursor: pointer;\n border-radius: 40px;\n\n &, > * {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 40px;\n width: 40px;\n }\n\n &:hover {\n background-color: "+a.colours.functional.whiteGrey+";\n }\n &:active {\n background-color: "+a.colours.functional.keyline+";\n }\n "},rowItem:{alignItems:"center",flexDirection:"row",height:40},rowItemRight:{alignItems:"center",flexDirection:"row",height:40,marginLeft:"auto"},svgIcon:{fb:{height:18},star:{height:18},fillColour:a.colours.functional.secondary,height:16,hoverFillColour:a.colours.functional.brandColour,save:{fillColour:a.colours.functional.white,strokeColour:a.colours.functional.secondary}}};t.default=u},function(e,t){e.exports=require("@babel/runtime/helpers/extends")},function(e,t){e.exports=require("@babel/runtime/helpers/classCallCheck")},function(e,t){e.exports=require("@babel/runtime/helpers/createClass")},function(e,t){e.exports=require("@babel/runtime/helpers/assertThisInitialized")},function(e,t){e.exports=require("@babel/runtime/helpers/inherits")},function(e,t){e.exports=require("@babel/runtime/helpers/possibleConstructorReturn")},function(e,t){e.exports=require("@babel/runtime/helpers/getPrototypeOf")},function(e,t){e.exports=require("@times-components/icons/rnw")},function(e,t,r){var n=r(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=n(r(5)),a=n(r(25)),i=n(r(1)),l=r(3),u=n(r(26)),c=(n(r(2)),n(r(4))),s=function(e){var t=e.children,r=e.colour,n=void 0===r?c.default.svgIcon.fillColour:r,s=e.dataTestId,f=e.hoverColour,d=void 0===f?c.default.svgIcon.hoverFillColour:f,p=e.onPress,h=void 0===p?function(){}:p,v=(0,a.default)(e,["children","colour","dataTestId","hoverColour","onPress"]);return i.default.createElement(l.TcView,{"data-testid":s},i.default.createElement(u.default,(0,o.default)({onPress:h,responsiveLinkStyles:c.default.link},v),i.default.createElement(l.HoverIcon,{colour:n,hoverColour:d},t)))};t.default=s},function(e,t,r){var n=r(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=n(r(5)),a=n(r(6)),i=n(r(7)),l=n(r(8)),u=n(r(9)),c=n(r(10)),s=n(r(11)),f=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=I(t);if(r&&r.has(e))return r.get(e);var n={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if("default"!==a&&Object.prototype.hasOwnProperty.call(e,a)){var i=o?Object.getOwnPropertyDescriptor(e,a):null;i&&(i.get||i.set)?Object.defineProperty(n,a,i):n[a]=e[a]}n.default=e,r&&r.set(e,n);return n}(r(1)),d=(n(r(2)),r(3)),p=r(12),h=n(r(15)),v=n(r(16)),m=r(17),b=n(r(18)),y=n(r(20)),g=n(r(22)),w=n(r(4)),O=n(r(13)),k=n(r(27));function I(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(I=function(e){return e?r:t})(e)}function P(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=(0,s.default)(e);if(t){var o=(0,s.default)(this).constructor;r=Reflect.construct(n,arguments,o)}else r=n.apply(this,arguments);return(0,c.default)(this,r)}}var C=function(e){(0,u.default)(r,e);var t=P(r);function r(e){var n;return(0,a.default)(this,r),(n=t.call(this,e)).copyToClipboard=n.copyToClipboard.bind((0,l.default)(n)),n}return(0,i.default)(r,[{key:"copyToClipboard",value:function(e){var t=this.props,r=t.onCopyLink,n=t.articleUrl;e.preventDefault(),navigator.clipboard.writeText(n),r()}},{key:"render",value:function(){var e=this,t=this.props,r=t.articleId,n=t.articleUrl,a=t.savingEnabled,i=t.sharingEnabled,l=t.onShareOnFB,u=t.onShareOnTwitter;return f.default.createElement(d.TcView,{style:w.default.container,"data-testid":"save-and-share-bar"},i&&f.default.createElement(d.TcView,{style:w.default.rowItem},f.default.createElement(d.TcText,{style:(0,d.checkStylesForUnits)(w.default.label)},"Share"),f.default.createElement(m.SectionContext.Consumer,null,(function(t){var r=t.publicationName;return f.default.createElement(v.default,{state:v.default.subscriber,fallback:f.default.createElement(k.default,(0,o.default)({},e.props,{shouldTokenise:!1,publicationName:r}))},f.default.createElement(k.default,(0,o.default)({},e.props,{shouldTokenise:!0,publicationName:r})))})),f.default.createElement(O.default,{onPress:u,target:"_blank",dataTestId:"share-twitter",url:g.default.twitter+"?text="+n},f.default.createElement(p.IconTwitter,{fillColour:"currentColor",height:w.default.svgIcon.height,title:"Share on Twitter"})),f.default.createElement(O.default,{onPress:l,target:"_blank",dataTestId:"share-facebook",url:g.default.facebook+"?u="+n},f.default.createElement(p.IconFacebook,{fillColour:"currentColor",height:w.default.svgIcon.fb.height,title:"Share on Facebook"})),f.default.createElement(O.default,{color:w.default.svgIcon.save.strokeColour,hoverColor:w.default.svgIcon.hoverFillColour,onPress:this.copyToClipboard,dataTestId:"copy-to-clickboard",url:""},f.default.createElement(p.IconCopyLink,{fillColour:"currentColor",height:w.default.svgIcon.height,title:"Copy link to clipboard"}))),a?f.default.createElement(v.default,{state:v.default.loggedIn,serverRender:!1},f.default.createElement(d.TcView,{style:w.default.rowItemRight,"data-testid":"save-star"},f.default.createElement(h.default,{colour:w.default.svgIcon.save.strokeColour,hoverColor:w.default.svgIcon.hoverFillColour,articleId:r,height:w.default.svgIcon.star.height}))):null)}}]),r}(f.Component);C.defaultProps={onShareOnFB:function(){},onShareOnTwitter:function(){},onShareEmail:function(){},getTokenisedShareUrl:b.default};var T=(0,y.default)(C);t.default=T},function(e,t){e.exports=require("@times-components/save-star-web/rnw")},function(e,t){e.exports=require("@times-components/user-state/rnw")},function(e,t){e.exports=require("@times-components/context/rnw")},function(e,t,r){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n=r(19),o=(0,r(3).makeClient)(),a=function(e){return o.query({query:n.getTokenisedArticleUrl,variables:{id:e}})};t.default=a},function(e,t){e.exports=require("@times-components/provider-queries/rnw")},function(e,t,r){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n=r(21);t.default=function(e){return(0,n.withTrackEvents)(e,{analyticsEvents:[{actionName:"Pressed",eventName:"onSaveToMyArticles",getAttrs:function(e){return{articleId:e.articleId,articleHeadline:e.articleHeadline}},trackingName:"ArticleSaveToMyArticles"},{actionName:"Pressed",eventName:"onShareEmail",getAttrs:function(e){return{articleId:e.articleId,articleHeadline:e.articleHeadline}},trackingName:"ArticleShareUrlByEmail"},{actionName:"Pressed",eventName:"onCopyLink",getAttrs:function(e){return{articleId:e.articleId,articleHeadline:e.articleHeadline}},trackingName:"ArticleCopyLink"},{actionName:"Pressed",eventName:"onShareOnFB",getAttrs:function(e){return{articleId:e.articleId,articleHeadline:e.articleHeadline}},trackingName:"ArticleShareOnFacebook"},{actionName:"Pressed",eventName:"onShareOnTwitter",getAttrs:function(e){return{articleId:e.articleId,articleHeadline:e.articleHeadline}},trackingName:"ArticleShareOnTwitter"}]})}},function(e,t){e.exports=require("@times-components/tracking/rnw")},function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;t.default={facebook:"https://www.facebook.com/sharer/sharer.php",twitter:"https://twitter.com/intent/tweet"}},function(e,t){e.exports=require("@babel/runtime/helpers/defineProperty")},function(e,t){e.exports=require("@times-components/ts-styleguide/rnw")},function(e,t){e.exports=require("@babel/runtime/helpers/objectWithoutProperties")},function(e,t){e.exports=require("@times-components/link/rnw")},function(e,t,r){var n=r(0);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=n(r(6)),a=n(r(7)),i=n(r(8)),l=n(r(9)),u=n(r(10)),c=n(r(11)),s=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=h(t);if(r&&r.has(e))return r.get(e);var n={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if("default"!==a&&Object.prototype.hasOwnProperty.call(e,a)){var i=o?Object.getOwnPropertyDescriptor(e,a):null;i&&(i.get||i.set)?Object.defineProperty(n,a,i):n[a]=e[a]}n.default=e,r&&r.set(e,n);return n}(r(1)),f=(n(r(2)),r(12)),d=n(r(4)),p=n(r(13));function h(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(h=function(e){return e?r:t})(e)}function v(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=(0,c.default)(e);if(t){var o=(0,c.default)(this).constructor;r=Reflect.construct(n,arguments,o)}else r=n.apply(this,arguments);return(0,u.default)(this,r)}}var m=function(e){(0,l.default)(r,e);var t=v(r);function r(e){var n;return(0,o.default)(this,r),(n=t.call(this,e)).state={isLoading:!1},n.onShare=n.onShare.bind((0,i.default)(n)),n}return(0,a.default)(r,[{key:"onShare",value:function(e){var t=this,r=this.props,n=r.articleId,o=r.getTokenisedShareUrl,a=r.shouldTokenise,i=r.articleUrl,l=r.onShareEmail,u=r.articleHeadline;if(e.preventDefault(),l({articleId:n,articleUrl:i,articleHeadline:u}),a)this.setState({isLoading:!0}),o(n).then((function(e){var r=e.data;r&&r.article&&(t.setState({isLoading:!1}),t.openMailClient(r.article.tokenisedUrl))})).catch((function(e){t.setState({isLoading:!1}),console.error("Error in connecting to api",e)}));else{var c=window.location.search.match(/[?&]shareToken=([^&]+)/);this.openMailClient(c?i+"?shareToken="+c[1]:i)}}},{key:"openMailClient",value:function(e){var t=this.props,r=t.articleHeadline,n="TIMES"!==t.publicationName?"The Sunday Times":"The Times",o="mailto:?subject="+r+" from "+n+"&body=I thought you would be interested in this story from "+n+"%0A%0A"+r+"%0A%0A"+e;window.location.assign(o)}},{key:"render",value:function(){var e=this.state.isLoading;return s.default.createElement(p.default,{onPress:this.onShare,dataTestId:"email-share",url:""},e?s.default.createElement(f.IconActivityIndicator,{size:"small",style:d.default.activityLoader}):s.default.createElement(f.IconEmail,{fillColour:"currentColor",height:d.default.svgIcon.height,title:"Share by email"}))}}]),r}(s.Component);m.defaultProps={publicationName:"TIMES"};var b=m;t.default=b}]);
|
|
1
|
+
module.exports=function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=11)}([function(e,t){e.exports=require("react")},function(e,t){e.exports=require("@times-components/ts-styleguide/rnw")},function(e,t){e.exports=require("@times-components/utils/rnw")},function(e,t){e.exports=require("@times-components/icons/rnw")},function(e,t){e.exports=require("@times-components/user-state/rnw")},function(e,t){e.exports=require("prop-types")},function(e,t){e.exports=require("@times-components/save-star-web/rnw")},function(e,t){e.exports=require("@times-components/context/rnw")},function(e,t){e.exports=require("@times-components/provider-queries/rnw")},function(e,t){e.exports=require("@times-components/tracking/rnw")},function(e,t){e.exports=require("@times-components/link/rnw")},function(e,t,r){"use strict";r.r(t);var n=r(0),o=r.n(n),a=(r(5),r(2)),i=r(3),c=r(6),l=r.n(c),s=r(4),u=r.n(s),d=r(7),h=r(8);const p=Object(a.makeClient)();var f=e=>p.query({query:h.getTokenisedArticleUrl,variables:{id:e}}),m=r(9),g="https://www.facebook.com/sharer/sharer.php",b="https://twitter.com/intent/tweet",v=r(1);function y(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function w(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?y(Object(r),!0).forEach((function(t){O(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):y(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function O(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var I={container:{flex:1,flexDirection:"row",justifyContent:"space-between",paddingTop:Object(v.spacing)(2),paddingBottom:Object(v.spacing)(2),height:"100%",alignItems:"center"},activityLoader:{borderRadius:9999,height:40,overflow:"hidden",width:40},label:w(w({},Object(v.fontFactory)({font:"supporting",fontSize:"meta"})),{},{color:v.colours.functional.secondary,marginRight:Object(v.spacing)(2),transform:"translateY(9%)"}),link:{base:"\n margin-left: ".concat(Object(v.spacing)(1),";\n cursor: pointer;\n border-radius: ").concat(40,"px;\n\n &, > * {\n display: flex;\n align-items: center;\n justify-content: center;\n height: ").concat(40,"px;\n width: ").concat(40,"px;\n }\n\n &:hover {\n background-color: ").concat(v.colours.functional.whiteGrey,";\n }\n &:active {\n background-color: ").concat(v.colours.functional.keyline,";\n }\n ")},rowItem:{alignItems:"center",flexDirection:"row",height:40},rowItemRight:{alignItems:"center",flexDirection:"row",height:40,marginLeft:"auto"},svgIcon:{fb:{height:18},star:{height:18},fillColour:v.colours.functional.secondary,height:16,hoverFillColour:v.colours.functional.brandColour,save:{fillColour:v.colours.functional.white,strokeColour:v.colours.functional.secondary}}},k=r(10),S=r.n(k);function T(){return(T=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}function C(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var j=e=>{let t=e.children,r=e.colour,n=void 0===r?I.svgIcon.fillColour:r,i=e.dataTestId,c=e.hoverColour,l=void 0===c?I.svgIcon.hoverFillColour:c,s=e.onPress,u=void 0===s?()=>{}:s,d=C(e,["children","colour","dataTestId","hoverColour","onPress"]);return o.a.createElement(a.TcView,{"data-testid":i},o.a.createElement(S.a,T({onPress:u,responsiveLinkStyles:I.link},d),o.a.createElement(a.HoverIcon,{colour:n,hoverColour:l},t)))};class E extends n.Component{constructor(e){super(e),this.state={isLoading:!1},this.onShare=this.onShare.bind(this)}onShare(e){const t=this.props,r=t.articleId,n=t.getTokenisedShareUrl,o=t.shouldTokenise,a=t.articleUrl,i=t.onShareEmail,c=t.articleHeadline;if(e.preventDefault(),i({articleId:r,articleUrl:a,articleHeadline:c}),o)this.setState({isLoading:!0}),n(r).then(e=>{const t=e.data;t&&t.article&&(this.setState({isLoading:!1}),this.openMailClient(t.article.tokenisedUrl))}).catch(e=>{this.setState({isLoading:!1}),console.error("Error in connecting to api",e)});else{const e=window.location.search.match(/[?&]shareToken=([^&]+)/);this.openMailClient(e?"".concat(a,"?shareToken=").concat(e[1]):a)}}openMailClient(e){const t=this.props,r=t.articleHeadline,n="TIMES"!==t.publicationName?"The Sunday Times":"The Times",o="mailto:?subject=".concat(r," from ").concat(n,"&body=I thought you would be interested in this story from ").concat(n,"%0A%0A").concat(r,"%0A%0A").concat(e);window.location.assign(o)}render(){const e=this.state.isLoading;return o.a.createElement(j,{onPress:this.onShare,dataTestId:"email-share",url:""},e?o.a.createElement(i.IconActivityIndicator,{size:"small",style:I.activityLoader}):o.a.createElement(i.IconEmail,{fillColour:"currentColor",height:I.svgIcon.height,title:"Share by email"}))}}E.defaultProps={publicationName:"TIMES"};var x=E;function P(){return(P=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}class N extends n.Component{constructor(e){super(e),this.copyToClipboard=this.copyToClipboard.bind(this)}copyToClipboard(e){const t=this.props,r=t.onCopyLink,n=t.articleUrl;e.preventDefault(),navigator.clipboard.writeText(n),r()}render(){const e=this.props,t=e.articleId,r=e.articleUrl,n=e.savingEnabled,c=e.sharingEnabled,s=e.onShareOnFB,h=e.onShareOnTwitter;return o.a.createElement(a.TcView,{style:I.container,"data-testid":"save-and-share-bar"},c&&o.a.createElement(a.TcView,{style:I.rowItem},o.a.createElement(a.TcText,{style:Object(a.checkStylesForUnits)(I.label)},"Share"),o.a.createElement(d.SectionContext.Consumer,null,e=>{let t=e.publicationName;return o.a.createElement(u.a,{state:u.a.subscriber,fallback:o.a.createElement(x,P({},this.props,{shouldTokenise:!1,publicationName:t}))},o.a.createElement(x,P({},this.props,{shouldTokenise:!0,publicationName:t})))}),o.a.createElement(j,{onPress:h,target:"_blank",dataTestId:"share-twitter",url:"".concat(b,"?text=").concat(r)},o.a.createElement(i.IconTwitter,{fillColour:"currentColor",height:I.svgIcon.height,title:"Share on Twitter"})),o.a.createElement(j,{onPress:s,target:"_blank",dataTestId:"share-facebook",url:"".concat(g,"?u=").concat(r)},o.a.createElement(i.IconFacebook,{fillColour:"currentColor",height:I.svgIcon.fb.height,title:"Share on Facebook"})),o.a.createElement(j,{color:I.svgIcon.save.strokeColour,hoverColor:I.svgIcon.hoverFillColour,onPress:this.copyToClipboard,dataTestId:"copy-to-clickboard",url:""},o.a.createElement(i.IconCopyLink,{fillColour:"currentColor",height:I.svgIcon.height,title:"Copy link to clipboard"}))),n?o.a.createElement(u.a,{state:u.a.loggedIn,serverRender:!1},o.a.createElement(a.TcView,{style:I.rowItemRight,"data-testid":"save-star"},o.a.createElement(l.a,{colour:I.svgIcon.save.strokeColour,hoverColor:I.svgIcon.hoverFillColour,articleId:t,height:I.svgIcon.star.height}))):null)}}N.defaultProps={onShareOnFB:()=>{},onShareOnTwitter:()=>{},onShareEmail:()=>{},getTokenisedShareUrl:f};var A;t.default=(A=N,Object(m.withTrackEvents)(A,{analyticsEvents:[{actionName:"Pressed",eventName:"onSaveToMyArticles",getAttrs:e=>({articleId:e.articleId,articleHeadline:e.articleHeadline}),trackingName:"ArticleSaveToMyArticles"},{actionName:"Pressed",eventName:"onShareEmail",getAttrs:e=>({articleId:e.articleId,articleHeadline:e.articleHeadline}),trackingName:"ArticleShareUrlByEmail"},{actionName:"Pressed",eventName:"onCopyLink",getAttrs:e=>({articleId:e.articleId,articleHeadline:e.articleHeadline}),trackingName:"ArticleCopyLink"},{actionName:"Pressed",eventName:"onShareOnFB",getAttrs:e=>({articleId:e.articleId,articleHeadline:e.articleHeadline}),trackingName:"ArticleShareOnFacebook"},{actionName:"Pressed",eventName:"onShareOnTwitter",getAttrs:e=>({articleId:e.articleId,articleHeadline:e.articleHeadline}),trackingName:"ArticleShareOnTwitter"}]}))}]);
|