UNPKG

rn-text-highlight

Version:
53 lines (46 loc) 1.56 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _react = _interopRequireDefault(require("react")); var _reactNative = require("react-native"); var _propTypes = _interopRequireDefault(require("prop-types")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } const RnTextHighlight = e => { const { originText: r, keyword: l, keywordStyle: o, textStyle: t } = e; return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_reactNative.Text, { style: t }, (() => { if (!l || 0 === l.length) return /*#__PURE__*/_react.default.createElement(_reactNative.Text, null, r); var e = l.split("").reduce((e, t, r) => r === l.length - 1 ? e + `(${t})` : e + `(${t})|`, ""), e = new RegExp(e); const t = r.split(e); return t.map((e, t) => e ? l.includes(e) ? /*#__PURE__*/_react.default.createElement(_reactNative.Text, { style: o, key: t }, e) : /*#__PURE__*/_react.default.createElement(_reactNative.Text, { key: t }, e) : null); })())); }; var _default = RnTextHighlight; exports.default = _default; RnTextHighlight.propTypes = { originText: _propTypes.default.string, keyword: _propTypes.default.string, keywordStyle: _propTypes.default.object, textStyle: _propTypes.default.object }, RnTextHighlight.defaultProps = { originText: "", keyword: "", textStyle: {}, keywordStyle: { color: "#f40" } };