@atlaskit/renderer
Version:
Renderer component
26 lines • 976 B
JavaScript
import React from 'react';
export function renderTextSegments(segments, textHighlighter, marksList, startPos) {
const Component = textHighlighter === null || textHighlighter === void 0 ? void 0 : textHighlighter.component;
const marks = new Set(marksList.map(m => m.type.name));
function renderSegment(segment, idx = 0) {
if (segment.type === 'plain' || !Component) {
return segment.text;
}
return /*#__PURE__*/React.createElement("span", {
"data-highlighted": true,
"data-vc": "highlighted-text",
key: `${segment.text}_${startPos}_${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_${startPos}`
}, segments.map(renderSegment));
}