@happeouikit/content-renderer 3.0.1 → 3.0.2
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 +8 -0
- package/dist/ContentRenderer.js +21 -3
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 3.0.3
|
|
4
|
+
|
|
5
|
+
- [Added] Added prop `forceDefaultLinkTarget` that will force external links with `target="_blank"` and removes `target` from internal links.
|
|
6
|
+
|
|
7
|
+
## 3.0.2
|
|
8
|
+
|
|
9
|
+
- [Fixed] ContentRenderer now applies styling options from Pages
|
|
10
|
+
|
|
3
11
|
## 3.0.1
|
|
4
12
|
|
|
5
13
|
- [Fixed] ContentRenderer should now deal with all kinds of xss
|
package/dist/ContentRenderer.js
CHANGED
|
@@ -87,7 +87,8 @@ var ContentRenderer = function ContentRenderer(_ref) {
|
|
|
87
87
|
useHashAutoscroll = _ref.useHashAutoscroll,
|
|
88
88
|
_ref$hashAutoscrollTo = _ref.hashAutoscrollTopMargin,
|
|
89
89
|
hashAutoscrollTopMargin = _ref$hashAutoscrollTo === void 0 ? 0 : _ref$hashAutoscrollTo,
|
|
90
|
-
decodeHtmlEntitiesOnRender = _ref.decodeHtmlEntitiesOnRender
|
|
90
|
+
decodeHtmlEntitiesOnRender = _ref.decodeHtmlEntitiesOnRender,
|
|
91
|
+
forceDefaultLinkTarget = _ref.forceDefaultLinkTarget;
|
|
91
92
|
var element = useRef({});
|
|
92
93
|
|
|
93
94
|
var _useState = useState([]),
|
|
@@ -135,6 +136,21 @@ var ContentRenderer = function ContentRenderer(_ref) {
|
|
|
135
136
|
});
|
|
136
137
|
}
|
|
137
138
|
|
|
139
|
+
var linkElems = forceDefaultLinkTarget ? element.current.querySelectorAll("a") : [];
|
|
140
|
+
|
|
141
|
+
if (linkElems.length > 0) {
|
|
142
|
+
var currentOrigin = window.origin;
|
|
143
|
+
linkElems.forEach(function (link) {
|
|
144
|
+
var href = link.href;
|
|
145
|
+
|
|
146
|
+
if (href.startsWith(currentOrigin)) {
|
|
147
|
+
delete link.target;
|
|
148
|
+
} else {
|
|
149
|
+
link.target = "_blank";
|
|
150
|
+
}
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
|
|
138
154
|
var blockElems = element.current.querySelectorAll(ELEMENT_TYPE_PRE);
|
|
139
155
|
|
|
140
156
|
if (blockElems.length > 0) {
|
|
@@ -174,7 +190,7 @@ var ContentRenderer = function ContentRenderer(_ref) {
|
|
|
174
190
|
if (useHashAutoscroll) {
|
|
175
191
|
scrollAndHighlightHash();
|
|
176
192
|
}
|
|
177
|
-
}, [element, createAnchors, useHashAutoscroll, scrollAndHighlightHash]);
|
|
193
|
+
}, [element, createAnchors, forceDefaultLinkTarget, useHashAutoscroll, scrollAndHighlightHash]);
|
|
178
194
|
var safeText = useMemo(function () {
|
|
179
195
|
var lowercaseType = type && typeof type === "string" ? type.toLowerCase() : "html";
|
|
180
196
|
var transformedContent = lowercaseType === "text" ? toSafeText("<p>".concat(content, "</p>")) : toHtml(content, lowercaseType);
|
|
@@ -190,7 +206,7 @@ var ContentRenderer = function ContentRenderer(_ref) {
|
|
|
190
206
|
|
|
191
207
|
return /*#__PURE__*/_jsxs(_Fragment, {
|
|
192
208
|
children: [/*#__PURE__*/_jsx(Wrapper, {
|
|
193
|
-
className: "content-renderer",
|
|
209
|
+
className: "content-renderer ".concat(widgetType === "page" ? "fr-view pages-text" : ""),
|
|
194
210
|
ref: element,
|
|
195
211
|
widgetType: widgetType,
|
|
196
212
|
headerFont: headerFont,
|
|
@@ -256,6 +272,7 @@ ContentRenderer.propTypes = {
|
|
|
256
272
|
headerFont: PropTypes.string,
|
|
257
273
|
decodeHtmlEntitiesOnRender: PropTypes.bool,
|
|
258
274
|
createAnchors: PropTypes.bool,
|
|
275
|
+
forceDefaultLinkTarget: PropTypes.bool,
|
|
259
276
|
useHashAutoscroll: PropTypes.bool,
|
|
260
277
|
hashAutoscrollTopMargin: PropTypes.number
|
|
261
278
|
};
|
|
@@ -268,6 +285,7 @@ ContentRenderer.defaultProps = {
|
|
|
268
285
|
decodeHtmlEntitiesOnRender: false,
|
|
269
286
|
createAnchors: false,
|
|
270
287
|
useHashAutoscroll: true,
|
|
288
|
+
forceDefaultLinkTarget: false,
|
|
271
289
|
hashAutoscrollTopMargin: 0
|
|
272
290
|
};
|
|
273
291
|
export default ContentRenderer;
|