@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 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-transform-react-display-name"
6
+ "@babel/plugin-proposal-export-default-from"
7
7
  ],
8
- presets: ["module:metro-react-native-babel-preset"]
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
- var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.default=void 0;var _extends2=_interopRequireDefault(require("@babel/runtime/helpers/extends"));var _objectWithoutProperties2=_interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));var _react=_interopRequireDefault(require("react"));var _utils=require("@times-components/utils");var _link=_interopRequireDefault(require("@times-components/link"));var _propTypes=_interopRequireDefault(require("prop-types"));var _styles=_interopRequireDefault(require("./styles"));var _jsxFileName="/home/circleci/project/packages/save-and-share-bar/src/bar-item.js";var BarItem=function BarItem(_ref){var children=_ref.children,_ref$colour=_ref.colour,colour=_ref$colour===void 0?_styles.default.svgIcon.fillColour:_ref$colour,dataTestId=_ref.dataTestId,_ref$hoverColour=_ref.hoverColour,hoverColour=_ref$hoverColour===void 0?_styles.default.svgIcon.hoverFillColour:_ref$hoverColour,_ref$onPress=_ref.onPress,onPress=_ref$onPress===void 0?function(){}:_ref$onPress,props=(0,_objectWithoutProperties2.default)(_ref,["children","colour","dataTestId","hoverColour","onPress"]);return _react.default.createElement(_utils.TcView,{"data-testid":dataTestId,__source:{fileName:_jsxFileName,lineNumber:16,columnNumber:3}},_react.default.createElement(_link.default,(0,_extends2.default)({onPress:onPress,responsiveLinkStyles:_styles.default.link},props,{__source:{fileName:_jsxFileName,lineNumber:17,columnNumber:5}}),_react.default.createElement(_utils.HoverIcon,{colour:colour,hoverColour:hoverColour,__source:{fileName:_jsxFileName,lineNumber:18,columnNumber:7}},children)));};BarItem.propTypes={children:_propTypes.default.node.isRequired,colour:_propTypes.default.string,dataTestId:_propTypes.default.string,hoverColour:_propTypes.default.string,onPress:_propTypes.default.func};var _default=BarItem;exports.default=_default;
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;
@@ -1 +1,11 @@
1
- Object.defineProperty(exports,"__esModule",{value:true});exports.default=void 0;var _default={facebook:"https://www.facebook.com/sharer/sharer.php",twitter:"https://twitter.com/intent/tweet"};exports.default=_default;
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;
@@ -1 +1,114 @@
1
- var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.default=void 0;var _classCallCheck2=_interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));var _createClass2=_interopRequireDefault(require("@babel/runtime/helpers/createClass"));var _assertThisInitialized2=_interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));var _inherits2=_interopRequireDefault(require("@babel/runtime/helpers/inherits"));var _possibleConstructorReturn2=_interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));var _getPrototypeOf2=_interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));var _react=_interopRequireWildcard(require("react"));var _propTypes=_interopRequireDefault(require("prop-types"));var _icons=require("@times-components/icons");var _styles=_interopRequireDefault(require("./styles"));var _barItem=_interopRequireDefault(require("./bar-item"));var _jsxFileName="/home/circleci/project/packages/save-and-share-bar/src/email-share.js";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);}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;}function _createSuper(Derived){var hasNativeReflectConstruct=_isNativeReflectConstruct();return function _createSuperInternal(){var Super=(0,_getPrototypeOf2.default)(Derived),result;if(hasNativeReflectConstruct){var NewTarget=(0,_getPrototypeOf2.default)(this).constructor;result=Reflect.construct(Super,arguments,NewTarget);}else{result=Super.apply(this,arguments);}return(0,_possibleConstructorReturn2.default)(this,result);};}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;}}var EmailShare=function(_Component){(0,_inherits2.default)(EmailShare,_Component);var _super=_createSuper(EmailShare);function EmailShare(props){var _this;(0,_classCallCheck2.default)(this,EmailShare);_this=_super.call(this,props);_this.state={isLoading:false};_this.onShare=_this.onShare.bind((0,_assertThisInitialized2.default)(_this));return _this;}(0,_createClass2.default)(EmailShare,[{key:"onShare",value:function onShare(e){var _this2=this;var _this$props=this.props,articleId=_this$props.articleId,getTokenisedShareUrl=_this$props.getTokenisedShareUrl,shouldTokenise=_this$props.shouldTokenise,articleUrl=_this$props.articleUrl,onShareEmail=_this$props.onShareEmail,articleHeadline=_this$props.articleHeadline;e.preventDefault();onShareEmail({articleId:articleId,articleUrl:articleUrl,articleHeadline:articleHeadline});if(shouldTokenise){this.setState({isLoading:true});getTokenisedShareUrl(articleId).then(function(res){var data=res.data;if(data&&data.article){_this2.setState({isLoading:false});_this2.openMailClient(data.article.tokenisedUrl);}}).catch(function(error){_this2.setState({isLoading:false});console.error("Error in connecting to api",error);});}else{var matches=window.location.search.match(/[?&]shareToken=([^&]+)/);this.openMailClient(matches?articleUrl+"?shareToken="+matches[1]:articleUrl);}}},{key:"openMailClient",value:function openMailClient(url){var _this$props2=this.props,articleHeadline=_this$props2.articleHeadline,publicationName=_this$props2.publicationName;var publication=publicationName!=="TIMES"?"The Sunday Times":"The Times";var mailtoEmailUrl="mailto:?subject="+articleHeadline+" from "+publication+"&body=I thought you would be interested in this story from "+publication+"%0A%0A"+articleHeadline+"%0A%0A"+url;window.location.assign(mailtoEmailUrl);}},{key:"render",value:function render(){var isLoading=this.state.isLoading;return _react.default.createElement(_barItem.default,{onPress:this.onShare,dataTestId:"email-share",url:"",__source:{fileName:_jsxFileName,lineNumber:67,columnNumber:7}},isLoading?_react.default.createElement(_icons.IconActivityIndicator,{size:"small",style:_styles.default.activityLoader,__source:{fileName:_jsxFileName,lineNumber:69,columnNumber:11}}):_react.default.createElement(_icons.IconEmail,{fillColour:"currentColor",height:_styles.default.svgIcon.height,title:"Share by email",__source:{fileName:_jsxFileName,lineNumber:71,columnNumber:11}}));}}]);return EmailShare;}(_react.Component);EmailShare.propTypes={getTokenisedShareUrl:_propTypes.default.func.isRequired,onShareEmail:_propTypes.default.func.isRequired,articleUrl:_propTypes.default.string.isRequired,articleHeadline:_propTypes.default.string.isRequired,articleId:_propTypes.default.string.isRequired,shouldTokenise:_propTypes.default.bool.isRequired,publicationName:_propTypes.default.string};EmailShare.defaultProps={publicationName:"TIMES"};var _default=EmailShare;exports.default=_default;
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
- Object.defineProperty(exports,"__esModule",{value:true});exports.default=void 0;var _providerQueries=require("@times-components/provider-queries");var _utils=require("@times-components/utils");var client=(0,_utils.makeClient)();var getTokenisedArticleUrlApi=function getTokenisedArticleUrlApi(id){return client.query({query:_providerQueries.getTokenisedArticleUrl,variables:{id:id}});};var _default=getTokenisedArticleUrlApi;exports.default=_default;
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
- var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.default=void 0;var _extends2=_interopRequireDefault(require("@babel/runtime/helpers/extends"));var _classCallCheck2=_interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));var _createClass2=_interopRequireDefault(require("@babel/runtime/helpers/createClass"));var _assertThisInitialized2=_interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));var _inherits2=_interopRequireDefault(require("@babel/runtime/helpers/inherits"));var _possibleConstructorReturn2=_interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));var _getPrototypeOf2=_interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));var _react=_interopRequireWildcard(require("react"));var _propTypes=_interopRequireDefault(require("prop-types"));var _utils=require("@times-components/utils");var _icons=require("@times-components/icons");var _saveStarWeb=_interopRequireDefault(require("@times-components/save-star-web"));var _userState=_interopRequireDefault(require("@times-components/user-state"));var _context=require("@times-components/context");var _getTokenisedArticleUrlApi=_interopRequireDefault(require("./get-tokenised-article-url-api"));var _withTrackEvents=_interopRequireDefault(require("./tracking/with-track-events"));var _constants=_interopRequireDefault(require("./constants"));var _styles=_interopRequireDefault(require("./styles"));var _barItem=_interopRequireDefault(require("./bar-item"));var _emailShare=_interopRequireDefault(require("./email-share"));var _jsxFileName="/home/circleci/project/packages/save-and-share-bar/src/save-and-share-bar.js";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);}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;}function _createSuper(Derived){var hasNativeReflectConstruct=_isNativeReflectConstruct();return function _createSuperInternal(){var Super=(0,_getPrototypeOf2.default)(Derived),result;if(hasNativeReflectConstruct){var NewTarget=(0,_getPrototypeOf2.default)(this).constructor;result=Reflect.construct(Super,arguments,NewTarget);}else{result=Super.apply(this,arguments);}return(0,_possibleConstructorReturn2.default)(this,result);};}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;}}var SaveAndShareBar=function(_Component){(0,_inherits2.default)(SaveAndShareBar,_Component);var _super=_createSuper(SaveAndShareBar);function SaveAndShareBar(props){var _this;(0,_classCallCheck2.default)(this,SaveAndShareBar);_this=_super.call(this,props);_this.copyToClipboard=_this.copyToClipboard.bind((0,_assertThisInitialized2.default)(_this));return _this;}(0,_createClass2.default)(SaveAndShareBar,[{key:"copyToClipboard",value:function copyToClipboard(e){var _this$props=this.props,onCopyLink=_this$props.onCopyLink,articleUrl=_this$props.articleUrl;e.preventDefault();navigator.clipboard.writeText(articleUrl);onCopyLink();}},{key:"render",value:function render(){var _this2=this;var _this$props2=this.props,articleId=_this$props2.articleId,articleUrl=_this$props2.articleUrl,savingEnabled=_this$props2.savingEnabled,sharingEnabled=_this$props2.sharingEnabled,onShareOnFB=_this$props2.onShareOnFB,onShareOnTwitter=_this$props2.onShareOnTwitter;return _react.default.createElement(_utils.TcView,{style:_styles.default.container,"data-testid":"save-and-share-bar",__source:{fileName:_jsxFileName,lineNumber:46,columnNumber:7}},sharingEnabled&&_react.default.createElement(_utils.TcView,{style:_styles.default.rowItem,__source:{fileName:_jsxFileName,lineNumber:48,columnNumber:11}},_react.default.createElement(_utils.TcText,{style:(0,_utils.checkStylesForUnits)(_styles.default.label),__source:{fileName:_jsxFileName,lineNumber:49,columnNumber:13}},"Share"),_react.default.createElement(_context.SectionContext.Consumer,{__source:{fileName:_jsxFileName,lineNumber:50,columnNumber:13}},function(_ref){var publicationName=_ref.publicationName;return _react.default.createElement(_userState.default,{state:_userState.default.subscriber,fallback:_react.default.createElement(_emailShare.default,(0,_extends2.default)({},_this2.props,{shouldTokenise:false,publicationName:publicationName,__source:{fileName:_jsxFileName,lineNumber:55,columnNumber:21}})),__source:{fileName:_jsxFileName,lineNumber:52,columnNumber:17}},_react.default.createElement(_emailShare.default,(0,_extends2.default)({},_this2.props,{shouldTokenise:true,publicationName:publicationName,__source:{fileName:_jsxFileName,lineNumber:62,columnNumber:19}})));}),_react.default.createElement(_barItem.default,{onPress:onShareOnTwitter,target:"_blank",dataTestId:"share-twitter",url:_constants.default.twitter+"?text="+articleUrl,__source:{fileName:_jsxFileName,lineNumber:70,columnNumber:13}},_react.default.createElement(_icons.IconTwitter,{fillColour:"currentColor",height:_styles.default.svgIcon.height,title:"Share on Twitter",__source:{fileName:_jsxFileName,lineNumber:76,columnNumber:15}})),_react.default.createElement(_barItem.default,{onPress:onShareOnFB,target:"_blank",dataTestId:"share-facebook",url:_constants.default.facebook+"?u="+articleUrl,__source:{fileName:_jsxFileName,lineNumber:82,columnNumber:13}},_react.default.createElement(_icons.IconFacebook,{fillColour:"currentColor",height:_styles.default.svgIcon.fb.height,title:"Share on Facebook",__source:{fileName:_jsxFileName,lineNumber:88,columnNumber:15}})),_react.default.createElement(_barItem.default,{color:_styles.default.svgIcon.save.strokeColour,hoverColor:_styles.default.svgIcon.hoverFillColour,onPress:this.copyToClipboard,dataTestId:"copy-to-clickboard",url:"",__source:{fileName:_jsxFileName,lineNumber:94,columnNumber:13}},_react.default.createElement(_icons.IconCopyLink,{fillColour:"currentColor",height:_styles.default.svgIcon.height,title:"Copy link to clipboard",__source:{fileName:_jsxFileName,lineNumber:101,columnNumber:15}}))),savingEnabled?_react.default.createElement(_userState.default,{state:_userState.default.loggedIn,serverRender:false,__source:{fileName:_jsxFileName,lineNumber:110,columnNumber:11}},_react.default.createElement(_utils.TcView,{style:_styles.default.rowItemRight,"data-testid":"save-star",__source:{fileName:_jsxFileName,lineNumber:111,columnNumber:13}},_react.default.createElement(_saveStarWeb.default,{colour:_styles.default.svgIcon.save.strokeColour,hoverColor:_styles.default.svgIcon.hoverFillColour,articleId:articleId,height:_styles.default.svgIcon.star.height,__source:{fileName:_jsxFileName,lineNumber:112,columnNumber:15}}))):null);}}]);return SaveAndShareBar;}(_react.Component);SaveAndShareBar.propTypes={articleId:_propTypes.default.string.isRequired,articleUrl:_propTypes.default.string.isRequired,articleHeadline:_propTypes.default.string.isRequired,getTokenisedShareUrl:_propTypes.default.func,onCopyLink:_propTypes.default.func.isRequired,onShareOnFB:_propTypes.default.func,onShareEmail:_propTypes.default.func,onShareOnTwitter:_propTypes.default.func,savingEnabled:_propTypes.default.bool.isRequired,sharingEnabled:_propTypes.default.bool.isRequired};SaveAndShareBar.defaultProps={onShareOnFB:function onShareOnFB(){},onShareOnTwitter:function onShareOnTwitter(){},onShareEmail:function onShareEmail(){},getTokenisedShareUrl:_getTokenisedArticleUrlApi.default};var _default=(0,_withTrackEvents.default)(SaveAndShareBar);exports.default=_default;
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;
@@ -1 +1,72 @@
1
- var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.default=void 0;var _defineProperty2=_interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));var _tsStyleguide=require("@times-components/ts-styleguide");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;}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){(0,_defineProperty2.default)(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;}var ICON_SIZE=40;var styles={container:{flex:1,flexDirection:"row",justifyContent:"space-between",paddingTop:(0,_tsStyleguide.spacing)(2),paddingBottom:(0,_tsStyleguide.spacing)(2),height:"100%",alignItems:"center"},activityLoader:{borderRadius:9999,height:40,overflow:"hidden",width:40},label:_objectSpread(_objectSpread({},(0,_tsStyleguide.fontFactory)({font:"supporting",fontSize:"meta"})),{},{color:_tsStyleguide.colours.functional.secondary,marginRight:(0,_tsStyleguide.spacing)(2),transform:"translateY(9%)"}),link:{base:"\n margin-left: "+(0,_tsStyleguide.spacing)(1)+";\n cursor: pointer;\n border-radius: "+ICON_SIZE+"px;\n\n &, > * {\n display: flex;\n align-items: center;\n justify-content: center;\n height: "+ICON_SIZE+"px;\n width: "+ICON_SIZE+"px;\n }\n\n &:hover {\n background-color: "+_tsStyleguide.colours.functional.whiteGrey+";\n }\n &:active {\n background-color: "+_tsStyleguide.colours.functional.keyline+";\n }\n "},rowItem:{alignItems:"center",flexDirection:"row",height:ICON_SIZE},rowItemRight:{alignItems:"center",flexDirection:"row",height:ICON_SIZE,marginLeft:"auto"},svgIcon:{fb:{height:18},star:{height:18},fillColour:_tsStyleguide.colours.functional.secondary,height:16,hoverFillColour:_tsStyleguide.colours.functional.brandColour,save:{fillColour:_tsStyleguide.colours.functional.white,strokeColour:_tsStyleguide.colours.functional.secondary}}};var _default=styles;exports.default=_default;
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
- Object.defineProperty(exports,"__esModule",{value:true});exports.default=void 0;var _tracking=require("@times-components/tracking");var _default=function _default(Component){return(0,_tracking.withTrackEvents)(Component,{analyticsEvents:[{actionName:"Pressed",eventName:"onSaveToMyArticles",getAttrs:function getAttrs(_ref){var articleId=_ref.articleId,articleHeadline=_ref.articleHeadline;return{articleId:articleId,articleHeadline:articleHeadline};},trackingName:"ArticleSaveToMyArticles"},{actionName:"Pressed",eventName:"onShareEmail",getAttrs:function getAttrs(_ref2){var articleId=_ref2.articleId,articleHeadline=_ref2.articleHeadline;return{articleId:articleId,articleHeadline:articleHeadline};},trackingName:"ArticleShareUrlByEmail"},{actionName:"Pressed",eventName:"onCopyLink",getAttrs:function getAttrs(_ref3){var articleId=_ref3.articleId,articleHeadline=_ref3.articleHeadline;return{articleId:articleId,articleHeadline:articleHeadline};},trackingName:"ArticleCopyLink"},{actionName:"Pressed",eventName:"onShareOnFB",getAttrs:function getAttrs(_ref4){var articleId=_ref4.articleId,articleHeadline=_ref4.articleHeadline;return{articleId:articleId,articleHeadline:articleHeadline};},trackingName:"ArticleShareOnFacebook"},{actionName:"Pressed",eventName:"onShareOnTwitter",getAttrs:function getAttrs(_ref5){var articleId=_ref5.articleId,articleHeadline=_ref5.articleHeadline;return{articleId:articleId,articleHeadline:articleHeadline};},trackingName:"ArticleShareOnTwitter"}]});};exports.default=_default;
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.12.7",
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__/web/jest.config.js'",
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.9.4",
36
- "@times-components/icons": "2.18.8",
37
- "@times-components/link": "3.10.12",
38
- "@times-components/message-bar": "0.6.5",
39
- "@times-components/provider-queries": "2.17.2",
40
- "@times-components/save-star-web": "0.8.10",
41
- "@times-components/tracking": "2.11.1",
42
- "@times-components/ts-styleguide": "1.36.9",
43
- "@times-components/user-state": "0.3.31",
44
- "@times-components/utils": "6.14.4",
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": "2.8.1",
51
- "@times-components/jest-serializer": "3.3.1",
52
- "@times-components/provider-test-tools": "1.26.8",
53
- "@times-components/storybook": "4.4.1",
54
- "@times-components/webpack-configurator": "2.0.30",
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": "08ed4de0ce86b64216c8787a93a7b2861e8d5f82"
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"}]}))}]);