@automattic/social-previews 1.1.1 → 1.1.4

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
@@ -1,5 +1,18 @@
1
1
  # Changelog
2
2
 
3
+ ## v1.1.4 (2022-05-25)
4
+
5
+ - Add missing dependency on `@emotion/react`.
6
+
7
+ ## v1.1.3 (2022-05-16)
8
+
9
+ - Remove unnecessary peer dependencies on `@wordpress/data`, `reakit-utils`, and `redux`.
10
+ - Add missing peer dependency on `react-dom`.
11
+
12
+ ## v1.1.2 (2022-05-13)
13
+
14
+ - Dependency updates and internal code cleanup.
15
+
3
16
  ## v1.1.1 (2021-04-05)
4
17
 
5
18
  - Ensure that lengthy text doesn't overflow in the Twitter preview.
@@ -1,7 +1,5 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
-
5
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
6
4
 
7
5
  Object.defineProperty(exports, "__esModule", {
@@ -9,85 +7,66 @@ Object.defineProperty(exports, "__esModule", {
9
7
  });
10
8
  exports.default = exports.FacebookPreview = void 0;
11
9
 
12
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
-
14
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
15
-
16
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
17
-
18
- var _createSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/createSuper"));
10
+ var _lodash = require("lodash");
19
11
 
20
12
  var _propTypes = _interopRequireDefault(require("prop-types"));
21
13
 
22
- var _react = _interopRequireWildcard(require("react"));
23
-
24
- var _lodash = require("lodash");
14
+ var _react = require("react");
25
15
 
26
16
  var _helpers = require("../helpers");
27
17
 
28
18
  require("./style.scss");
29
19
 
30
- /**
31
- * External dependencies
32
- */
33
-
34
- /**
35
- * Style dependencies
36
- */
37
- var TITLE_LENGTH = 80;
38
- var DESCRIPTION_LENGTH = 200;
39
-
40
- var baseDomain = function baseDomain(url) {
41
- return url && url.replace(/^[^/]+[/]*/, '') // strip leading protocol
42
- .replace(/\/.*$/, '');
43
- }; // strip everything after the domain
44
-
45
-
46
- var facebookTitle = (0, _helpers.firstValid)((0, _helpers.shortEnough)(TITLE_LENGTH), (0, _helpers.hardTruncation)(TITLE_LENGTH));
47
- var facebookDescription = (0, _helpers.firstValid)((0, _helpers.shortEnough)(DESCRIPTION_LENGTH), (0, _helpers.hardTruncation)(DESCRIPTION_LENGTH));
48
-
49
- var FacebookPreview = /*#__PURE__*/function (_PureComponent) {
50
- (0, _inherits2.default)(FacebookPreview, _PureComponent);
51
-
52
- var _super = (0, _createSuper2.default)(FacebookPreview);
53
-
54
- function FacebookPreview() {
55
- (0, _classCallCheck2.default)(this, FacebookPreview);
56
- return _super.apply(this, arguments);
20
+ var _jsxRuntime = require("@emotion/react/jsx-runtime");
21
+
22
+ const TITLE_LENGTH = 80;
23
+ const DESCRIPTION_LENGTH = 200;
24
+
25
+ const baseDomain = url => url && url.replace(/^[^/]+[/]*/, '') // strip leading protocol
26
+ .replace(/\/.*$/, ''); // strip everything after the domain
27
+
28
+
29
+ const facebookTitle = (0, _helpers.firstValid)((0, _helpers.shortEnough)(TITLE_LENGTH), (0, _helpers.hardTruncation)(TITLE_LENGTH));
30
+ const facebookDescription = (0, _helpers.firstValid)((0, _helpers.shortEnough)(DESCRIPTION_LENGTH), (0, _helpers.hardTruncation)(DESCRIPTION_LENGTH));
31
+
32
+ class FacebookPreview extends _react.PureComponent {
33
+ render() {
34
+ const {
35
+ url,
36
+ type,
37
+ title,
38
+ description,
39
+ image,
40
+ author
41
+ } = this.props;
42
+ return (0, _jsxRuntime.jsx)("div", {
43
+ className: `facebook-preview facebook-preview__${type}`,
44
+ children: (0, _jsxRuntime.jsxs)("div", {
45
+ className: "facebook-preview__content",
46
+ children: [(0, _jsxRuntime.jsx)("div", {
47
+ className: "facebook-preview__image",
48
+ children: image && (0, _jsxRuntime.jsx)("img", {
49
+ alt: "Facebook Preview Thumbnail",
50
+ src: image
51
+ })
52
+ }), (0, _jsxRuntime.jsxs)("div", {
53
+ className: "facebook-preview__body",
54
+ children: [(0, _jsxRuntime.jsx)("div", {
55
+ className: "facebook-preview__url",
56
+ children: (0, _lodash.compact)([baseDomain(url), author]).join(' | ')
57
+ }), (0, _jsxRuntime.jsx)("div", {
58
+ className: "facebook-preview__title",
59
+ children: facebookTitle(title || '')
60
+ }), (0, _jsxRuntime.jsx)("div", {
61
+ className: "facebook-preview__description",
62
+ children: facebookDescription((0, _helpers.stripHtmlTags)(description))
63
+ })]
64
+ })]
65
+ })
66
+ });
57
67
  }
58
68
 
59
- (0, _createClass2.default)(FacebookPreview, [{
60
- key: "render",
61
- value: function render() {
62
- var _this$props = this.props,
63
- url = _this$props.url,
64
- type = _this$props.type,
65
- title = _this$props.title,
66
- description = _this$props.description,
67
- image = _this$props.image,
68
- author = _this$props.author;
69
- return /*#__PURE__*/_react.default.createElement("div", {
70
- className: "facebook-preview facebook-preview__".concat(type)
71
- }, /*#__PURE__*/_react.default.createElement("div", {
72
- className: "facebook-preview__content"
73
- }, /*#__PURE__*/_react.default.createElement("div", {
74
- className: "facebook-preview__image"
75
- }, image && /*#__PURE__*/_react.default.createElement("img", {
76
- alt: "Facebook Preview Thumbnail",
77
- src: image
78
- })), /*#__PURE__*/_react.default.createElement("div", {
79
- className: "facebook-preview__body"
80
- }, /*#__PURE__*/_react.default.createElement("div", {
81
- className: "facebook-preview__url"
82
- }, (0, _lodash.compact)([baseDomain(url), author]).join(' | ')), /*#__PURE__*/_react.default.createElement("div", {
83
- className: "facebook-preview__title"
84
- }, facebookTitle(title || '')), /*#__PURE__*/_react.default.createElement("div", {
85
- className: "facebook-preview__description"
86
- }, facebookDescription((0, _helpers.stripHtmlTags)(description))))));
87
- }
88
- }]);
89
- return FacebookPreview;
90
- }(_react.PureComponent);
69
+ }
91
70
 
92
71
  exports.FacebookPreview = FacebookPreview;
93
72
  FacebookPreview.propTypes = {
@@ -3,55 +3,36 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.stripHtmlTags = exports.firstValid = exports.hardTruncation = exports.truncatedAtSpace = exports.shortEnough = void 0;
6
+ exports.truncatedAtSpace = exports.stripHtmlTags = exports.shortEnough = exports.hardTruncation = exports.firstValid = void 0;
7
7
 
8
8
  var _lodash = require("lodash");
9
9
 
10
- /**
11
- * External dependencies
12
- */
13
- var shortEnough = function shortEnough(limit) {
14
- return function (title) {
15
- return title.length <= limit ? title : false;
16
- };
17
- };
10
+ const shortEnough = limit => title => title.length <= limit ? title : false;
18
11
 
19
12
  exports.shortEnough = shortEnough;
20
13
 
21
- var truncatedAtSpace = function truncatedAtSpace(lower, upper) {
22
- return function (fullTitle) {
23
- var title = fullTitle.slice(0, upper);
24
- var lastSpace = title.lastIndexOf(' ');
25
- return lastSpace > lower && lastSpace < upper ? title.slice(0, lastSpace).concat('…') : false;
26
- };
14
+ const truncatedAtSpace = (lower, upper) => fullTitle => {
15
+ const title = fullTitle.slice(0, upper);
16
+ const lastSpace = title.lastIndexOf(' ');
17
+ return lastSpace > lower && lastSpace < upper ? title.slice(0, lastSpace).concat('…') : false;
27
18
  };
28
19
 
29
20
  exports.truncatedAtSpace = truncatedAtSpace;
30
21
 
31
- var hardTruncation = function hardTruncation(limit) {
32
- return function (title) {
33
- return title.slice(0, limit).concat('…');
34
- };
35
- };
22
+ const hardTruncation = limit => title => title.slice(0, limit).concat('…');
36
23
 
37
24
  exports.hardTruncation = hardTruncation;
38
25
 
39
- var firstValid = function firstValid() {
26
+ const firstValid = function () {
40
27
  for (var _len = arguments.length, predicates = new Array(_len), _key = 0; _key < _len; _key++) {
41
28
  predicates[_key] = arguments[_key];
42
29
  }
43
30
 
44
- return function (a) {
45
- return (0, _lodash.find)(predicates, function (p) {
46
- return false !== p(a);
47
- })(a);
48
- };
31
+ return a => (0, _lodash.find)(predicates, p => false !== p(a))(a);
49
32
  };
50
33
 
51
34
  exports.firstValid = firstValid;
52
35
 
53
- var stripHtmlTags = function stripHtmlTags(description) {
54
- return description ? description.replace(/(<([^>]+)>)/gi, '') : '';
55
- };
36
+ const stripHtmlTags = description => description ? description.replace(/(<([^>]+)>)/gi, '') : '';
56
37
 
57
38
  exports.stripHtmlTags = stripHtmlTags;
package/dist/cjs/index.js CHANGED
@@ -7,20 +7,20 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  Object.defineProperty(exports, "FacebookPreview", {
9
9
  enumerable: true,
10
- get: function get() {
10
+ get: function () {
11
11
  return _facebookPreview.default;
12
12
  }
13
13
  });
14
- Object.defineProperty(exports, "TwitterPreview", {
14
+ Object.defineProperty(exports, "SearchPreview", {
15
15
  enumerable: true,
16
- get: function get() {
17
- return _twitterPreview.default;
16
+ get: function () {
17
+ return _searchPreview.default;
18
18
  }
19
19
  });
20
- Object.defineProperty(exports, "SearchPreview", {
20
+ Object.defineProperty(exports, "TwitterPreview", {
21
21
  enumerable: true,
22
- get: function get() {
23
- return _searchPreview.default;
22
+ get: function () {
23
+ return _twitterPreview.default;
24
24
  }
25
25
  });
26
26
 
@@ -9,47 +9,47 @@ exports.default = SearchPreview;
9
9
 
10
10
  var _propTypes = _interopRequireDefault(require("prop-types"));
11
11
 
12
- var _react = _interopRequireDefault(require("react"));
13
-
14
12
  var _helpers = require("../helpers");
15
13
 
16
14
  require("./style.scss");
17
15
 
18
- /**
19
- * External dependencies
20
- */
16
+ var _jsxRuntime = require("@emotion/react/jsx-runtime");
21
17
 
22
- /**
23
- * Style dependencies
24
- */
25
- var URL_LENGTH = 68;
26
- var TITLE_LENGTH = 63;
27
- var DESCRIPTION_LENGTH = 160;
18
+ const URL_LENGTH = 68;
19
+ const TITLE_LENGTH = 63;
20
+ const DESCRIPTION_LENGTH = 160;
28
21
 
29
- var googleUrl = function googleUrl(url) {
30
- var breadcrumb = url.replace(/^[^/]+[/]*/, '').split('/').join(' › ');
31
- var truncateBreadcrumb = (0, _helpers.firstValid)((0, _helpers.shortEnough)(URL_LENGTH), (0, _helpers.hardTruncation)(URL_LENGTH));
22
+ const googleUrl = url => {
23
+ const breadcrumb = url.replace(/^[^/]+[/]*/, '').split('/').join(' › ');
24
+ const truncateBreadcrumb = (0, _helpers.firstValid)((0, _helpers.shortEnough)(URL_LENGTH), (0, _helpers.hardTruncation)(URL_LENGTH));
32
25
  return truncateBreadcrumb(breadcrumb);
33
26
  };
34
27
 
35
- var googleTitle = (0, _helpers.firstValid)((0, _helpers.shortEnough)(TITLE_LENGTH), (0, _helpers.truncatedAtSpace)(TITLE_LENGTH - 40, TITLE_LENGTH + 10), (0, _helpers.hardTruncation)(TITLE_LENGTH));
36
- var googleDescription = (0, _helpers.firstValid)((0, _helpers.shortEnough)(DESCRIPTION_LENGTH), (0, _helpers.truncatedAtSpace)(DESCRIPTION_LENGTH - 80, DESCRIPTION_LENGTH + 10), (0, _helpers.hardTruncation)(DESCRIPTION_LENGTH));
28
+ const googleTitle = (0, _helpers.firstValid)((0, _helpers.shortEnough)(TITLE_LENGTH), (0, _helpers.truncatedAtSpace)(TITLE_LENGTH - 40, TITLE_LENGTH + 10), (0, _helpers.hardTruncation)(TITLE_LENGTH));
29
+ const googleDescription = (0, _helpers.firstValid)((0, _helpers.shortEnough)(DESCRIPTION_LENGTH), (0, _helpers.truncatedAtSpace)(DESCRIPTION_LENGTH - 80, DESCRIPTION_LENGTH + 10), (0, _helpers.hardTruncation)(DESCRIPTION_LENGTH));
37
30
 
38
31
  function SearchPreview(_ref) {
39
- var description = _ref.description,
40
- title = _ref.title,
41
- url = _ref.url;
42
- return /*#__PURE__*/_react.default.createElement("div", {
43
- className: "search-preview"
44
- }, /*#__PURE__*/_react.default.createElement("div", {
45
- className: "search-preview__display"
46
- }, /*#__PURE__*/_react.default.createElement("div", {
47
- className: "search-preview__url"
48
- }, googleUrl(url), " \u25BE"), /*#__PURE__*/_react.default.createElement("div", {
49
- className: "search-preview__title"
50
- }, googleTitle(title)), /*#__PURE__*/_react.default.createElement("div", {
51
- className: "search-preview__description"
52
- }, googleDescription((0, _helpers.stripHtmlTags)(description)))));
32
+ let {
33
+ description,
34
+ title,
35
+ url
36
+ } = _ref;
37
+ return (0, _jsxRuntime.jsx)("div", {
38
+ className: "search-preview",
39
+ children: (0, _jsxRuntime.jsxs)("div", {
40
+ className: "search-preview__display",
41
+ children: [(0, _jsxRuntime.jsxs)("div", {
42
+ className: "search-preview__url",
43
+ children: [googleUrl(url), " \u25BE"]
44
+ }), (0, _jsxRuntime.jsx)("div", {
45
+ className: "search-preview__title",
46
+ children: googleTitle(title)
47
+ }), (0, _jsxRuntime.jsx)("div", {
48
+ className: "search-preview__description",
49
+ children: googleDescription((0, _helpers.stripHtmlTags)(description))
50
+ })]
51
+ })
52
+ });
53
53
  }
54
54
 
55
55
  SearchPreview.propTypes = {
@@ -1,7 +1,5 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
-
5
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
6
4
 
7
5
  Object.defineProperty(exports, "__esModule", {
@@ -9,76 +7,44 @@ Object.defineProperty(exports, "__esModule", {
9
7
  });
10
8
  exports.default = exports.TwitterPreview = void 0;
11
9
 
12
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
13
-
14
- var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
15
-
16
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
17
-
18
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
19
-
20
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
21
-
22
- var _createSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/createSuper"));
23
-
24
10
  var _propTypes = _interopRequireDefault(require("prop-types"));
25
11
 
26
- var _react = _interopRequireWildcard(require("react"));
12
+ var _react = require("react");
27
13
 
28
14
  var _tweet = require("./tweet");
29
15
 
30
16
  require("./style.scss");
31
17
 
32
- /**
33
- * External dependencies
34
- */
35
-
36
- /**
37
- * Internal dependencies
38
- */
39
-
40
- /**
41
- * Style dependencies
42
- */
43
- var TwitterPreview = /*#__PURE__*/function (_PureComponent) {
44
- (0, _inherits2.default)(TwitterPreview, _PureComponent);
45
-
46
- var _super = (0, _createSuper2.default)(TwitterPreview);
47
-
48
- function TwitterPreview() {
49
- (0, _classCallCheck2.default)(this, TwitterPreview);
50
- return _super.apply(this, arguments);
18
+ var _jsxRuntime = require("@emotion/react/jsx-runtime");
19
+
20
+ class TwitterPreview extends _react.PureComponent {
21
+ render() {
22
+ // Previous versions expected passed props to be the Twitter Card details for a single tweet,
23
+ // rather than an array of tweets. If the tweet array isn't passed, we can construct it from
24
+ // the old props.
25
+ const tweets = this.props.tweets || [{
26
+ text: '',
27
+ media: [],
28
+ card: { ...this.props,
29
+ type: 'large_image_summary' === this.props.type ? 'summary_large_image' : this.props.type
30
+ },
31
+ date: Date.now(),
32
+ name: 'Account Name',
33
+ profileImage: 'https://abs.twimg.com/sticky/default_profile_images/default_profile_bigger.png',
34
+ screenName: '@account'
35
+ }];
36
+ return (0, _jsxRuntime.jsx)("div", {
37
+ className: "twitter-preview",
38
+ children: tweets && tweets.map((tweet, index) => {
39
+ return (0, _jsxRuntime.jsx)(_tweet.Tweet, {
40
+ isLast: index + 1 === tweets.length,
41
+ ...tweet
42
+ }, `twitter-preview__tweet-${index}`);
43
+ })
44
+ });
51
45
  }
52
46
 
53
- (0, _createClass2.default)(TwitterPreview, [{
54
- key: "render",
55
- value: function render() {
56
- // Previous versions expected passed props to be the Twitter Card details for a single tweet,
57
- // rather than an array of tweets. If the tweet array isn't passed, we can construct it from
58
- // the old props.
59
- var tweets = this.props.tweets || [{
60
- text: '',
61
- media: [],
62
- card: (0, _objectSpread2.default)((0, _objectSpread2.default)({}, this.props), {}, {
63
- type: 'large_image_summary' === this.props.type ? 'summary_large_image' : this.props.type
64
- }),
65
- date: Date.now(),
66
- name: 'Account Name',
67
- profileImage: 'https://abs.twimg.com/sticky/default_profile_images/default_profile_bigger.png',
68
- screenName: '@account'
69
- }];
70
- return /*#__PURE__*/_react.default.createElement("div", {
71
- className: "twitter-preview"
72
- }, tweets && tweets.map(function (tweet, index) {
73
- return /*#__PURE__*/_react.default.createElement(_tweet.Tweet, (0, _extends2.default)({
74
- key: "twitter-preview__tweet-".concat(index),
75
- isLast: index + 1 === tweets.length
76
- }, tweet));
77
- }));
78
- }
79
- }]);
80
- return TwitterPreview;
81
- }(_react.PureComponent);
47
+ }
82
48
 
83
49
  exports.TwitterPreview = TwitterPreview;
84
50
  TwitterPreview.propTypes = {