@atlaskit/renderer
Version:
Renderer component
36 lines (35 loc) • 1.38 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.renderTextSegments = renderTextSegments;
var _react = _interopRequireDefault(require("react"));
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.default.createElement("span", {
"data-highlighted": true,
"data-vc": "highlighted-text",
key: "".concat(segment.text, "_").concat(startPos, "_").concat(idx)
}, /*#__PURE__*/_react.default.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.default.createElement(_react.default.Fragment, {
key: "text-wrapper_".concat(startPos)
}, segments.map(renderSegment));
}