@atlaskit/renderer
Version:
Renderer component
29 lines • 1.11 kB
JavaScript
import React from 'react';
export function renderTextSegments(segments, textHighlighter, marksList, startPos) {
var Component = textHighlighter === null || textHighlighter === void 0 ? void 0 : textHighlighter.component;
var marks = new Set(marksList.map(function (m) {
return m.type.name;
}));
function renderSegment(segment) {
var idx = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
if (segment.type === 'plain' || !Component) {
return segment.text;
}
return /*#__PURE__*/React.createElement("span", {
"data-highlighted": true,
"data-vc": "highlighted-text",
key: "".concat(segment.text, "_").concat(startPos, "_").concat(idx)
}, /*#__PURE__*/React.createElement(Component, {
match: segment.text,
groups: segment.groups,
marks: marks,
startPos: startPos + idx
}, segment.text));
}
if (segments.length === 1) {
return renderSegment(segments[0]);
}
return /*#__PURE__*/React.createElement(React.Fragment, {
key: "text-wrapper_".concat(startPos)
}, segments.map(renderSegment));
}