通用评论

App.js.map 31KB

1
  1. {"version":3,"sources":["../src/App.js"],"names":["App","props","state","loading","oss","list","page","total","isNoMoreComment","initDone","locale","handleChangeLoading","bind","sCreateComment","sDeleteComment","sCommentFavor","sCreateReply","sDeleteReply","errorHandler","sGetComment","sReplyFavor","sGetReply","sOssSts","axios","defaults","withCredentials","token","headers","common","loadLocales","currentLocale","locales","intl","determineLocale","urlLocaleKey","SUPPORT_LOCALES","find","item","value","languageURL","LANGUAGE_LINK","fetch","then","response","status","Error","json","data","init","setState","msg","info","showError","error","onError","localResponse","LOCALES_RESPONSE","ERROR_DEFAULT","key","pageType","API","type","businessId","limit","get","newList","oldList","filter","o","isTemporary","concat","window","scrollTo","onCountChange","catch","finally","commentId","map","id","replies","reply_count","reply_page","isNoMoreReply","content","cb","businessUserId","method","business_id","business_user_id","showAlertComment","success","unshift","res","onDelete","COMMENT_TYPE","COMMENT","showAlertReply","comment_id","push","replyId","REPLY","favored","showAlertFavor","favor_count","r","showEditor","children","showList","marginTop","Component","propTypes","PropTypes","number","isRequired","string","bool","func","userId","onPageChange","onGetMoreBtnClick","defaultProps","LIMIT","Editor","RenderText"],"mappings":"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","file":"App.js","sourcesContent":["import React, { Component } from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport { message } from \"antd\";\r\nimport axios from \"axios\";\r\nimport intl from \"react-intl-universal\";\r\nimport { ERROR_DEFAULT, LIMIT, COMMENT_TYPE, LANGUAGE_LINK } from \"./constant\";\r\nimport { CommentContext } from \"./Comment\";\r\nimport { isFunction } from \"./helper\";\r\nimport CommentInput from \"./components/CommentInput\";\r\nimport CommentList from \"./components/CommentList\";\r\nimport Editor from \"./components/Editor\";\r\nimport RenderText from \"./components/RenderText\";\r\nimport { SUPPORT_LOCALES, LOCALES_RESPONSE } from \"./lang\";\r\nimport \"./App.css\";\r\n\r\nclass App extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n loading: {},\r\n\r\n // oss 配置\r\n oss: {},\r\n\r\n // 评论数据\r\n list: [],\r\n page: 1,\r\n total: 0,\r\n // 是否没有更多评论了\r\n isNoMoreComment: false,\r\n initDone: false,\r\n locale: \"zh-CN\"\r\n };\r\n this.handleChangeLoading = this.handleChangeLoading.bind(this);\r\n this.sCreateComment = this.sCreateComment.bind(this);\r\n this.sDeleteComment = this.sDeleteComment.bind(this);\r\n this.sCommentFavor = this.sCommentFavor.bind(this);\r\n this.sCreateReply = this.sCreateReply.bind(this);\r\n this.sDeleteReply = this.sDeleteReply.bind(this);\r\n this.errorHandler = this.errorHandler.bind(this);\r\n this.sGetComment = this.sGetComment.bind(this);\r\n this.sReplyFavor = this.sReplyFavor.bind(this);\r\n this.sGetReply = this.sGetReply.bind(this);\r\n this.sOssSts = this.sOssSts.bind(this);\r\n }\r\n\r\n componentWillMount() {\r\n this.axios = axios;\r\n this.axios.defaults.withCredentials = true;\r\n if (this.props.token) {\r\n this.axios.defaults.headers.common[\"Authorization\"] = `Bearer ${\r\n this.props.token\r\n }`;\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n this.loadLocales();\r\n }\r\n\r\n /**\r\n * 加载语言包\r\n * 只能根据url或者传入的props来确定加载哪个语言包\r\n * 优先级:传入的props > url\r\n */\r\n loadLocales() {\r\n let { locales: currentLocale } = this.props;\r\n if (!currentLocale) {\r\n currentLocale = intl.determineLocale({\r\n urlLocaleKey: \"lang\"\r\n });\r\n }\r\n currentLocale = SUPPORT_LOCALES.find(item => item.value === currentLocale)\r\n ? currentLocale\r\n : \"zh-CN\";\r\n // 使用绝对路径\r\n const languageURL = `${LANGUAGE_LINK}/${currentLocale}.json`;\r\n return fetch(languageURL)\r\n .then((response) => {\r\n if (response.status >= 400) {\r\n throw new Error('Bad response from server');\r\n }\r\n return response.json();\r\n })\r\n .then((data) => {\r\n // console.log('data: ', data);\r\n intl.init({\r\n currentLocale,\r\n locales: {\r\n [currentLocale]: data,\r\n },\r\n }).then(() => {\r\n this.setState({ initDone: true, locale: currentLocale });\r\n });\r\n });\r\n }\r\n\r\n error(msg, info = {}) {\r\n if (this.props.showError) {\r\n message.error(msg);\r\n }\r\n if (this.props.onError) {\r\n this.props.onError(msg, info);\r\n }\r\n }\r\n\r\n errorHandler(error) {\r\n const { locale } = this.state;\r\n const localResponse = LOCALES_RESPONSE[locale];\r\n if (error.response && error.response.data && error.response.data.msg) {\r\n this.error(localResponse[error.response.data.msg] || ERROR_DEFAULT, {\r\n response: error.response\r\n });\r\n return;\r\n }\r\n this.error(localResponse[error.response.data.msg] || ERROR_DEFAULT, {\r\n response: error.response\r\n });\r\n }\r\n\r\n /**\r\n * 改变 loading 状态\r\n * @param {string} key key\r\n * @param {string} value value\r\n */\r\n handleChangeLoading(key, value) {\r\n const { loading } = this.state;\r\n loading[key] = value;\r\n this.setState({ loading });\r\n }\r\n\r\n /**\r\n * 获取评论列表\r\n */\r\n sGetComment({ page = 1 } = {}) {\r\n const { pageType } = this.props;\r\n this.handleChangeLoading(\"sGetComment\", true);\r\n const { API, type, businessId, limit } = this.props;\r\n this.axios\r\n .get(\r\n `${API}/comments?type=${type}&business_id=${businessId}&page=${page}&limit=${limit}`\r\n )\r\n .then(response => {\r\n const { list, page, total } = response.data;\r\n if (list) {\r\n let newList = list;\r\n let { list: oldList } = this.state;\r\n if (pageType === \"more\") {\r\n if (page > 1) {\r\n // 删除临时数据\r\n oldList = oldList.filter(o => !o.isTemporary);\r\n newList = oldList.concat(newList);\r\n }\r\n } else if (pageType === \"pagination\") {\r\n // TODO 滚动到顶部\r\n window.scrollTo(0, 0);\r\n }\r\n\r\n this.setState({\r\n list: newList,\r\n page,\r\n total\r\n });\r\n this.props.onCountChange(total);\r\n } else {\r\n message.info(intl.get(\"message.noMoreComment\"));\r\n this.setState({\r\n isNoMoreComment: true\r\n });\r\n }\r\n })\r\n .catch(this.errorHandler)\r\n .finally(() => {\r\n this.handleChangeLoading(\"sGetComment\", false);\r\n });\r\n }\r\n\r\n /**\r\n * 获取更多回复\r\n */\r\n sGetReply({ commentId, page = 1 } = {}) {\r\n this.handleChangeLoading(\"sGetReply\", true);\r\n const { API, limit } = this.props;\r\n this.axios\r\n .get(`${API}/replies?comment_id=${commentId}&page=${page}&limit=${limit}`)\r\n .then(response => {\r\n if (!response.data.list) {\r\n message.info(intl.get(\"message.noMoreData\"));\r\n }\r\n const list = this.state.list.map(item => {\r\n if (item.id === commentId) {\r\n if (!item.replies) item.replies = [];\r\n if (response.data.list) {\r\n if (page === 1) {\r\n // 如果当前页数为第一页,则清空当前所有的 replies\r\n // 并将获取到的 replies 存放在 state\r\n item.replies = response.data.list;\r\n } else {\r\n item.replies = item.replies\r\n .filter(o => !o.isTemporary)\r\n .concat(response.data.list);\r\n // 如果当前页数非第一页,则合并 replies\r\n }\r\n item.reply_count = response.data.total;\r\n item.reply_page = response.data.page;\r\n } else {\r\n item.isNoMoreReply = true;\r\n }\r\n }\r\n return item;\r\n });\r\n this.setState({ list });\r\n })\r\n .catch(this.errorHandler)\r\n .finally(() => {\r\n this.handleChangeLoading(\"sGetReply\", false);\r\n });\r\n }\r\n\r\n /**\r\n * 添加评论\r\n * @param {object} {content} comment content\r\n */\r\n sCreateComment({ content } = {}, cb) {\r\n if (!content) return this.error(intl.get(\"message.notNull\"));\r\n this.handleChangeLoading(\"sCreateComment\", true);\r\n const { API, type, businessId, businessUserId } = this.props;\r\n this.axios(`${API}/comments`, {\r\n method: \"post\",\r\n data: {\r\n type,\r\n business_id: businessId,\r\n business_user_id: businessUserId,\r\n content\r\n },\r\n withCredentials: true\r\n })\r\n .then(response => {\r\n if (this.props.showAlertComment) {\r\n message.success(intl.get(\"message.success\"));\r\n }\r\n if (isFunction(cb)) cb();\r\n // 将数据写入到 list 中\r\n // 临时插入\r\n // 等到获取数据之后,删除临时数据\r\n const { list, total } = this.state;\r\n list.unshift({\r\n ...response.data,\r\n isTemporary: true // 临时的数据\r\n });\r\n this.setState({ list, total: total + 1 });\r\n this.props.onCountChange(total + 1);\r\n })\r\n .catch(this.errorHandler)\r\n .finally(() => {\r\n this.handleChangeLoading(\"sCreateComment\", false);\r\n });\r\n }\r\n\r\n /**\r\n * 删除评论\r\n */\r\n sDeleteComment(commentId) {\r\n this.handleChangeLoading(\"sDeleteComment\", true);\r\n const { API } = this.props;\r\n this.axios(`${API}/comments/${commentId}`, {\r\n method: \"delete\",\r\n withCredentials: true\r\n })\r\n .then(() => {\r\n const { list, total } = this.state;\r\n const res = list.filter(item => item.id !== commentId);\r\n this.setState({ list: res, total: total - 1 });\r\n this.props.onDelete(COMMENT_TYPE.COMMENT);\r\n this.props.onCountChange(total - 1);\r\n })\r\n .catch(this.errorHandler)\r\n .finally(() => {\r\n this.handleChangeLoading(\"sDeleteComment\", false);\r\n });\r\n }\r\n\r\n /**\r\n * 添加回复\r\n * 回复评论/回复回复\r\n * @param {object} data { comment_id, content, [reply_id] }\r\n */\r\n sCreateReply(data, cb) {\r\n if (!data.content) return this.error(intl.get(\"message.replyNoNull\"));\r\n this.handleChangeLoading(\"sCreateReply\", true);\r\n const { API } = this.props;\r\n this.axios(`${API}/replies`, {\r\n method: \"post\",\r\n data,\r\n withCredentials: true\r\n })\r\n .then(response => {\r\n if (this.props.showAlertReply) {\r\n message.success(intl.get(\"message.replySuccess\"));\r\n }\r\n if (isFunction(cb)) cb();\r\n // 将数据写入到 list 中\r\n // 临时插入\r\n // 等到获取数据之后,删除临时数据\r\n const list = this.state.list.map(item => {\r\n if (item.id === data.comment_id) {\r\n if (!item.replies) item.replies = [];\r\n item.replies.push({\r\n ...response.data,\r\n isTemporary: true // 临时的数据\r\n });\r\n item.reply_count += 1;\r\n }\r\n return item;\r\n });\r\n this.setState({ list });\r\n })\r\n .catch(this.errorHandler)\r\n .finally(() => {\r\n this.handleChangeLoading(\"sCreateReply\", false);\r\n });\r\n }\r\n\r\n /**\r\n * 删除回复\r\n * @param {*} replyId\r\n * @param {*} commentId\r\n */\r\n sDeleteReply(replyId, commentId) {\r\n this.handleChangeLoading(\"sDeleteReply\", true);\r\n const { API } = this.props;\r\n this.axios(`${API}/replies/${replyId}?CommentID=${commentId}`, {\r\n method: \"delete\",\r\n withCredentials: true\r\n })\r\n .then(() => {\r\n const list = this.state.list.map(item => {\r\n if (item.id === commentId) {\r\n const replies = item.replies.filter(item => item.id !== replyId);\r\n item.replies = replies;\r\n item.reply_count -= 1;\r\n }\r\n return item;\r\n });\r\n this.setState({ list });\r\n this.props.onDelete(COMMENT_TYPE.REPLY);\r\n })\r\n .catch(this.errorHandler)\r\n .finally(() => {\r\n this.handleChangeLoading(\"sDeleteReply\", false);\r\n });\r\n }\r\n\r\n /**\r\n * 评论 点赞/取消点赞\r\n * @param {string} commentId { commentId }\r\n * @param {boolean} favored 是否已经点过赞\r\n */\r\n sCommentFavor(commentId, favored) {\r\n this.handleChangeLoading(\"sCommentFavor\", true);\r\n const { API } = this.props;\r\n this.axios(`${API}/comments/${commentId}/favor`, {\r\n method: favored ? \"delete\" : \"put\",\r\n withCredentials: true\r\n })\r\n .then(response => {\r\n if (this.props.showAlertFavor) {\r\n message.success(\r\n favored\r\n ? intl.get(\"message.cancelLickSuccess\")\r\n : intl.get(\"message.likeSuccess\")\r\n );\r\n }\r\n // 更新 list 中的该项数据的 favored\r\n const list = this.state.list.map(item => {\r\n if (item.id === commentId) {\r\n item.favored = !favored;\r\n item.favor_count += favored ? -1 : 1;\r\n }\r\n return item;\r\n });\r\n this.setState({ list });\r\n })\r\n .catch(this.errorHandler)\r\n .finally(() => {\r\n this.handleChangeLoading(\"sCommentFavor\", false);\r\n });\r\n }\r\n\r\n /**\r\n * 回复 点赞/取消点赞\r\n * @param {string} replyId replyId\r\n * @param {string} commentId commentId\r\n * @param {boolean} favored 是否已经点过赞\r\n */\r\n sReplyFavor(replyId, commentId, favored) {\r\n this.handleChangeLoading(\"sReplyFavor\", true);\r\n const { API } = this.props;\r\n this.axios(`${API}/replies/${replyId}/favor`, {\r\n method: favored ? \"delete\" : \"put\",\r\n data: {\r\n comment_id: commentId\r\n },\r\n withCredentials: true\r\n })\r\n .then(response => {\r\n message.success(\r\n favored\r\n ? intl.get(\"message.cancelLickSuccess\")\r\n : intl.get(\"message.likeSuccess\")\r\n );\r\n // 更新 list 中的该项数据的 favored\r\n const list = this.state.list.map(item => {\r\n if (item.id === commentId) {\r\n item.replies = item.replies.map(r => {\r\n if (r.id === replyId) {\r\n r.favored = !favored;\r\n // r.favor_count = response.data.favor_count;\r\n // 点赞数 +1,而不是使用后端返回的点赞数\r\n // 不然如果返回的不是增加 1,用户可能以为程序错误\r\n r.favor_count += favored ? -1 : 1;\r\n }\r\n return r;\r\n });\r\n }\r\n return item;\r\n });\r\n this.setState({ list });\r\n })\r\n .catch(this.errorHandler)\r\n .finally(() => {\r\n this.handleChangeLoading(\"sReplyFavor\", false);\r\n });\r\n }\r\n\r\n /**\r\n * 获取 OSS 上传的参数\r\n */\r\n sOssSts() {\r\n this.handleChangeLoading(\"sOssSts\", true);\r\n const { API } = this.props;\r\n this.axios\r\n .get(`${API}/oss/sts`)\r\n .then(response => {\r\n this.setState({ oss: { ...response.data } });\r\n })\r\n .catch(this.errorHandler)\r\n .finally(() => {\r\n this.handleChangeLoading(\"sOssSts\", false);\r\n });\r\n }\r\n\r\n render() {\r\n // 添加到 Context 的数据\r\n const value = {\r\n ...this.state,\r\n ...this.props,\r\n sCreateComment: this.sCreateComment,\r\n sGetComment: this.sGetComment,\r\n sCommentFavor: this.sCommentFavor,\r\n sReplyFavor: this.sReplyFavor,\r\n sCreateReply: this.sCreateReply,\r\n sGetReply: this.sGetReply,\r\n sOssSts: this.sOssSts,\r\n sDeleteComment: this.sDeleteComment,\r\n sDeleteReply: this.sDeleteReply\r\n };\r\n\r\n return (\r\n this.state.initDone && (\r\n <CommentContext.Provider value={value}>\r\n <div className=\"comment\">\r\n {this.props.showEditor && (\r\n <CommentInput content={this.props.children} />\r\n )}\r\n {this.props.showList && (\r\n <div style={{ marginTop: 20 }}>\r\n <CommentList />\r\n </div>\r\n )}\r\n </div>\r\n </CommentContext.Provider>\r\n )\r\n );\r\n }\r\n}\r\n\r\nApp.propTypes = {\r\n type: PropTypes.number.isRequired, // 评论的 type\r\n businessId: PropTypes.string.isRequired, // 评论的 business_id\r\n businessUserId: PropTypes.number,\r\n API: PropTypes.string, // 评论的 API 前缀\r\n showList: PropTypes.bool, // 是否显示评论列表\r\n showEditor: PropTypes.bool, // 是否显示评论输入框\r\n showAlertComment: PropTypes.bool, // 评论成功之后,是否通过 Antd 的 Message 组件进行提示\r\n showAlertReply: PropTypes.bool, // 回复成功之后,是否通过 Antd 的 Message 组件进行提示\r\n showAlertFavor: PropTypes.bool, // 点赞/取消点赞成功之后,是否通过 Antd 的 Message 组件进行提示\r\n showError: PropTypes.bool, // 是否使用Antd的Message组件提示错误信息\r\n onError: PropTypes.func, // 错误回调, 出错了会被调用\r\n userId: PropTypes.number, // 用户id, comment内部不维护用户id, 调用组件时传递过来, 目前用于判断是否显示删除按钮\r\n pageType: PropTypes.string, // 分页类型\r\n page: PropTypes.number, // 页码\r\n limit: PropTypes.number, // 一次加载评论数量\r\n onPageChange: PropTypes.func, // 页码变化回调\r\n onGetMoreBtnClick: PropTypes.func, // 点击查看更多按钮回调\r\n onDelete: PropTypes.func,\r\n locales: PropTypes.string, // 传入的语言环境, en-US/zh-CN\r\n onCountChange: PropTypes.func // 评论数量变更时的回调\r\n};\r\n\r\nApp.defaultProps = {\r\n businessUserId: 0,\r\n API: \"//api.links123.net/comment/v1\",\r\n showList: true,\r\n showEditor: true,\r\n showAlertComment: false,\r\n showAlertReply: false,\r\n showAlertFavor: false,\r\n showError: true,\r\n pageType: \"more\",\r\n limit: LIMIT,\r\n onGetMoreBtnClick: () => { },\r\n onPageChange: page => { },\r\n onDelete: () => { },\r\n onCountChange: () => { }\r\n};\r\n\r\nexport { Editor, RenderText };\r\n\r\nexport default App;\r\n"]}