/**
 * 评论组件本质上是一个简易富文本，评论的内容为元素类型的字符串，需要使用dangerouslySetInnerHTML来渲染内容；
 * 但是特殊场景下，业务层可能需要自定义“@内容”、“标签内容”，所以我们需要暴露接口让业务层自定义展示评论内容；
 */
import React, { Fragment } from 'react';
import CommentEditor from "../../../comment-editor";
var parseCommentHtml = CommentEditor.parseCommentHtml;
var SPLIT = '_$2E87CED34FE16199F616D894D1C31963'; // MD5加密字符

var SetInnerHtml = function SetInnerHtml(_ref) {
  var html = _ref.html,
    renderAt = _ref.renderAt;
  var renderHtml = function renderHtml() {
    var _parseCommentHtml = parseCommentHtml(html),
      atStrList = _parseCommentHtml.atStrList,
      atList = _parseCommentHtml.atList;

    // 自定义@内容
    if (renderAt && atStrList) {
      atStrList.forEach(function (str) {
        return html = html.replaceAll(str, SPLIT);
      }); // 替换字符串中需要动态替换的内容
      var temp = html.split(SPLIT); // 返回去掉动态渲染内容的字符串数组

      return temp.map(function (str, index) {
        return /*#__PURE__*/React.createElement(Fragment, {
          key: index.toString()
        }, /*#__PURE__*/React.createElement("span", {
          dangerouslySetInnerHTML: {
            __html: str
          }
        }), temp.length > 1 && index < temp.length - 1 && renderAt(atList[index]));
      });
    }
    return /*#__PURE__*/React.createElement("span", {
      dangerouslySetInnerHTML: {
        __html: html
      }
    });
  };
  return /*#__PURE__*/React.createElement(React.Fragment, null, renderHtml());
};
export default SetInnerHtml;