@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 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
@@ -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;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@happeouikit/content-renderer",
3
- "version": "3.0.1",
3
+ "version": "3.0.2",
4
4
  "description": "Rendering html and markdown content",
5
5
  "main": "dist/index.js",
6
6
  "module": "src/index.js",