{"version":3,"sources":["../../../src/components/ContentItem/index.js"],"names":["dayjs","extend","relativeTime","LOCALES","CommentItem","props","state","showInput","showPreviewer","previewerIndex","popoverVisible","handleToggleInput","bind","renderTextWithReply","hidePreviewer","handleVisibleChange","handleUserAvaClick","index","setState","visible","user_id","userAvaClick","app","text","content","newText","reply","user_name","commentId","replyId","action","showReply","onShowReply","page","locale","showHoverCard","showEdit","newContent","images","indexOf","IMAGE_SPLIT","split","pop","join","imageList","needClear","length","imgs","splice","type","IconColor","favor_count","showDivider","reply_count","userId","user_avatar","avatar","backgroundImage","cursor","intl","get","marginLeft","created","format","fromNow","__html","map","item","i","total","handleEdit","replyPage","sDeleteReply","id","sDeleteComment","sReplyFavor","favored","sCommentFavor","color","children","Component","propTypes","PropTypes","object","isRequired","oneOf","func","bool","defaultProps"],"mappings":"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","file":"index.js","sourcesContent":["import React, { Component } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { Icon, Tooltip, Popconfirm, Popover } from \"antd\";\nimport dayjs from \"dayjs\";\nimport \"dayjs/locale/zh-cn\";\n// import 'dayjs/locale/es';\nimport relativeTime from \"dayjs/plugin/relativeTime\";\nimport intl from \"react-intl-universal\";\nimport AvatarHoverCard from \"./AvatarHoverCard\";\nimport Comment from \"../../Comment\";\nimport CommentInput from \"../CommentInput\";\nimport avatar from \"../../avatar\";\nimport { renderContent } from \"../../helper\";\nimport { IMAGE_SPLIT } from \"../../constant\";\nimport \"./index.css\";\nimport ImagePreviewer from \"../ImagePreviewer/ImagePreviewer\";\n\n// dayjs.locale(\"zh-cn\");\ndayjs.extend(relativeTime);\n\nconst LOCALES = {\n \"zh-CN\": \"zh-cn\"\n};\n\nclass CommentItem extends Component {\n constructor(props) {\n super(props);\n this.state = {\n showInput: false,\n showPreviewer: false,\n previewerIndex: 0,\n popoverVisible: false\n };\n this.handleToggleInput = this.handleToggleInput.bind(this);\n this.renderTextWithReply = this.renderTextWithReply.bind(this);\n this.showPreviewer = this.showPreviewer.bind(this);\n this.hidePreviewer = this.hidePreviewer.bind(this);\n this.handleVisibleChange = this.handleVisibleChange.bind(this);\n this.handleUserAvaClick = this.handleUserAvaClick.bind(this);\n }\n\n showPreviewer(index) {\n this.setState({\n showPreviewer: true,\n previewerIndex: index\n });\n }\n\n hidePreviewer() {\n this.setState({\n showPreviewer: false\n });\n }\n\n handleToggleInput() {\n this.setState({ showInput: !this.state.showInput });\n }\n\n handleVisibleChange(visible) {\n this.setState({\n popoverVisible: visible\n });\n }\n\n handleUserAvaClick() {\n const { user_id } = this.props;\n const { userAvaClick } = this.props.app;\n if (userAvaClick) {\n userAvaClick(user_id);\n }\n }\n\n renderTextWithReply(text, content) {\n let newText = text;\n const { reply } = content;\n if (reply) {\n // newText = `${newText} //@${\n // reply.user_name\n // } ${reply.content}`;\n newText = `${newText} //@${reply.user_name} ${reply.content}`;\n // newText = (\n // \n // {newText}\n // @{reply.user_name}{reply.content}\n // \n // )\n if (reply.reply) {\n return this.renderTextWithReply(newText, reply);\n }\n }\n return newText;\n }\n\n render() {\n const {\n commentId,\n replyId,\n content,\n action,\n showReply,\n onShowReply,\n app,\n user_id,\n page\n } = this.props;\n const { locale, showHoverCard, showEdit } = this.props.app;\n const { showInput } = this.state;\n let newContent = content.content;\n let images = \"\";\n if (newContent.indexOf(IMAGE_SPLIT) !== -1) {\n newContent = newContent.split(IMAGE_SPLIT);\n images = newContent.pop();\n newContent = newContent.join(\"\");\n }\n\n const imageList = images.split(\",\");\n\n // 在3, 7前需要换行\n const needClear =\n imageList.length === 5 ||\n imageList.length === 6 ||\n imageList.length === 9;\n const imgs = [...imageList];\n if (needClear) {\n if (imgs.length > 6) {\n imgs.splice(3, 0, { type: \"divider\" });\n imgs.splice(7, 0, { type: \"divider\" });\n } else {\n imgs.splice(3, 0, { type: \"divider\" });\n }\n }\n const IconColor = content.favor_count > 0 ? \"#71C135\" : \"#4a90e2\";\n const showDivider =\n content.reply_count ||\n (showEdit && app.userId === content.user_id) ||\n app.userId === content.user_id;\n return (\n
\n
\n {showHoverCard ? (\n \n }\n // placement={this.props.placement}\n // trigger=\"click\"\n visible={this.state.popoverVisible}\n onVisibleChange={this.handleVisibleChange}\n overlayClassName=\"avatar-hover-card-overlay\"\n >\n \n \n ) : (\n \n )}\n
\n
\n
\n {/* \n {content.user_name || \"暂无昵称\"}\n */}\n \n {content.user_name || intl.get(\"comment.tourist\")}\n \n \n \n {LOCALES[locale]\n ? dayjs(content.created * 1000)\n .locale(LOCALES[locale])\n .fromNow()\n : dayjs(content.created * 1000).fromNow()}\n \n \n
\n \n {// image为空时不渲染comment-item-image\n imageList.length > 0 && imageList[0] !== \"\" && (\n
\n {!this.state.showPreviewer &&\n imgs.map((item, index) => {\n if (item.type === \"divider\") {\n return (\n
\n
\n {/* {item} */}\n
\n );\n }\n return (\n {\n let i = index;\n if (needClear) {\n if (index > 3) {\n i -= 1;\n }\n if (index > 7) {\n i -= 1;\n }\n }\n this.showPreviewer(i);\n }}\n >\n \n {/* {item} */}\n
\n );\n })}\n {this.state.showPreviewer && (\n \n )}\n
\n
\n )}\n
\n {content.reply_count ? (\n \n ) : null}\n {showEdit && app.userId === content.user_id && (\n \n this.props.app.handleEdit({\n action,\n replyId,\n commentId,\n userId: content.user_id,\n content,\n replyPage: page\n })\n }\n />\n )}\n {app.userId === content.user_id && (\n {\n if (replyId) {\n app.sDeleteReply(content.id, commentId);\n return;\n }\n app.sDeleteComment(content.id);\n }}\n okText={intl.get(\"popConfirm.ok\")}\n cancelText={intl.get(\"popConfirm.cancel\")}\n >\n {/* \n   {intl.get(\"popConfirm.delete\")}\n */}\n \n \n )}\n {showDivider && }\n {\n if (replyId) {\n // 如果有 replyId,则说明是评论的回复\n app.sReplyFavor(content.id, commentId, content.favored);\n return;\n }\n app.sCommentFavor(content.id, content.favored);\n }}\n style={{ color: `${IconColor}` }}\n >\n \n
\n  {content.favor_count}\n \n   {intl.get(\"comment.reply\")}\n
\n
\n
\n\n {showInput && (\n \n )}\n \n );\n }\n}\n\nCommentItem.propTypes = {\n content: PropTypes.object.isRequired,\n // comment 评论\n // reply 评论的回复\n // replyToReply 回复的回复\n action: PropTypes.oneOf([\"comment\", \"reply\", \"replyToReply\"]),\n onShowReply: PropTypes.func,\n showEdit: PropTypes.bool\n};\n\nCommentItem.defaultProps = {\n action: \"comment\",\n onShowReply: () => {},\n showEdit: false\n};\n\nexport default Comment(CommentItem);\n"]}