@twreporter/react-article-components 1.6.0-rc.0 → 1.6.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 +24 -0
- package/lib/components/body/embedded-code.js +26 -95
- package/package.json +4 -4
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,30 @@
|
|
|
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
|
+
# [1.6.0](https://github.com/twreporter/twreporter-npm-packages/compare/@twreporter/react-article-components@1.6.0-rc.2...@twreporter/react-article-components@1.6.0) (2022-07-21)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @twreporter/react-article-components
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
# [1.6.0-rc.2](https://github.com/twreporter/twreporter-npm-packages/compare/@twreporter/react-article-components@1.6.0-rc.1...@twreporter/react-article-components@1.6.0-rc.2) (2022-07-20)
|
|
15
|
+
|
|
16
|
+
**Note:** Version bump only for package @twreporter/react-article-components
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
# [1.6.0-rc.1](https://github.com/twreporter/twreporter-npm-packages/compare/@twreporter/react-article-components@1.6.0-rc.0...@twreporter/react-article-components@1.6.0-rc.1) (2022-07-20)
|
|
23
|
+
|
|
24
|
+
**Note:** Version bump only for package @twreporter/react-article-components
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
|
|
6
30
|
# [1.6.0-rc.0](https://github.com/twreporter/twreporter-npm-packages/compare/@twreporter/react-article-components@1.5.0...@twreporter/react-article-components@1.6.0-rc.0) (2022-07-08)
|
|
7
31
|
|
|
8
32
|
|
|
@@ -7,13 +7,17 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
});
|
|
8
8
|
exports["default"] = exports.Caption = exports.Block = void 0;
|
|
9
9
|
|
|
10
|
-
var
|
|
10
|
+
var _body = _interopRequireDefault(require("../../constants/prop-types/body"));
|
|
11
11
|
|
|
12
12
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
13
13
|
|
|
14
|
+
var _react = _interopRequireDefault(require("react"));
|
|
15
|
+
|
|
14
16
|
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
15
17
|
|
|
16
|
-
var
|
|
18
|
+
var _theme = _interopRequireDefault(require("../../constants/theme"));
|
|
19
|
+
|
|
20
|
+
var _color = _interopRequireDefault(require("../../constants/color"));
|
|
17
21
|
|
|
18
22
|
var _forEach = _interopRequireDefault(require("lodash/forEach"));
|
|
19
23
|
|
|
@@ -21,20 +25,8 @@ var _get = _interopRequireDefault(require("lodash/get"));
|
|
|
21
25
|
|
|
22
26
|
var _merge = _interopRequireDefault(require("lodash/merge"));
|
|
23
27
|
|
|
24
|
-
var _theme = _interopRequireDefault(require("../../constants/theme"));
|
|
25
|
-
|
|
26
|
-
var _color = _interopRequireDefault(require("../../constants/color"));
|
|
27
|
-
|
|
28
|
-
var _body = _interopRequireDefault(require("../../constants/prop-types/body"));
|
|
29
|
-
|
|
30
28
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
31
29
|
|
|
32
|
-
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); }
|
|
33
|
-
|
|
34
|
-
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; }
|
|
35
|
-
|
|
36
|
-
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); }
|
|
37
|
-
|
|
38
30
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
39
31
|
|
|
40
32
|
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
|
@@ -100,8 +92,6 @@ function dispatchWindowLoadEvent() {
|
|
|
100
92
|
window.dispatchEvent(loadEvent);
|
|
101
93
|
}
|
|
102
94
|
|
|
103
|
-
var infogramEmbed = 'infogram';
|
|
104
|
-
|
|
105
95
|
var EmbeddedCode = /*#__PURE__*/function (_React$PureComponent) {
|
|
106
96
|
_inherits(EmbeddedCode, _React$PureComponent);
|
|
107
97
|
|
|
@@ -113,19 +103,18 @@ var EmbeddedCode = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
113
103
|
_classCallCheck(this, EmbeddedCode);
|
|
114
104
|
|
|
115
105
|
_this = _super.call(this, props);
|
|
106
|
+
_this._embedded = /*#__PURE__*/_react["default"].createRef();
|
|
107
|
+
return _this;
|
|
108
|
+
}
|
|
116
109
|
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
_defineProperty(_assertThisInitialized(_this), "executeScript", function () {
|
|
122
|
-
_this.setState({
|
|
123
|
-
isLoaded: true
|
|
124
|
-
});
|
|
110
|
+
_createClass(EmbeddedCode, [{
|
|
111
|
+
key: "componentDidMount",
|
|
112
|
+
value: function componentDidMount() {
|
|
113
|
+
var _this2 = this;
|
|
125
114
|
|
|
126
|
-
var node =
|
|
115
|
+
var node = this._embedded.current;
|
|
127
116
|
|
|
128
|
-
var scripts = _.get(
|
|
117
|
+
var scripts = _.get(this.props, ['data', 'content', 0, 'scripts']);
|
|
129
118
|
|
|
130
119
|
if (node && Array.isArray(scripts)) {
|
|
131
120
|
var scriptsCount = scripts.length;
|
|
@@ -140,7 +129,7 @@ var EmbeddedCode = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
140
129
|
try {
|
|
141
130
|
scriptEle.setAttribute(name, value);
|
|
142
131
|
} catch (err) {
|
|
143
|
-
console.error('Failed to set an attribute to the embbeded script.\n', "embedded element id: ".concat(_.get(
|
|
132
|
+
console.error('Failed to set an attribute to the embbeded script.\n', "embedded element id: ".concat(_.get(_this2.props, 'data.id', ''), "\n"), "attribute name: ".concat(name, "\n"), "attribute value: ".concat(value, "\n"), 'error:\n', err);
|
|
144
133
|
}
|
|
145
134
|
});
|
|
146
135
|
|
|
@@ -166,71 +155,31 @@ var EmbeddedCode = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
166
155
|
|
|
167
156
|
node.appendChild(scriptsFragment);
|
|
168
157
|
}
|
|
169
|
-
});
|
|
170
|
-
|
|
171
|
-
_defineProperty(_assertThisInitialized(_this), "loadEmbed", function () {
|
|
172
|
-
if (!_this.state.isLoaded) {
|
|
173
|
-
_this.executeScript();
|
|
174
|
-
}
|
|
175
|
-
});
|
|
176
|
-
|
|
177
|
-
_this._embedded = /*#__PURE__*/_react["default"].createRef();
|
|
178
|
-
|
|
179
|
-
var _$get = _.get(_this.props, ['data', 'content', 0], {}),
|
|
180
|
-
caption = _$get.caption,
|
|
181
|
-
embeddedCodeWithoutScript = _$get.embeddedCodeWithoutScript;
|
|
182
|
-
|
|
183
|
-
_this._caption = caption;
|
|
184
|
-
_this._embeddedCodeWithoutScript = embeddedCodeWithoutScript;
|
|
185
|
-
return _this;
|
|
186
|
-
}
|
|
187
|
-
|
|
188
|
-
_createClass(EmbeddedCode, [{
|
|
189
|
-
key: "componentDidMount",
|
|
190
|
-
value: function componentDidMount() {
|
|
191
|
-
var _this$_embeddedCodeWi;
|
|
192
|
-
|
|
193
|
-
// Delay loading infogram in loadEmbed()
|
|
194
|
-
if (!((_this$_embeddedCodeWi = this._embeddedCodeWithoutScript) !== null && _this$_embeddedCodeWi !== void 0 && _this$_embeddedCodeWi.includes(infogramEmbed))) {
|
|
195
|
-
this.executeScript();
|
|
196
|
-
}
|
|
197
|
-
}
|
|
198
|
-
}, {
|
|
199
|
-
key: "componentWillUnmount",
|
|
200
|
-
value: function componentWillUnmount() {
|
|
201
|
-
this._embedded = null;
|
|
202
|
-
this._caption = null;
|
|
203
|
-
this._embeddedCodeWithoutScript = null;
|
|
204
158
|
}
|
|
205
159
|
}, {
|
|
206
160
|
key: "render",
|
|
207
161
|
value: function render() {
|
|
208
|
-
var _this$_embeddedCodeWi2;
|
|
209
|
-
|
|
210
162
|
var className = this.props.className;
|
|
211
163
|
|
|
212
|
-
var
|
|
164
|
+
var _$get = _.get(this.props, ['data', 'content', 0], {}),
|
|
165
|
+
caption = _$get.caption,
|
|
166
|
+
embeddedCodeWithoutScript = _$get.embeddedCodeWithoutScript;
|
|
167
|
+
|
|
168
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
213
169
|
className: className
|
|
214
170
|
}, /*#__PURE__*/_react["default"].createElement(Block, {
|
|
215
171
|
ref: this._embedded,
|
|
216
172
|
dangerouslySetInnerHTML: {
|
|
217
|
-
__html:
|
|
173
|
+
__html: embeddedCodeWithoutScript
|
|
218
174
|
}
|
|
219
|
-
}),
|
|
220
|
-
|
|
221
|
-
if ((_this$_embeddedCodeWi2 = this._embeddedCodeWithoutScript) !== null && _this$_embeddedCodeWi2 !== void 0 && _this$_embeddedCodeWi2.includes(infogramEmbed)) {
|
|
222
|
-
return this.state.isLoaded ? embed : null;
|
|
223
|
-
}
|
|
224
|
-
|
|
225
|
-
return embed;
|
|
175
|
+
}), caption ? /*#__PURE__*/_react["default"].createElement(Caption, null, caption) : null);
|
|
226
176
|
}
|
|
227
177
|
}]);
|
|
228
178
|
|
|
229
179
|
return EmbeddedCode;
|
|
230
|
-
}(_react["default"].PureComponent);
|
|
231
|
-
// so here we apply waypoint wrapper to load infogram dynamically to avoid layout shifts for anchors.
|
|
232
|
-
// https://twreporter-org.atlassian.net/browse/TWREPORTER-60
|
|
180
|
+
}(_react["default"].PureComponent);
|
|
233
181
|
|
|
182
|
+
exports["default"] = EmbeddedCode;
|
|
234
183
|
|
|
235
184
|
_defineProperty(EmbeddedCode, "propTypes", {
|
|
236
185
|
className: _propTypes["default"].string,
|
|
@@ -239,22 +188,4 @@ _defineProperty(EmbeddedCode, "propTypes", {
|
|
|
239
188
|
|
|
240
189
|
_defineProperty(EmbeddedCode, "defaultProps", {
|
|
241
190
|
className: ''
|
|
242
|
-
});
|
|
243
|
-
|
|
244
|
-
var WayPointWrapper = function WayPointWrapper(props) {
|
|
245
|
-
var embedRef = (0, _react.useRef)(null);
|
|
246
|
-
|
|
247
|
-
var onEnter = function onEnter() {
|
|
248
|
-
embedRef.current.loadEmbed();
|
|
249
|
-
};
|
|
250
|
-
|
|
251
|
-
return /*#__PURE__*/_react["default"].createElement(_reactWaypoint.Waypoint, {
|
|
252
|
-
onEnter: onEnter,
|
|
253
|
-
fireOnRapidScroll: false
|
|
254
|
-
}, /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(EmbeddedCode, _extends({}, props, {
|
|
255
|
-
ref: embedRef
|
|
256
|
-
}))));
|
|
257
|
-
};
|
|
258
|
-
|
|
259
|
-
var _default = WayPointWrapper;
|
|
260
|
-
exports["default"] = _default;
|
|
191
|
+
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@twreporter/react-article-components",
|
|
3
|
-
"version": "1.6.0
|
|
3
|
+
"version": "1.6.0",
|
|
4
4
|
"description": "The Reporter react article components, which are used in article page",
|
|
5
5
|
"main": "lib/components/article-page.js",
|
|
6
6
|
"repository": "https://github.com/twreporter/twreporter-npm-packages.git",
|
|
@@ -25,9 +25,9 @@
|
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
27
|
"@twreporter/core": "^1.4.1",
|
|
28
|
-
"@twreporter/react-components": "^8.
|
|
28
|
+
"@twreporter/react-components": "^8.11.0",
|
|
29
29
|
"@twreporter/redux": "^7.2.2",
|
|
30
|
-
"@twreporter/universal-header": "^2.2.
|
|
30
|
+
"@twreporter/universal-header": "^2.2.11",
|
|
31
31
|
"howler": "^2.2.3",
|
|
32
32
|
"lodash": "^4.17.11",
|
|
33
33
|
"memoize-one": "^5.0.5",
|
|
@@ -40,5 +40,5 @@
|
|
|
40
40
|
"files": [
|
|
41
41
|
"lib"
|
|
42
42
|
],
|
|
43
|
-
"gitHead": "
|
|
43
|
+
"gitHead": "22127d74e0d0433e87b427aed82394972cade963"
|
|
44
44
|
}
|