{"version":3,"file":"js/chunk.a452eee76eee332b.js","mappings":"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","sources":["webpack:///./src/components/UserAvatarPopover/index.tsx","webpack:///./src/components/group/GroupDetailAnswerList/GroupCommentBottomInput.tsx","webpack:///./src/components/group/GroupDetailAnswerList/AnswerHeader.tsx","webpack:///./src/components/group/GroupDetailAnswerList/CommentInComment.tsx","webpack:///./src/components/group/GroupDetailAnswerList/GroupDetailListWithLikeAndComment.tsx","webpack:///./src/components/group/GroupDetailAnswerList/index.tsx","webpack:///./node_modules/antd/es/col/index.js","webpack:///./node_modules/antd/es/row/index.js"],"sourcesContent":["import AvatarFoundingMemberIcon from '@/static/imgs/AvatarFoundingMemberIcon.svg';\nimport AvatarSuperMemberIcon from '@/static/imgs/AvatarSuperMemberIcon.svg';\nimport { Button, Popover } from 'antd';\nimport { useEffect, useState } from 'react';\nimport HomepageFollowButton from '../homepage/HomepageFollowButton';\nimport { MEMBER_TYPE } from '../UserTrayAvatar';\n\ntype UserAvatarPopoverProps = {\n  user: API.User.UserOverviewForGet;\n  toggleFollowStatus: (user: API.User.UserOverviewForGet) => void;\n  loggedUid?: string;\n  children?: JSX.Element;\n};\n\nconst UserAvatarPopover: React.FC<UserAvatarPopoverProps> = (props) => {\n  const [memberType, setMemberType] = useState<any>(0);\n\n  useEffect(() => {\n    if (props.user.is_founding_vip) {\n      setMemberType(MEMBER_TYPE.FOUNDING_VIP);\n    } else if (props.user.super_vip_status) {\n      switch (props.user.super_vip_status) {\n        case '未开通':\n          setMemberType(MEMBER_TYPE.SUPER_VIP_NONACTIVATED);\n          break;\n        case '生效中':\n          setMemberType(MEMBER_TYPE.SUPER_VIP_ACTIVATED);\n          break;\n        case '已过期':\n          setMemberType(MEMBER_TYPE.SUPER_VIP_EXPRIED);\n          break;\n      }\n    } else if (props.user.is_base_vip) {\n      setMemberType(MEMBER_TYPE.BASE_VIP);\n    } else {\n      setMemberType(MEMBER_TYPE.NOT_CERTIFICATED);\n    }\n  }, [props.user]);\n  const handleJumpToMemberPay = () => {\n    // 跳转会员支付页面\n    window.location.href = '/community/user/vip/categories/';\n  };\n  return (\n    <Popover\n      placement=\"bottomLeft\"\n      title={\n        <>\n          <div className=\"flex items-center text-16px\">\n            <img\n              src={props.user.avatar_url}\n              className=\"h-20px w-20px rounded-full mr-5px\"\n              alt=\"头像\"\n              style={{ objectFit: 'cover' }}\n            />\n            <span className=\"font-500 text-hex-1a263d\">{props.user.name}</span>\n            {memberType === MEMBER_TYPE.SUPER_VIP_ACTIVATED ? (\n              <img\n                className=\"w-20px h-20px ml-10px\"\n                src={AvatarSuperMemberIcon}\n                onClick={handleJumpToMemberPay}\n                title=\"超级会员\"\n              />\n            ) : memberType === MEMBER_TYPE.FOUNDING_VIP ? (\n              <img\n                className=\"w-20px h-20px ml-10px\"\n                src={AvatarFoundingMemberIcon}\n                onClick={handleJumpToMemberPay}\n                title=\"创始会员\"\n              />\n            ) : null}\n          </div>\n        </>\n      }\n      content={\n        <>\n          <div className=\"flex justify-between\">\n            <div className=\"flex flex-col\">\n              <span className=\"text-16px font-500\">\n                {props.user.follow_count || 0}\n              </span>\n              <span className=\"text-hex-86909C text-12px\">关注</span>\n            </div>\n            <div className=\"flex flex-col\">\n              <span className=\"text-16px font-500\">\n                {props.user.follower_count || 0}\n              </span>\n              <span className=\"text-hex-86909C text-12px\">粉丝</span>\n            </div>\n            <div className=\"flex flex-col\">\n              <span className=\"text-16px font-500\">\n                {props.user.create_post_count || 0}\n              </span>\n              <span className=\"text-hex-86909C text-12px\">发帖</span>\n            </div>\n          </div>\n\n          <div className=\"flex justify-between mt-15px\">\n            <HomepageFollowButton\n              user={props.user}\n              toggleFollowStatus={props.toggleFollowStatus}\n              loggedUid={props.loggedUid}\n            />\n            <Button\n              onClick={() => {\n                window.location.href = `/community/user/people/${props.user.uid}`;\n              }}\n            >\n              个人主页\n            </Button>\n          </div>\n        </>\n      }\n      overlayStyle={{ width: 270, paddingTop: 0 }}\n      showArrow={false}\n    >\n      {props.children}\n    </Popover>\n  );\n};\n\nexport default UserAvatarPopover;\n","import { Toolkit } from '@/components/Comment/useComment';\nimport GroupPostDetailTools from '@/components/group/GroupPostDetailTools';\nimport WangEditor from '@/components/WangEditor';\nimport closeSvg from '@/static/imgs/close.svg';\nimport commentSvg from '@/static/imgs/post-detail-comment.svg';\nimport { Button, Col, Form, Row } from 'antd';\nimport { useEffect, useState } from 'react';\n\ntype GroupCommentBottomInputProps = {\n  threadUid: string;\n  toolkit: Toolkit;\n};\n\nconst GroupCommentBottomInput: React.FC<GroupCommentBottomInputProps> = (\n  props,\n) => {\n  // const { toolkit } = useComment(props.threadUid);\n  const [btnLoading, setBtnLoading] = useState(false);\n  const [showWangEditor, setShowWangEditor] = useState(false);\n\n  const [form] = Form.useForm();\n  const content = Form.useWatch('content', form);\n\n  useEffect(() => {\n    (window as any).hljs.highlightAll();\n  }, []);\n\n  const isContentEmpty = (value: string) => {\n    const divEl = document.createElement('div');\n    divEl.innerHTML = value;\n\n    if (!divEl.textContent?.trim() && !divEl.querySelector('img')) {\n      return true;\n    }\n    return false;\n  };\n\n  return (\n    <div\n      className=\"group-detail-bottom-comment w-856px bg-hex-fff p-10px fixed bottom-0 -ml-24px rounded-t-6px\"\n      style={{ boxShadow: '0px -3px 10px -2px rgba(29,33,41,0.08)' }}\n    >\n      {showWangEditor ? (\n        <>\n          <div className=\"mb-12px flex justify-between\">\n            <div className=\"text-18px font-500\">评论</div>\n            <img\n              className=\"w-20px h-20px cursor-pointer\"\n              src={closeSvg}\n              onClick={() => setShowWangEditor(false)}\n            />\n          </div>\n          <Form\n            form={form}\n            onFinish={async (values) => {\n              // 添加评论\n              setBtnLoading(true);\n              try {\n                const data = await props.toolkit.addComment({\n                  content: values.content,\n                });\n                setBtnLoading(false);\n                setShowWangEditor(false);\n                if (data) {\n                  form.resetFields();\n                }\n              } catch (e) {\n                setBtnLoading(false);\n              }\n            }}\n          >\n            <Row>\n              <Col span={21}>\n                <Form.Item\n                  name=\"content\"\n                  rules={[{ required: true, message: '请输入评论' }]}\n                >\n                  <WangEditor\n                    height={150}\n                    toolbarConfig={{\n                      excludeKeys: [\n                        'headerSelect',\n                        'blockquote',\n                        '|',\n                        'underline',\n                        'italic',\n                        'group-more-style',\n                        'color',\n                        'bgColor',\n                        'fontSize',\n                        'fontFamily',\n                        'lineHeight',\n                        'bulletedList',\n                        'numberedList',\n                        'todo',\n                        'group-justify',\n                        'group-indent',\n                        'group-video',\n                        'insertTable',\n                        // 'codeBlock',\n                        'divider',\n                        'undo',\n                        'redo',\n                        'fullScreen',\n                      ],\n                      // 插入哪些菜单\n                      insertKeys: {\n                        index: 23, // 自定义插入的位置\n                        keys: ['uploadAttachment'], // “上传附件”菜单\n                      },\n                    }}\n                  />\n                </Form.Item>\n              </Col>\n              <Col span={2} className=\"ml-10px\" style={{ textAlign: 'right' }}>\n                <Form.Item>\n                  <Button\n                    type=\"primary\"\n                    htmlType=\"submit\"\n                    disabled={isContentEmpty(content)}\n                    loading={btnLoading}\n                  >\n                    发表评论\n                  </Button>\n                </Form.Item>\n              </Col>\n            </Row>\n          </Form>\n        </>\n      ) : (\n        <div className=\"flex items-center justify-between\">\n          {/* <Input\n            style={{ width: 474 }}\n            onClick={() => setShowWangEditor(true)}\n          /> */}\n\n          <Button\n            type=\"primary\"\n            icon={<img src={commentSvg} className=\"mr-4px\" />}\n            ghost\n            onClick={() => setShowWangEditor(true)}\n            className=\"flex items-center border-bg-3598E8\"\n            style={{ border: '1px solid #3598E8', height: 42, borderRadius: 6 }}\n          >\n            评论\n          </Button>\n\n          <GroupPostDetailTools />\n        </div>\n      )}\n    </div>\n  );\n};\n\nexport default GroupCommentBottomInput;\n","import * as api from '@/api/user';\nimport UserAvatarPopover from '@/components/UserAvatarPopover';\nimport { MEMBER_TYPE } from '@/components/UserTrayAvatar';\nimport acceptedSvg from '@/static/imgs/accepted.svg';\nimport AvatarFoundingMemberIcon from '@/static/imgs/AvatarFoundingMemberIcon.svg';\nimport AvatarSuperMemberIcon from '@/static/imgs/AvatarSuperMemberIcon.svg';\nimport { useMemoizedFn, useRequest } from 'ahooks';\nimport { Avatar, Image, message } from 'antd';\nimport dayjs from 'dayjs';\nimport 'dayjs/locale/zh';\nimport { useEffect, useState } from 'react';\ndayjs.locale('zh');\n\ntype AnswerHeaderProps = {\n  uid: string;\n  avatar_url: string;\n  name: string;\n  is_accepted: boolean;\n  content: string;\n  user: any;\n};\n\nconst AnswerHeader: React.FC<AnswerHeaderProps> = (props) => {\n  const { data: userOverview, mutate: mutateUserOverview } = useRequest(\n    async () =>\n      api.getUserOverview(props.uid, {\n        with_f:\n          'follow_count,follower_count,create_post_count,user_follow_status',\n      }),\n    { refreshDeps: [] },\n  );\n\n  const [memberType, setMemberType] = useState<any>();\n\n  useEffect(() => {\n    if (props.user.is_founding_vip) {\n      setMemberType(MEMBER_TYPE.FOUNDING_VIP);\n    } else if (props.user.super_vip_status) {\n      switch (props.user.super_vip_status) {\n        case '未开通':\n          if (props.user.is_base_vip) {\n            setMemberType(MEMBER_TYPE.BASE_VIP);\n          } else {\n            setMemberType(MEMBER_TYPE.NOT_CERTIFICATED);\n          }\n          // setMemberType(MEMBER_TYPE.SUPER_VIP_NONACTIVATED);\n          break;\n        case '生效中':\n          setMemberType(MEMBER_TYPE.SUPER_VIP_ACTIVATED);\n          break;\n        case '已过期':\n          setMemberType(MEMBER_TYPE.SUPER_VIP_EXPRIED);\n          break;\n      }\n    }\n  }, [props.user]);\n\n  const toggleFollowStatus = useMemoizedFn(async (user) => {\n    if (user.user_follow_status) {\n      await api.unfollow(user.uid);\n      message.success('取消关注成功');\n      mutateUserOverview({\n        ...user,\n        user_follow_status: false,\n        follower_count: user.follower_count - 1,\n      });\n    } else {\n      await api.follow(user.uid);\n      message.success('关注成功');\n      mutateUserOverview({\n        ...user,\n        user_follow_status: true,\n        follower_count: user.follower_count + 1,\n      });\n    }\n  });\n\n  const handleJumpToMemberPay = () => {\n    // 跳转会员支付页面\n    window.location.href = '/community/user/vip/categories/';\n  };\n\n  return (\n    <div data-flex=\"main:justify cross:center\">\n      <div data-flex>\n        {userOverview && (\n          <UserAvatarPopover\n            user={userOverview}\n            toggleFollowStatus={toggleFollowStatus}\n          >\n            <Avatar\n              size={'large'}\n              src={\n                props.avatar_url ? (\n                  <Image\n                    width={40}\n                    height={40}\n                    src={props.avatar_url}\n                    preview={false}\n                    style={{ objectFit: 'cover' }}\n                  />\n                ) : undefined\n              }\n            ></Avatar>\n          </UserAvatarPopover>\n        )}\n\n        <div className=\"ml-10px w-760px\">\n          <div className=\"font-550\">\n            {props.name}\n            {memberType === MEMBER_TYPE.SUPER_VIP_ACTIVATED ? (\n              <img\n                className=\"w-20px h-20px ml-10px\"\n                src={AvatarSuperMemberIcon}\n                onClick={handleJumpToMemberPay}\n                title=\"超级会员\"\n              />\n            ) : memberType === MEMBER_TYPE.FOUNDING_VIP ? (\n              <img\n                className=\"w-20px h-20px ml-10px\"\n                src={AvatarFoundingMemberIcon}\n                onClick={handleJumpToMemberPay}\n                title=\"创始会员\"\n              />\n            ) : null}\n          </div>\n          <div\n            className=\"mt-8px rich-text text-15px\"\n            dangerouslySetInnerHTML={{ __html: props.content }}\n          ></div>\n        </div>\n      </div>\n      {props.is_accepted && <img src={acceptedSvg} />}\n    </div>\n  );\n};\n\nexport default AnswerHeader;\n","import { Toolkit } from '@/components/Comment/useComment';\nimport WangEditor from '@/components/WangEditor';\nimport like2Svg from '@/static/imgs/like2.svg';\nimport replySvg from '@/static/imgs/reply.svg';\nimport unlike2Svg from '@/static/imgs/unlike2.svg';\nimport { Button, Col, Form, Row } from 'antd';\nimport dayjs from 'dayjs';\nimport 'dayjs/locale/zh';\nimport relativeTime from 'dayjs/plugin/relativeTime';\nimport { useState } from 'react';\n\ndayjs.locale('zh');\ndayjs.extend(relativeTime);\n\ntype CommentInCommentProps = {\n  item: API.Comment.DescendantsForList;\n  ancestorUid: string;\n  toolkit: Toolkit;\n  userUid: string;\n};\nconst CommentInComment: React.FC<CommentInCommentProps> = (props) => {\n  const [showInput, setShowInput] = useState(false);\n  const [btnLoading, setBtnLoading] = useState(false);\n  const [form] = Form.useForm();\n  const comment = Form.useWatch('comment', form);\n\n  const isContentEmpty = (value: string) => {\n    const divEl = document.createElement('div');\n    divEl.innerHTML = value;\n\n    if (!divEl.textContent?.trim() && !divEl.querySelector('img')) {\n      return true;\n    }\n    return false;\n  };\n\n  return (\n    <div>\n      <div\n        className=\"flex items-center justify-between\"\n        style={{ color: '#86909C', fontSize: '12px' }}\n      >\n        <span>\n          {dayjs(props.item.created_at * 1000).format('YYYY-MM-DD HH:mm:ss')}\n        </span>\n        <div className=\"flex items-center\">\n          {showInput ? (\n            <span\n              className=\"ml-10px\"\n              style={{ cursor: 'pointer' }}\n              onClick={() => setShowInput(false)}\n            >\n              收起\n            </span>\n          ) : (\n            <span\n              className=\"flex items-center ml-10px\"\n              style={{ cursor: 'pointer' }}\n              onClick={() => setShowInput(true)}\n            >\n              <img src={replySvg} className=\"mr-4px\" />\n              回复\n            </span>\n          )}\n          {props.userUid === props.item.user.uid && (\n            <span\n              className=\"replay ml-2px\"\n              onClick={async () => {\n                await props.toolkit.delComment(props.item.uid);\n              }}\n            >\n              | 删除\n            </span>\n          )}\n          <div\n            className=\"ml-20px cursor-pointer\"\n            onClick={() => {\n              if (props.item.like_status) {\n                props.toolkit.unlikeComment(props.item.uid);\n              } else {\n                props.toolkit.likeComment(props.item.uid);\n              }\n            }}\n            data-flex=\"main:center cross:center\"\n          >\n            <img src={props.item.like_status ? like2Svg : unlike2Svg} />\n            <span className=\"ml-4px\">{props.item.like_count}</span>\n          </div>\n        </div>\n      </div>\n      {showInput && (\n        <Form\n          form={form}\n          className=\"mt-20px\"\n          onFinish={async (value) => {\n            setBtnLoading(true);\n            try {\n              await props.toolkit.addComment({\n                content: value.comment,\n                ancestorUid: props.ancestorUid,\n                replyToUid: props.item.uid,\n              });\n              form.resetFields();\n              setShowInput(false);\n              setBtnLoading(false);\n            } catch {\n              setBtnLoading(false);\n            }\n          }}\n        >\n          <Row>\n            <Col span={22}>\n              <Form.Item\n                name=\"comment\"\n                rules={[{ required: true, message: '请输入评论' }]}\n              >\n                <WangEditor\n                  height={150}\n                  toolbarConfig={{\n                    excludeKeys: [\n                      'headerSelect',\n                      'blockquote',\n                      '|',\n                      'underline',\n                      'italic',\n                      'group-more-style',\n                      'color',\n                      'bgColor',\n                      'fontSize',\n                      'fontFamily',\n                      'lineHeight',\n                      'bulletedList',\n                      'numberedList',\n                      'todo',\n                      'group-justify',\n                      'group-indent',\n                      'group-video',\n                      'insertTable',\n                      // 'codeBlock',\n                      'divider',\n                      'undo',\n                      'redo',\n                      'fullScreen',\n                    ],\n                    // 插入哪些菜单\n                    insertKeys: {\n                      index: 23, // 自定义插入的位置\n                      keys: ['uploadAttachment'], // “上传附件”菜单\n                    },\n                  }}\n                />\n              </Form.Item>\n            </Col>\n            <Col span={2}>\n              <Form.Item>\n                <Button\n                  className=\"ml-10px\"\n                  htmlType=\"submit\"\n                  loading={btnLoading}\n                  disabled={isContentEmpty(comment)}\n                >\n                  发表\n                </Button>\n              </Form.Item>\n            </Col>\n          </Row>\n        </Form>\n      )}\n    </div>\n  );\n};\nexport default CommentInComment;\n","import * as api from '@/api/user';\nimport { Toolkit } from '@/components/Comment/useComment';\nimport UserAvatarPopover from '@/components/UserAvatarPopover';\nimport WangEditor from '@/components/WangEditor';\nimport AvatarFoundingMemberIcon from '@/static/imgs/AvatarFoundingMemberIcon.svg';\nimport AvatarSuperMemberIcon from '@/static/imgs/AvatarSuperMemberIcon.svg';\nimport like2Svg from '@/static/imgs/like2.svg';\nimport replySvg from '@/static/imgs/reply.svg';\nimport unlike2Svg from '@/static/imgs/unlike2.svg';\nimport { useMemoizedFn, useRequest } from 'ahooks';\nimport { Avatar, Button, Col, Form, Image, message, Row } from 'antd';\nimport dayjs from 'dayjs';\nimport React, { useEffect, useState } from 'react';\nimport CommentInComment from './CommentInComment';\nimport './index.scss';\n\nconst SecondCommentAvatar: React.FC<{ user: API.Comment.User }> = ({\n  user,\n}) => {\n  const { data: userOverview, mutate: mutateUserOverview } = useRequest(\n    async () =>\n      api.getUserOverview(user.uid, {\n        with_f:\n          'follow_count,follower_count,create_post_count,user_follow_status',\n      }),\n    { refreshDeps: [] },\n  );\n\n  const toggleFollowStatus = useMemoizedFn(async (user) => {\n    if (user.user_follow_status) {\n      await api.unfollow(user.uid);\n      message.success('取消关注成功');\n      mutateUserOverview({\n        ...user,\n        user_follow_status: false,\n        follower_count: user.follower_count - 1,\n      });\n    } else {\n      await api.follow(user.uid);\n      message.success('关注成功');\n      mutateUserOverview({\n        ...user,\n        user_follow_status: true,\n        follower_count: user.follower_count + 1,\n      });\n    }\n  });\n  return (\n    <>\n      {userOverview && (\n        <UserAvatarPopover\n          user={userOverview}\n          toggleFollowStatus={toggleFollowStatus}\n        >\n          <Avatar\n            size={'large'}\n            src={\n              user.avatar_url ? (\n                <Image\n                  src={user.avatar_url}\n                  preview={false}\n                  style={{ objectFit: 'cover' }}\n                />\n              ) : undefined\n            }\n          ></Avatar>\n        </UserAvatarPopover>\n      )}\n    </>\n  );\n};\n\ntype GroupDetailListWithLikeAndCommentProps = {\n  answer: API.Comment.CommentForList;\n  toolkit: Toolkit;\n  isOwn: boolean;\n  userUid: string;\n  created_at: number;\n};\nconst GroupDetailListWithLikeAndComment: React.FC<\n  GroupDetailListWithLikeAndCommentProps\n> = (props) => {\n  const [showInput, setShowInput] = useState(false);\n  const [btnLoading, setBtnLoading] = useState(false);\n\n  const [form] = Form.useForm();\n  const comment = Form.useWatch('comment', form);\n\n  // PrismJs.highlightAll();\n  useEffect(() => {\n    (window as any).hljs.highlightAll();\n  }, []);\n\n  const isContentEmpty = (value: string) => {\n    const divEl = document.createElement('div');\n    divEl.innerHTML = value;\n\n    if (!divEl.textContent?.trim() && !divEl.querySelector('img')) {\n      return true;\n    }\n    return false;\n  };\n\n  const handleJumpToMemberPay = () => {\n    // 跳转会员支付页面\n    window.location.href = '/community/user/vip/categories/';\n  };\n\n  return (\n    <div className=\"qa-detail-list-with-like-and-comment\">\n      <div className=\"ml-46px flex items-center justify-between\">\n        <div className=\"text-hex-86909C text-12px\">\n          {dayjs(props.created_at * 1000).format('YYYY-MM-DD HH:mm:ss')}\n        </div>\n        <div className=\"flex items-center\">\n          <div className=\"flex mr-20px\">\n            {showInput ? (\n              <span className=\"replay\" onClick={() => setShowInput(false)}>\n                收起\n              </span>\n            ) : (\n              <span\n                className=\"replay flex items-center\"\n                onClick={() => setShowInput(true)}\n              >\n                <img src={replySvg} className=\"mr-4px\" />\n                回复\n              </span>\n            )}\n            {props.isOwn && (\n              <span\n                className=\"replay ml-2px\"\n                onClick={async () => {\n                  await props.toolkit.delComment(props.answer.uid);\n                }}\n              >\n                | 删除\n              </span>\n            )}\n          </div>\n          <div\n            className={`py-7px`}\n            style={{ cursor: 'pointer' }}\n            onClick={() => {\n              if (props.answer.like_status) {\n                props.toolkit.unlikeComment(props.answer.uid);\n              } else {\n                props.toolkit.likeComment(props.answer.uid);\n              }\n            }}\n            data-flex=\"main:center cross:center\"\n          >\n            <img src={props.answer.like_status ? like2Svg : unlike2Svg} />\n            <span className=\"ml-4px text-hex-86909c\">\n              {props.answer.like_count}\n            </span>\n          </div>\n        </div>\n      </div>\n      <div className=\"mt-20px\">\n        {showInput && (\n          <Form\n            form={form}\n            className=\"mt-20px\"\n            onFinish={async (value) => {\n              setBtnLoading(true);\n              try {\n                await props.toolkit.addComment({\n                  content: value.comment,\n                  ancestorUid: props.answer.uid,\n                  replyToUid: props.answer.uid,\n                });\n                form.resetFields();\n                setShowInput(false);\n                setBtnLoading(false);\n              } catch {\n                setBtnLoading(false);\n              }\n            }}\n          >\n            <Row>\n              <Col span={22}>\n                <Form.Item\n                  name=\"comment\"\n                  rules={[{ required: true, message: '请输入评论' }]}\n                >\n                  <WangEditor\n                    height={150}\n                    toolbarConfig={{\n                      excludeKeys: [\n                        'headerSelect',\n                        'blockquote',\n                        '|',\n                        'underline',\n                        'italic',\n                        'group-more-style',\n                        'color',\n                        'bgColor',\n                        'fontSize',\n                        'fontFamily',\n                        'lineHeight',\n                        'bulletedList',\n                        'numberedList',\n                        'todo',\n                        'group-justify',\n                        'group-indent',\n                        'group-video',\n                        'insertTable',\n                        // 'codeBlock',\n                        'divider',\n                        'undo',\n                        'redo',\n                        'fullScreen',\n                      ],\n                      // 插入哪些菜单\n                      insertKeys: {\n                        index: 23, // 自定义插入的位置\n                        keys: ['uploadAttachment'], // “上传附件”菜单\n                      },\n                    }}\n                  />\n                </Form.Item>\n              </Col>\n              <Col span={2} style={{ textAlign: 'right' }}>\n                <Form.Item>\n                  <Button\n                    className=\"ml-10px\"\n                    htmlType=\"submit\"\n                    loading={btnLoading}\n                    disabled={isContentEmpty(comment)}\n                  >\n                    发表\n                  </Button>\n                </Form.Item>\n              </Col>\n            </Row>\n          </Form>\n        )}\n      </div>\n      {props.answer.descendants.map((item) => (\n        <div key={item.uid} className=\"comment-container p-16px ml-46px\">\n          <div data-flex>\n            <SecondCommentAvatar user={item.user} />\n\n            <div className=\"ml-10px\" style={{ flex: 1 }}>\n              <div style={{ color: '#1D2129', fontWeight: 550 }}>\n                {item.user.name}\n                {item.user.is_founding_vip ? (\n                  <img\n                    className=\"w-20px h-20px ml-10px\"\n                    src={AvatarFoundingMemberIcon}\n                    onClick={handleJumpToMemberPay}\n                    title=\"创始会员\"\n                  />\n                ) : item.user.super_vip_status === '生效中' ? (\n                  <img\n                    className=\"w-20px h-20px ml-10px\"\n                    src={AvatarSuperMemberIcon}\n                    onClick={handleJumpToMemberPay}\n                    title=\"超级会员\"\n                  />\n                ) : null}\n              </div>\n              <div>\n                <span className=\"text-hex-86909C\">回复</span>\n                <span className=\"ml-10px text-hex-1D2129\">\n                  {item.reply_to_user.name}\n                </span>\n                <span className=\"text-hex-4E5969\">:</span>\n                <span\n                  className=\"text-hex-1D2129 rich-text inline-block text-15px\"\n                  dangerouslySetInnerHTML={{ __html: item.content }}\n                ></span>\n              </div>\n              <div>\n                <CommentInComment\n                  item={item}\n                  ancestorUid={props.answer.uid}\n                  toolkit={props.toolkit}\n                  userUid={props.userUid}\n                />\n              </div>\n            </div>\n          </div>\n        </div>\n      ))}\n    </div>\n  );\n};\n\nexport default GroupDetailListWithLikeAndComment;\n","//  圈子详情-评论列表\nimport useComment from '@/components/Comment/useComment';\nimport noContentPng from '@/static/imgs/no-content.png';\nimport { Spin } from 'antd';\nimport AnswerHeader from './AnswerHeader';\nimport GroupCommentBottomInput from './GroupCommentBottomInput';\nimport GroupDetailListWithLikeAndComment from './GroupDetailListWithLikeAndComment';\nimport './index.scss';\n\ntype GroupDetailAnswerListProps = {\n  threadUid: string;\n  userUid: string;\n  totalCommentCount?: number;\n  user: any;\n};\n// 评论列表\nconst GroupDetailAnswerList: React.FC<GroupDetailAnswerListProps> = (props) => {\n  const { data: answerList, loading, toolkit } = useComment(props.threadUid);\n\n  return (\n    <div className=\"questions p-24px\">\n      {loading ? (\n        <Spin />\n      ) : (\n        <>\n          <div className=\"text-18px font-500\">\n            全部评论\n            {props.totalCommentCount && props.totalCommentCount > 0\n              ? `(${props.totalCommentCount})`\n              : null}\n          </div>\n          {answerList?.length && answerList.length > 0 ? (\n            <>\n              {answerList.map((answer) => (\n                <div className=\"question-item mt-10px\" key={answer.uid}>\n                  <div className=\"mt-18px\">\n                    <AnswerHeader\n                      uid={answer.user.uid}\n                      avatar_url={answer.user.avatar_url}\n                      name={answer.user.name}\n                      is_accepted={answer.bookmark_status}\n                      content={answer.content}\n                      user={answer.user}\n                    />\n                    <div>\n                      <GroupDetailListWithLikeAndComment\n                        isOwn={answer.user.uid === props.userUid}\n                        answer={answer}\n                        toolkit={toolkit}\n                        userUid={props.userUid}\n                        created_at={answer.created_at}\n                      />\n                    </div>\n                  </div>\n                </div>\n              ))}\n            </>\n          ) : (\n            <div\n              className=\"flex flex-col items-center justify-center\"\n              style={{ height: '100%' }}\n            >\n              <img src={noContentPng} />\n              <span className=\"mt-10px text-center\">成为第一个评论的人</span>\n            </div>\n          )}\n\n          <GroupCommentBottomInput\n            threadUid={props.threadUid}\n            toolkit={toolkit}\n          />\n        </>\n      )}\n    </div>\n  );\n};\n\nexport default GroupDetailAnswerList;\n","import { Col } from '../grid';\nexport default Col;","import { Row } from '../grid';\nexport default Row;"],"names":["props","useState","memberType","setMemberType","useEffect","user","is_founding_vip","MEMBER_TYPE","super_vip_status","is_base_vip","handleJumpToMemberPay","window","location","href","placement","title","className","src","avatar_url","alt","style","objectFit","name","AvatarSuperMemberIcon","onClick","AvatarFoundingMemberIcon","content","follow_count","follower_count","create_post_count","toggleFollowStatus","loggedUid","uid","overlayStyle","width","paddingTop","showArrow","children","btnLoading","setBtnLoading","showWangEditor","setShowWangEditor","Form","form","hljs","highlightAll","value","divEl","boxShadow","closeSvg","onFinish","values","toolkit","addComment","data","resetFields","span","rules","required","message","WangEditor","height","toolbarConfig","excludeKeys","insertKeys","index","keys","textAlign","type","htmlType","disabled","document","createElement","innerHTML","textContent","trim","querySelector","loading","icon","commentSvg","ghost","border","borderRadius","GroupPostDetailTools","dayjs","useRequest","api","with_f","refreshDeps","userOverview","mutateUserOverview","mutate","useMemoizedFn","user_follow_status","UserAvatarPopover","size","preview","undefined","dangerouslySetInnerHTML","__html","is_accepted","acceptedSvg","relativeTime","showInput","setShowInput","comment","color","fontSize","item","created_at","format","cursor","replySvg","userUid","delComment","like_status","unlikeComment","likeComment","like2Svg","unlike2Svg","like_count","ancestorUid","replyToUid","SecondCommentAvatar","isOwn","answer","descendants","map","flex","fontWeight","reply_to_user","useComment","threadUid","answerList","totalCommentCount","length","bookmark_status","noContentPng","GroupCommentBottomInput","Col","Row"],"sourceRoot":""}