@sendbird/uikit-react-native-foundation
Version:
A foundational UI kit for building chat-enabled React Native apps.
41 lines (40 loc) • 1.4 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _react = _interopRequireDefault(require("react"));
var _uikitUtils = require("@sendbird/uikit-utils");
var _Text = _interopRequireDefault(require("../Text"));
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
const RegexText = ({
children,
patterns,
...props
}) => {
if (patterns.length === 0 || typeof children !== 'string') return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, children);
const matchedTexts = [children];
patterns.forEach(({
regex,
replacer
}, patterIndex) => {
const matchedTextsTemp = matchedTexts.concat();
let offset = 0;
matchedTextsTemp.forEach((text, index) => {
if (typeof text === 'string' && text) {
const children = (0, _uikitUtils.replaceWithRegex)(text, regex, params => replacer({
...params,
parentProps: props,
keyPrefix: index + params.keyPrefix
}), String(patterIndex));
if (children.length > 1) {
matchedTexts.splice(index + offset, 1, ...children);
offset += children.length - 1;
}
}
});
});
return /*#__PURE__*/_react.default.createElement(_Text.default, props, matchedTexts);
};
var _default = exports.default = RegexText;
//# sourceMappingURL=index.js.map