UNPKG

@sendbird/uikit-react-native-foundation

Version:

A foundational UI kit for building chat-enabled React Native apps.

41 lines (40 loc) 1.4 kB
"use strict"; 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