{"version":3,"file":"static/js/main.9afbf016.js","mappings":"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","sources":["../webpack/universalModuleDefinition","api/forumPost.ts","api/forumUser.ts","components/video/controller.tsx","components/video/view/index.tsx","components/video/index.ts","api/Upload.ts","components/EditorV2.tsx","components/IconPost.tsx","hooks/useBanner.tsx","components/Banners.tsx","components/UserHome.tsx","hooks/useUserHome.tsx","components/PostList.tsx","webpack://open-platform-forum/./src/components/NoticeCard/index.module.scss?e622","components/NoticeCard/index.tsx","components/IconProtocol.tsx","components/IndexPage.tsx","components/LoginMask.tsx","components/NoticeCard/hooks.tsx","components/PostTags.tsx","components/PostItem.tsx","components/Safe/index.tsx","consts/scope.ts","components/ScopeLayout.tsx","consts/index.ts","context/useBiz.ts","context/usePost.tsx","hooks/usePost.tsx","hooks/usePostImageSet.tsx","hooks/useScope.tsx","hooks/useTop.tsx","hooks/useUserInfo.tsx","pages/[scope]/billboard/_layout.tsx","pages/[scope]/billboard/index.module.scss","pages/[scope]/billboard/index.tsx","pages/[scope]/index.tsx","pages/[scope]/post/[postId]/_layout.tsx","pages/[scope]/post/[postId]/edit.tsx","hooks/useSelfVisible.tsx","hooks/useBulletinId.tsx","components/Post/PostHeader.tsx","hooks/useReply.tsx","hooks/useLike.tsx","components/Post/ReplyOperation.tsx","context/useComment.tsx","hooks/useComment.tsx","components/Post/CommentItem.tsx","components/ReplyList.tsx","components/CommentList.tsx","components/Post/PostDetail.tsx","pages/[scope]/post/[postId]/index.tsx","components/Post/TitleFormItem.tsx","components/Post/SharePost.tsx","components/Post/BulletinPost.tsx","webpack://open-platform-forum/./src/components/creat-work-order/index.module.scss?7bf0","components/creat-work-order/pop-content/index.tsx","components/creat-work-order/index.tsx","components/Post/QuestionPost.tsx","components/Post/NewPost.tsx","pages/[scope]/post/new.tsx","pages/_app.tsx","pages/index.tsx","pages/search/_layout.tsx","webpack://open-platform-forum/./src/pages/search/index.module.scss?33b8","pages/search/index.tsx","typings/open.platform.forum_bff/namespaces/forumuser.ts","pages/user/[id].tsx","pages/user/_layout.tsx","report/index.tsx","typings/open.platform.forum_bff/namespaces/configure.ts","typings/open.platform.forum_bff/namespaces/forumpost.ts","../../../features/open-platform-utils/src/request.ts","utils/request.ts","utils/toastError.ts","webpack://open-platform-forum/./src/components/index.module.scss?6bcd"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse {\n\t\tvar a = factory();\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(window, function() {\nreturn ","import { bff_prefix } from '@/consts';\nimport { forum, forumpost } from '@/typings/open.platform.forum_bff';\nimport { request } from '@/utils/request';\n\nconst prefix = `${bff_prefix}/forumPost`;\nconst formPrefix = `${bff_prefix}/forumservice`;\n\nclass Service {\n async deletePostGroup(req: forumpost.DeletePostGroupRequest) {\n const res = await request<\n forumpost.DeletePostGroupRequest,\n forumpost.DeletePostGroupResponseData\n >({\n url: `${prefix}/deletePostGroup`,\n data: req,\n method: 'POST',\n });\n return res.data;\n }\n\n async getBanners(req: forumpost.GetBannersRequest) {\n const res = await request<\n forumpost.GetBannersRequest,\n forumpost.GetBannersResponseData\n >({\n url: `${prefix}/getBanners`,\n params: req,\n });\n return res.data;\n }\n\n async getPostsById(req: forumpost.GetPostsFromPostIdRequest) {\n const res = await request<\n forumpost.GetPostsFromPostIdRequest,\n forumpost.GetPostsFromPostIdResponseData\n >({\n url: `${prefix}/getPostsFromPostId`,\n params: req,\n });\n return res.data;\n }\n\n async getPosts(req: forumpost.GetPostsRequest) {\n const res = await request<\n forumpost.GetPostsRequest,\n forumpost.GetPostsResponseData\n >({\n url: `${prefix}/getPosts`,\n params: req,\n });\n return res.data;\n }\n\n async toggleGood(req: forumpost.ToggleGoodRequest) {\n const res = await request<\n forumpost.ToggleGoodRequest,\n forumpost.ToggleGoodResponseData\n >({\n url: `${prefix}/toggleGood`,\n method: 'POST',\n data: req,\n });\n return res.data;\n }\n\n async toggleTop(req: forumpost.ToggleTopRequest) {\n const res = await request<\n forumpost.ToggleTopRequest,\n forumpost.ToggleTopResponseData\n >({\n url: `${prefix}/toggleTop`,\n method: 'POST',\n data: req,\n });\n return res.data;\n }\n\n async getPostsByGroup(req: forumpost.GetPostsByGroupRequest) {\n const res = await request<\n forumpost.GetPostsByGroupRequest,\n forumpost.GetPostsByGroupResponseData\n >({\n url: `${prefix}/getPostsByGroup`,\n params: req,\n });\n return res.data;\n }\n\n async deleteGroup(req: forumpost.DeleteGroupRequest) {\n const res = await request<\n forumpost.DeleteGroupRequest,\n forumpost.DeleteGroupResponseData\n >({\n url: `${prefix}/deleteGroup`,\n data: req,\n method: 'POST',\n });\n return res.data;\n }\n\n async removePost(req: forumpost.RemovePostRequest) {\n const res = await request<\n forumpost.RemovePostRequest,\n forumpost.RemovePostResponseData\n >({\n url: `${prefix}/removePost`,\n data: req,\n method: 'POST',\n });\n return res.data;\n }\n\n async insertPostGroup(req: forumpost.InsertPostGroupRequest) {\n const res = await request<\n forumpost.InsertPostGroupRequest,\n forumpost.InsertGroupResponseData\n >({\n url: `${prefix}/insertPostGroup`,\n data: req,\n method: 'POST',\n });\n return res.data;\n }\n\n async insertGroup(req: forumpost.InsertGroupRequest) {\n const res = await request<\n forumpost.InsertGroupRequest,\n forumpost.InsertGroupResponseData\n >({\n url: `${prefix}/insertGroup`,\n data: req,\n method: 'POST',\n });\n return res.data;\n }\n\n async createPost(req: forumpost.CreatePostRequest) {\n const res = await request<\n forumpost.CreatePostRequest,\n forumpost.CreatePostResponseData\n >({\n url: `${prefix}/createPost`,\n data: req,\n method: 'POST',\n });\n return res.data;\n }\n\n async selfVisiblePost(req: forumpost.SelfVisiblePostRequest) {\n const res = await request<\n forumpost.SelfVisiblePostRequest,\n forumpost.SelfVisiblePostResponseData\n >({\n url: `${prefix}/selfVisiblePost`,\n data: req,\n method: 'POST',\n });\n return res.data;\n }\n\n async visiblePost(req: forumpost.VisiblePostRequest) {\n const res = await request<\n forumpost.VisiblePostRequest,\n forumpost.VisiblePostResponseData\n >({\n url: `${prefix}/visiblePost`,\n data: req,\n method: 'POST',\n });\n return res.data;\n }\n\n async getPostsByGroupId(req: forumpost.GetPostsByGroupIdRequest) {\n const res = await request<\n forumpost.GetPostsByGroupIdRequest,\n forumpost.GetPostsByGroupIdResponseData\n >({\n url: `${prefix}/getPostsByGroupId`,\n params: req,\n });\n return res.data;\n }\n\n async esSearch(req: forumpost.EsSearchRequest) {\n const res = await request<\n forumpost.EsSearchRequest,\n forumpost.EsSearchResponseData\n >({\n url: `${prefix}/esSearch`,\n params: req,\n });\n return res.data;\n }\n\n async getPost(req: forumpost.GetPostRequest) {\n const res = await request({\n url: `${prefix}/getPost`,\n params: req,\n });\n return res.data;\n }\n\n async getReplyList(req: forum.GetRepliesRequest) {\n const res = await request({\n url: `${formPrefix}/getReplies`,\n params: req,\n });\n return res.data;\n }\n\n async getCommentList(req: forum.GetCommentsRequest) {\n const res = await request({\n url: `${formPrefix}/getComments`,\n params: req,\n });\n return res.data;\n }\n\n async createComment(req: forumpost.CreateCommentRequest) {\n const res = await request({\n url: `${prefix}/createComment`,\n data: req,\n method: 'POST',\n });\n return res.data;\n }\n\n async createReply(req: forumpost.CreateReplyRequest) {\n const res = await request({\n url: `${prefix}/createReply`,\n data: req,\n method: 'POST',\n });\n return res.data;\n }\n\n async deleteComment(req: forumpost.DeleteCommentRequest) {\n const res = await request({\n url: `${prefix}/deleteComment`,\n data: req,\n method: 'POST',\n });\n return res.data;\n }\n\n async toggleCommentDelete(req: forumpost.ToggleCommentDeleteRequest) {\n const res = await request<\n typeof req,\n forumpost.ToggleCommentDeleteResponseData\n >({\n url: `${prefix}/toggleCommentDelete`,\n data: req,\n method: 'POST',\n });\n return res.data;\n }\n\n async deleteReply(req: forumpost.DeleteReplyRequest) {\n const res = await request({\n url: `${prefix}/deleteReply`,\n data: req,\n method: 'POST',\n });\n return res.data;\n }\n\n async selfVisibleComment(req: forumpost.SelfVisibleCommentRequest) {\n const res = await request<\n typeof req,\n forumpost.SelfVisibleCommentResponseData\n >({\n url: `${prefix}/selfVisibleComment`,\n data: req,\n method: 'POST',\n });\n return res.data;\n }\n\n async selfVisibleReply(req: forumpost.SelfVisibleReplyRequest) {\n const res = await request<\n typeof req,\n forumpost.SelfVisibleReplyResponseData\n >({\n url: `${prefix}/selfVisibleReply`,\n data: req,\n method: 'POST',\n });\n return res.data;\n }\n\n async toggleLike(req: forumpost.ToggleLikeRequest) {\n const res = await request({\n url: `${prefix}/toggleLike`,\n data: req,\n method: 'POST',\n });\n return res.data;\n }\n\n async updatePost(req: forumpost.UpdatePostRequest) {\n const res = await request({\n url: `${prefix}/updatePost`,\n data: req,\n method: 'POST',\n });\n return res.data;\n }\n}\n\nexport const forumPostService = new Service();\n","import { bff_prefix } from '@/consts';\nimport { forumuser } from '@/typings/open.platform.forum_bff';\nimport { request } from '@/utils/request';\n\nconst prefix = `${bff_prefix}/forumUser`;\nclass Service {\n async getUserInfo(req: forumuser.GetUserRequest) {\n const res = await request<\n forumuser.GetUserRequest,\n forumuser.GetUserResponseData\n >({\n url: `${prefix}/getUser`,\n params: req,\n });\n return res.data;\n }\n\n async getUserHome(req: forumuser.GetUserHomeRequest) {\n const res = await request<\n forumuser.GetUserHomeRequest,\n forumuser.GetUserHomeResponseData\n >({\n url: `${prefix}/getUserHome`,\n params: req,\n });\n return res.data;\n }\n\n async getUserById(req: forumuser.GetUserByIdRequest) {\n const res = await request<\n forumuser.GetUserByIdRequest,\n forumuser.GetUserByIdResponseData\n >({\n url: `${prefix}/getUserById`,\n params: req,\n });\n return res.data;\n }\n\n async updateBlockStateByUid(req: forumuser.UpdateBlockStateByUidRequest) {\n const res = await request<\n forumuser.UpdateBlockStateByUidRequest,\n forumuser.UpdateBlockStateByUidResponseData\n >({\n url: `${prefix}/updateBlockStateByUid`,\n method: 'POST',\n data: req,\n });\n return res.data;\n }\n\n async toggleFollow(req: forumuser.ToggleFollowRequest) {\n const res = await request<\n forumuser.ToggleFollowRequest,\n forumuser.ToggleFollowResponseData\n >({\n url: `${prefix}/toggleFollow`,\n method: 'POST',\n data: req,\n });\n return res.data;\n }\n\n async getPosts(req: forumuser.GetPostsRequest) {\n const res = await request<\n forumuser.GetPostsRequest,\n forumuser.GetPostsResponseData\n >({\n url: `${prefix}/getPosts`,\n method: 'GET',\n params: req,\n });\n return res.data;\n }\n\n async getReplies(req: forumuser.GetRepliesRequest) {\n const res = await request<\n forumuser.GetRepliesRequest,\n forumuser.GetRepliesResponseData\n >({\n url: `${prefix}/getReplies`,\n method: 'GET',\n params: req,\n });\n return res.data;\n }\n\n async getComment(req: forumuser.GetCommentsRequest) {\n const res = await request<\n forumuser.GetCommentsRequest,\n forumuser.GetCommentsResponseData\n >({\n url: `${prefix}/getComments`,\n method: 'GET',\n params: req,\n });\n return res.data;\n }\n}\n\nexport const forumUserService = new Service();\n","// eslint-disable-next-line eslint-comments/disable-enable-pair\n/* eslint-disable @typescript-eslint/typedef */\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport { SylController, SylApi } from '@syllepsis/adapter';\nimport { Modal, Button, Input, Toast } from '@douyinfe/semi-ui';\nimport styled from '@jupiter/plugin-runtime/styled';\n\nconst Icon = (\n \n \n \n \n);\n\nfunction XiguaSuffix(): React.ReactElement {\n const viewExample = () => {\n window.open(\n 'https://www.feishu.cn/hc/zh-CN/articles/360049067906',\n '_blank',\n );\n };\n return ;\n}\n\nfunction XiguaTitleModal(props: {\n insertExample: () => void;\n}): React.ReactElement {\n const { insertExample } = props;\n return (\n <>\n 粘贴西瓜视频链接\n \n \n );\n}\n\nexport class VideoController extends SylController {\n public modalVisible: boolean = false;\n\n public modalInstance: any | null = null;\n\n public toolbar = {\n className: 'video',\n tooltip: 'video',\n icon: Icon,\n handler: () => {\n this.modalVisible = true;\n let inputRef: any | null = null;\n const info = Modal.info({\n title: (\n {\n this.editor.insertCard('video', {\n src: 'https://www.ixigua.com/iframe/6763174234282787341?autoplay=0',\n });\n info.destroy();\n }}\n />\n ),\n content: (\n \n }\n ref={el => {\n if (el) {\n inputRef = el;\n }\n }}\n />\n \n ),\n onOk: () => {\n if (!inputRef) {\n return;\n }\n const src = inputRef.value;\n\n if (!src) {\n Toast.error('无效链接');\n return;\n }\n\n const match = /https:\\/\\/www.ixigua.com\\/(\\d+)/.exec(src);\n\n if (!match) {\n Toast.error('无效链接');\n return;\n }\n if (match[1]) {\n const transformSrc = `https://www.ixigua.com/iframe/${match[1]}`;\n this.editor.insertCard('video', { src: transformSrc });\n } else {\n Toast.error('无效链接');\n }\n },\n });\n },\n };\n\n constructor(editor: SylApi, store: any) {\n super(editor, store);\n const extraDom = (\n \n );\n const modalWrapper = document.createElement('div');\n document.body.appendChild(modalWrapper);\n ReactDOM.render(extraDom, modalWrapper);\n }\n}\n\nconst XiguaLinkInput = styled.div`\n .addafter {\n padding: 0 !important;\n border: none !important;\n }\n`;\n","// eslint-disable-next-line eslint-comments/disable-enable-pair\n/* eslint-disable @typescript-eslint/typedef */\nimport { configuration } from '@syllepsis/adapter';\nimport { Card } from '@syllepsis/access-react';\n\nconst videoConfiguration = {\n name: 'video',\n tagName: () => 'a',\n parseDOM: [\n {\n tag: 'iframe',\n getAttrs: (dom: HTMLIFrameElement) => {\n const { src } = dom;\n\n if (!src) {\n return false;\n }\n\n return {\n src,\n width: dom.width,\n height: dom.height,\n };\n },\n },\n ],\n attrs: {\n src: {\n default: '',\n },\n width: {\n default: 375,\n },\n height: {\n default: 100,\n },\n },\n};\n\nconst VideoMask = ({ attrs }: { attrs: any }) => (\n // 这里不要使用 style-component\n // 传输的是 html 文本,渲染会无法关联到样式\n
\n \n
\n);\n\n@configuration({\n ...videoConfiguration,\n})\nexport class VideoView extends Card {\n public ViewMap = {\n template: VideoMask, // getHtml() 获取到的内容\n mask: VideoMask, // 容器内的展现\n };\n\n // public renderer = this.mount({ name: 'video' });\n}\n","// eslint-disable-next-line eslint-comments/disable-enable-pair\n/* eslint-disable @typescript-eslint/typedef */\nimport { SylPlugin } from '@syllepsis/adapter';\nimport { VideoController } from './controller';\nimport { VideoView } from './view';\n\nexport class VideoPlugin extends SylPlugin {\n public name = 'video';\n\n public Controller = VideoController;\n\n public Schema = VideoView;\n}\n","import { bff_prefix } from '@/consts';\nimport { upload } from '@/typings/open.platform.forum_bff';\nimport { request } from '@/utils/request';\n\nclass Service {\n async uploadImage(req: FormData) {\n const res = await request({\n url: `${bff_prefix}/upload_image`,\n data: req,\n method: 'POST',\n });\n return res.data;\n }\n}\n\nexport const uploadService = new Service();\n","import React, { useState } from 'react';\nimport { SylApi } from '@syllepsis/adapter';\nimport {\n // Config,\n BlockQuotePlugin,\n BoldPlugin,\n BulletListPlugin,\n // CodeBlockPlugin,\n FontSizePlugin,\n HrPlugin,\n ItalicPlugin,\n ListItemPlugin,\n SubPlugin,\n SupPlugin,\n OrderedListPlugin,\n StrikePlugin,\n UnderlinePlugin,\n ParagraphPlugin,\n HeaderPlugin,\n FormatClearPlugin,\n LetterSpacePlugin,\n UndoPlugin,\n RedoPlugin,\n AlignLeftPlugin,\n SpaceBeforePlugin,\n SpaceBothPlugin,\n SpaceAfterPlugin,\n LineHeightPlugin,\n LineIndentPlugin,\n FormatPainterPlugin,\n AlignCenterPlugin,\n AlignJustifyPlugin,\n AlignRightPlugin,\n} from '@syllepsis/plugin-basic';\nimport { CodeBlockPlugin } from '@syllepsis/plugin-code-block';\nimport {\n // ToolbarInlineLoader,\n ToolbarLoader,\n ISylEditorProps,\n} from '@syllepsis/editor';\n// import {\n// DocImportPlugin, // 文档导入插件\n// } from '@byted/syllepsis_plugins';\nimport {\n SylEditor,\n Toolbar,\n\n // AnchorUtil,\n // ImagePlugin,\n LinkPlugin,\n BackgroundPlugin,\n ColorPlugin,\n EmojiPlugin,\n // ImagePlugin,\n InlineImagePlugin,\n // VideoPlugin\n} from '@syllepsis/access-react';\n// import { ImagePlugin } from 'components/syl-editor/plugins/image';\n// import { VideoPlugin } from 'components/syl-editor/plugins/video';\nimport { TablePlugin } from '@syllepsis/plugin-table';\nimport { Toast } from '@douyinfe/semi-ui';\nimport { VideoPlugin } from './video';\nimport { uploadService } from '@/api/Upload';\nimport usePostImageSet from '@/hooks/usePostImageSet';\n// import { ToolbarInline } from '@syl-editor/react-syl-editor-v2/dist/lib/modules/toolbar/render/inline';\n\ntype Props = {\n getEditorInstance: (editor: SylApi) => void;\n} & React.HTMLProps;\n\nconst locale = {\n header1: {\n tooltip: '一级标题',\n },\n header2: {\n tooltip: '二级标题',\n },\n header3: {\n tooltip: '三级标题',\n },\n\n background: {\n tooltip: '背景颜色',\n },\n color: {\n tooltip: '字体颜色',\n },\n\n undo: {\n tooltip: '撤销',\n },\n redo: {\n tooltip: '重做',\n },\n format_clear: {\n tooltip: '清除格式',\n },\n format_painter: {\n tooltip: '格式刷',\n },\n header: {\n tooltip: '多级标题',\n },\n block_quote: {\n tooltip: '引用',\n },\n bullet_list: {\n tooltip: '无序列表',\n },\n ordered_list: {\n tooltip: '有序列表',\n },\n code_block: {\n tooltip: '代码块',\n },\n image: {\n tooltip: '图片',\n placeholder: '请输入图片描述',\n left: '居左',\n center: '居中',\n right: '居右',\n },\n link: {\n tooltip: '链接',\n editLinkTitle: '修改链接',\n insertLinkTitle: '插入链接',\n textPlaceholder: '请输入链接文本',\n linkPlaceholder: '请输入链接地址',\n cancelText: '取消',\n okText: '确定',\n },\n video: {\n tooltip: '视频',\n },\n emoji: {\n tooltip: '表情',\n },\n hr: {\n tooltip: '分割线',\n },\n bold: {\n tooltip: '粗体',\n },\n italic: {\n tooltip: '斜体',\n },\n underline: {\n tooltip: '下划线',\n },\n strike: {\n tooltip: '删除线',\n },\n sub: {\n tooltip: '下标',\n },\n sup: {\n tooltip: '上标',\n },\n font_size: {\n tooltip: '字体大小',\n },\n anchor: {\n tooltip: '锚点',\n },\n align_left: {\n tooltip: '左对齐',\n },\n align_center: {\n tooltip: '居中对齐',\n },\n align_right: {\n tooltip: '右对齐',\n },\n align_justify: {\n tooltip: '等分对齐',\n },\n};\n\nexport const EditorV2: React.FC = ({\n getEditorInstance,\n ...rest\n}: Props) => {\n const { setUrlSet } = usePostImageSet();\n const [plugins] = useState([\n new FontSizePlugin({\n values: [12, 14, 16, 18, 20, 24, 32, 48, 64, 96],\n }),\n new AlignLeftPlugin(),\n new AlignCenterPlugin(),\n new AlignRightPlugin(),\n new AlignJustifyPlugin(),\n new VideoPlugin(),\n new LinkPlugin(),\n new SubPlugin(),\n new SupPlugin(),\n new HeaderPlugin(),\n new BlockQuotePlugin(),\n new BoldPlugin(),\n new BulletListPlugin(),\n new FormatClearPlugin(),\n new HrPlugin(),\n new ItalicPlugin(),\n new OrderedListPlugin(),\n new StrikePlugin(),\n new UnderlinePlugin(),\n new ParagraphPlugin(),\n new LetterSpacePlugin(),\n new AlignLeftPlugin(),\n new BackgroundPlugin(),\n new ColorPlugin(),\n new TablePlugin(),\n new ListItemPlugin(),\n new EmojiPlugin(),\n new InlineImagePlugin({\n deleteFailedUpload: true,\n allowDomains: () => true,\n uploader: async (f, attrs) => {\n const resp = await fetch(attrs.src);\n const content = await resp.blob();\n const uploadFormData = new FormData();\n uploadFormData.append('file', content);\n const errorImageUrl =\n 'http://p9-ma-forum-sign.byteimg.com/tos-cn-i-ho98pwquqr/bb3462428ca092061893828e16379dcc.png~tplv-ho98pwquqr-image.image';\n\n const res = await uploadService.uploadImage(uploadFormData);\n if (res.error) {\n Toast.error('图片上传失败');\n return {\n src: errorImageUrl,\n };\n } else {\n setUrlSet([\n {\n url: res.data.url || '',\n uri: res.data.uri || '',\n },\n ]);\n return res.data.url || '';\n }\n },\n }),\n // new CodeBlockPlugin(),\n // new FontFamilyPlugin(),\n ]);\n const [modules] = useState({\n toolbar: {\n Ctor: ToolbarLoader,\n option: {\n Component: Toolbar,\n tooltips: {\n [RedoPlugin.getName()]: '重做',\n [UndoPlugin.getName()]: '撤销',\n [HeaderPlugin.getName()]: '标题',\n [BulletListPlugin.getName()]: '无序列表',\n [OrderedListPlugin.getName()]: '有序列表',\n [CodeBlockPlugin.getName()]: '代码块',\n [BlockQuotePlugin.getName()]: '引用',\n [BoldPlugin.getName()]: '加粗',\n [ItalicPlugin.getName()]: '斜体',\n [UnderlinePlugin.getName()]: '下划线',\n [StrikePlugin.getName()]: '删除线',\n [FontSizePlugin.getName()]: '字体大小',\n [LetterSpacePlugin.getName()]: '字间距',\n [BackgroundPlugin.getName()]: '背景色',\n [FormatPainterPlugin.getName()]: '格式刷',\n [FormatClearPlugin.getName()]: '清除格式',\n [ColorPlugin.getName()]: '颜色',\n [VideoPlugin.getName()]: '视频',\n [HrPlugin.getName()]: '分割线',\n [LinkPlugin.getName()]: '超链接',\n [SubPlugin.getName()]: '下标',\n [SupPlugin.getName()]: '上标',\n [EmojiPlugin.getName()]: 'emoji 表情',\n [TablePlugin.getName()]: '表格',\n [SpaceBeforePlugin.getName()]: '段前距',\n [SpaceAfterPlugin.getName()]: '段后距',\n [SpaceBothPlugin.getName()]: '两端缩进',\n [LineHeightPlugin.getName()]: '行高',\n [LineIndentPlugin.getName()]: '首行缩进',\n },\n tools: [\n UndoPlugin.getName(),\n RedoPlugin.getName(),\n HeaderPlugin.getName(),\n BulletListPlugin.getName(),\n OrderedListPlugin.getName(),\n CodeBlockPlugin.getName(),\n BlockQuotePlugin.getName(),\n BoldPlugin.getName(),\n ItalicPlugin.getName(),\n UnderlinePlugin.getName(),\n StrikePlugin.getName(),\n FontSizePlugin.getName(),\n LetterSpacePlugin.getName(),\n BackgroundPlugin.getName(),\n FormatClearPlugin.getName(),\n FormatPainterPlugin.getName(),\n ColorPlugin.getName(),\n VideoPlugin.getName(),\n HrPlugin.getName(),\n LinkPlugin.getName(),\n SubPlugin.getName(),\n SupPlugin.getName(),\n EmojiPlugin.getName(),\n [\n AlignLeftPlugin.getName(),\n AlignCenterPlugin.getName(),\n AlignRightPlugin.getName(),\n AlignJustifyPlugin.getName(),\n ],\n SpaceBeforePlugin.getName(),\n SpaceAfterPlugin.getName(),\n SpaceBothPlugin.getName(),\n LineHeightPlugin.getName(),\n LineIndentPlugin.getName(),\n UndoPlugin.getName(),\n RedoPlugin.getName(),\n InlineImagePlugin.getName(),\n FontSizePlugin.getName(),\n TablePlugin.getName(),\n // 'format_clear',\n // 'format_painter',\n // '|',\n // 'header',\n // 'block_quote',\n // 'bullet_list',\n // 'ordered_list',\n // 'code_block',\n // 'link',\n // 'video',\n // 'audio',\n // 'emoji',\n // 'hr',\n // 'bold',\n // 'italic',\n // 'underline',\n // 'strike',\n // 'sub',\n // 'sup',\n // 'font_size',\n // 'anchor',\n // 'align_left',\n // 'align_center',\n // 'align_right',\n // 'align_justify',\n // 'space_before',\n // 'space_after',\n // 'space_both',\n // 'line_height',\n // 'line_indent',\n // 'background',\n // 'color',\n ],\n },\n },\n });\n\n // const { defaultValue, placeholder, resetValue, onChange } = props;\n // const editorRef = useRef(null);\n // const [adapter, setAdapter] = useState();\n // useEffect(() => {\n // adapter?.setHTML(defaultValue || '');\n // }, [defaultValue, adapter]);\n\n // useEffect(() => {\n // if (typeof resetValue === 'undefined') {\n // return;\n // }\n // adapter?.setHTML('');\n // }, [resetValue]);\n\n // const traceContentChange = (editor: SylApi) => {\n // editor.on(EventChannel.LocalEvent.TEXT_CHANGED, () => {\n // // console.log('内容发生变化,可通过调用 adapter.getHTML() 获取内容', editor?.getHTML());\n\n // const html = editor?.getHTML() || '';\n // const text = editor?.getText() || '';\n // // console.log(html);\n\n // if (onChange) {\n // onChange && onChange(html, text);\n // }\n // });\n // };\n\n return (\n
\n {\n getEditorInstance(editor);\n }}\n />\n
\n );\n};\n\nexport default EditorV2;\n","import { Tooltip } from '@douyinfe/semi-ui';\nimport styled from '@jupiter/plugin-runtime/styled';\nimport { IconEdit } from '@douyinfe/semi-icons';\nimport { useScope } from '@/hooks/useScope';\n\nexport const IconPost = () => {\n const scope = useScope();\n return (\n \n {\n if (window.Garfish) {\n window.open(`${window.location.origin}/forum/${scope}/post/new`);\n } else {\n window.open(`${window.location.origin}/${scope}/post/new`);\n }\n }}>\n \n \n \n );\n};\n\nconst StyledIcoPost = styled.div`\n width: 48px;\n height: 48px;\n position: fixed;\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: #fff;\n border-radius: 100%;\n color: rgba(23, 26, 28, 0.65);\n right: 32px;\n bottom: 192px;\n cursor: pointer;\n filter: drop-shadow(0px 4px 14px rgba(0, 0, 0, 0.1));\n &:hover {\n color: #3c89ff;\n }\n`;\n","import useSWR from 'swr';\nimport { useScope } from './useScope';\nimport { Scope } from '@/typings/fe';\nimport { forumPostService } from '@/api/forumPost';\n\nconst fetcher = async (_url: string, scope: Scope) => {\n const res = await forumPostService.getBanners({\n Scope: scope,\n });\n if (res.error) {\n throw new Error();\n }\n return res.data;\n};\n\nexport const useBanner = () => {\n const scope = useScope();\n\n const { data, isValidating } = useSWR(['banner', scope], fetcher);\n\n return {\n banners: data?.Banners || [],\n loading: isValidating,\n };\n};\n","import { Carousel, Spin } from '@douyinfe/semi-ui';\nimport { useBanner } from '@/hooks/useBanner';\nimport Y from '@/assets/3.jpg';\nimport Z from '@/assets/4.jpg';\nimport { reportClickBanner } from '@/report';\nimport { useScope } from '@/hooks/useScope';\nimport { Scope } from '@/typings/fe';\n\nconst ScopeMap: Record = {\n other: [Z],\n synthesize: [Y, Z],\n merchant: [Z],\n 'mini-app': [Y, Z],\n 'mini-game': [Y, Z],\n};\n\nexport const Banners = () => {\n const { banners, loading } = useBanner();\n const scope = useScope();\n\n if (loading) {\n return (\n \n \n \n );\n }\n return (\n
\n {\n \n {banners.length > 0\n ? banners.map((banner, index) => (\n {\n reportClickBanner({\n banner_id: banner.Id,\n pic_link: banner.Image,\n post_link: banner.Url,\n label: banner.Label,\n serial: banner.Serial,\n post_title: banner.Title,\n });\n window.open(banner.Url);\n // history.push(banner.Url);\n }}\n key={index}\n style={{\n backgroundSize: 'cover',\n backgroundImage: `url(${banner.Image})`,\n cursor: 'pointer',\n }}>
\n ))\n : ScopeMap[scope].map((banner, index) => (\n {'Banner图'}\n ))}\n \n }\n \n );\n};\n","import { Typography, Avatar } from '@douyinfe/semi-ui';\nimport { Rightarrow, Smile, User } from '@okee-fe/react-icons-dy-open';\nimport { useHistory } from '@jupiter/plugin-runtime/router';\nimport cls from 'classnames';\nimport style from './index.module.scss';\nimport { useUserInfo } from '@/hooks/useUserInfo';\nimport { useUserHome } from '@/hooks/useUserHome';\n\ntype UserCardProps = {\n title: string;\n num?: number;\n userId?: string;\n};\n\nconst UserCard = ({ title, num = 0, userId }: UserCardProps) => (\n {\n window.open(`${window.location.origin}/forum/user/${userId || ''}`);\n }}>\n {title}\n \n {num}\n \n \n);\n\nconst toLogin = () => {\n window.Garfish.channel.emit('main:login-activate');\n};\n\nexport const UserHome = () => {\n const { User: currentUser, ifLogin } = useUserInfo();\n const history = useHistory();\n const { data } = useUserHome();\n\n const toUserHome = () => {\n history.push(`/user/${currentUser?.Id || ''}`);\n };\n\n return (\n \n
\n
\n \n {ifLogin ? (\n <>\n {currentUser?.Avatar ? (\n \n ) : (\n \n )}\n\n {currentUser?.Name}\n \n ) : (\n <>\n \n 欢迎来到开发者社区\n \n )}\n \n
\n {\n if (ifLogin) {\n toUserHome();\n } else {\n toLogin();\n }\n }}>\n \n {ifLogin ? '个人中心' : '去登录'}\n \n \n
\n \n
\n \n \n
\n
\n \n \n
\n \n );\n};\n","// import { useRequest } from '@byted/hooks';\n// import { forumUserService } from '@/api/forumUser';\n\nimport useSWR from 'swr';\nimport { useUserInfo } from './useUserInfo';\nimport { forumUserService } from '@/api/forumUser';\nimport useBiz from '@/context/useBiz';\n\n// const fetcher = async (pageNo: number) => {\n// const res = await forumUserService.getUserHome();\n// };\n\nexport const useUserHome = () => {\n const { User } = useUserInfo();\n const biz = useBiz(state => state.biz);\n const { data } = useSWR(\n User ? { url: 'getUserHome', User } : null,\n async ({ User: _User }) => {\n const res = await forumUserService.getUserHome({\n ToUserId: _User?.Id,\n Biz: biz,\n });\n if (res.error) {\n throw new Error();\n }\n return res.data;\n },\n );\n // const {} = useRequest();\n\n return {\n data,\n };\n};\n","import { useRequest } from '@byted/hooks';\nimport { useEffect, useState } from 'react';\nimport InfiniteScroll from 'react-infinite-scroller';\nimport { Empty, Spin } from '@douyinfe/semi-ui';\nimport {\n IllustrationNoResult,\n IllustrationNoResultDark,\n} from '@douyinfe/semi-illustrations';\nimport { PostItem } from './PostItem';\nimport { useScope } from '@/hooks/useScope';\nimport { Post } from '@/typings/open.platform.forum_bff/namespaces/forumpost';\nimport { forumPostService } from '@/api/forumPost';\nimport { PostType } from '@/typings/fe';\nimport { useUserInfo } from '@/hooks/useUserInfo';\nimport usePost from '@/context/usePost';\nimport useBiz from '@/context/useBiz';\n\ntype Props = {\n scrollParentRef: React.MutableRefObject;\n postType?: PostType;\n choice: 'recommend' | 'hottest';\n} & React.HTMLAttributes;\nexport const PostList = ({\n scrollParentRef,\n postType = 'all',\n choice,\n}: Props) => {\n const biz = useBiz(s => s.biz);\n const scope = useScope();\n const [postList, setPostList] = useState([]);\n const { isAdmin } = useUserInfo();\n const fetcher = async (pageNo: number) => {\n const res = await forumPostService.getPosts({\n Type: postType,\n Scope: scope,\n Uid: '',\n Biz: biz,\n Choice: choice,\n PageNo: pageNo,\n PageSize: 10,\n });\n if (res.error) {\n return {\n hasMore: false,\n list: [],\n pageNo,\n };\n }\n return {\n hasMore: res.data.List.length === 10,\n list: res.data.List,\n pageNo,\n };\n };\n const { run, loading, data, reset } = useRequest(fetcher, {\n auto: false,\n // Trick 销毁社区子应用后不发起请求\n ready: window.location.pathname.includes('forum') && biz !== 0,\n onSuccess: res => {\n if (res) {\n setPostList(list => [...list, ...res.list]);\n }\n },\n });\n useEffect(() => {\n if (biz === 0) {\n return;\n }\n setPostList([]);\n run(1);\n }, [scope, choice, biz]);\n\n useEffect(() => {\n const unsubscribe = usePost.subscribe(state => {\n if (state.shouldRefetch) {\n setPostList([]);\n run(1);\n usePost.setState({ shouldRefetch: false });\n }\n });\n return () => {\n unsubscribe();\n };\n }, [reset]);\n\n if (loading && !postList.length) {\n return (\n
\n \n
\n );\n }\n if (postList.length === 0) {\n return (\n \n }\n darkModeImage={\n \n }\n description=\"暂无内容,欢迎发帖\"\n />\n );\n }\n return (\n scrollParentRef.current}\n initialLoad={false}\n pageStart={1}\n threshold={20}\n useWindow={false}\n hasMore={data?.hasMore && !loading}\n loadMore={page => {\n if (!loading && data?.hasMore) {\n run(page);\n }\n }}>\n {postList.map((post, index) => (\n \n ))}\n {loading && data?.hasMore && (\n
\n \n
\n )}\n \n );\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"link\":\"index-module__link--MpLeO\",\"board\":\"index-module__board--e5WbD\",\"special\":\"index-module__special--3MXNQ\",\"hash\":\"index-module__hash--wn9tp\"};","import { Link, useHistory } from '@jupiter/plugin-runtime/router';\nimport { IconPlus, IconHash, IconCrossStroked } from '@douyinfe/semi-icons';\nimport cls from 'classnames';\nimport {\n Button,\n Empty,\n Popconfirm,\n Space,\n Spin,\n Toast,\n} from '@douyinfe/semi-ui';\n\nimport Title from '@douyinfe/semi-ui/lib/es/typography/title';\nimport Text from '@douyinfe/semi-ui/lib/es/typography/text';\nimport { Rightarrow } from '@okee-fe/react-icons-dy-open';\nimport style from './index.module.scss';\nimport {\n useInsertGroupModal,\n useInsertPostGroupModal,\n useDeletePostGroup,\n useDeleteGroup,\n useGetPostsByGroup,\n} from './hooks';\nimport useBiz from '@/context/useBiz';\nimport { useUserInfo } from '@/hooks/useUserInfo';\nimport {\n GetPostsByGroupResponseData,\n Group,\n GroupType,\n} from '@/typings/open.platform.forum_bff/namespaces/forumpost';\nimport { STD_DATE_FORMAT_RE, OFFICIAL } from '@/consts';\nimport { useScope } from '@/hooks/useScope';\nimport { Scope } from '@/typings/fe';\n\nconst ellipsis = {\n rows: 1,\n};\n\nconst renderNoticeItem = (notice: Group, ifAdmin: boolean, scope: Scope) => {\n if (notice.PostList.length > 0) {\n return notice.PostList.map(item => (\n
  • \n
    \n \n \n {item.Title}\n \n \n \n {item.UpdatedAt.replace(STD_DATE_FORMAT_RE, '$2/$3')}\n \n
    \n
  • \n ));\n }\n if (ifAdmin) {\n return ;\n }\n return null;\n};\n\nfunction renderOtherItem(\n group: Group,\n ifAdmin: boolean,\n scope: Scope,\n deletePostGroup: (id: string, groupId: string) => Promise,\n refetch: () => Promise,\n) {\n if (group.PostList.length > 0) {\n return group.PostList.map(item => (\n \n
    \n \n \n {item.Title}\n \n \n
    \n\n {ifAdmin && (\n {\n await deletePostGroup(item.Id, group.Id);\n await refetch();\n Toast.success('删除成功');\n }}>\n
    \n \n
    \n \n )}\n \n ));\n }\n if (ifAdmin) {\n return ;\n }\n return null;\n}\n\nconst Panel: React.FC = ({ children }) => (\n
    {children}
    \n);\n\nconst NoticeBoard: React.FC<{\n notice?: Group;\n}> = ({ notice }) => {\n const { ifAdmin } = useUserInfo();\n const scope = useScope();\n return (\n <>\n {notice && (\n \n
    \n
    \n \n {notice.Name}\n \n
    \n
    \n \n \n 更多\n \n \n \n
    \n
    \n
      \n {renderNoticeItem(notice, Boolean(ifAdmin), scope)}\n
    \n
    \n )}\n \n );\n};\n\nconst OtherBoard: React.FC<{\n group: Group;\n ifAdmin: boolean;\n refetch: () => Promise;\n}> = ({ ifAdmin, refetch, group }) => {\n const biz = useBiz(s => s.biz);\n const scope = useScope();\n const { deletePostGroup } = useDeletePostGroup();\n const { deleteGroup } = useDeleteGroup();\n const { renderAddPostModal } = useInsertPostGroupModal();\n\n return (\n <>\n \n
    \n
    \n \n {group.Name}\n \n {ifAdmin && (\n {\n await deleteGroup(group.Id, biz);\n await refetch();\n Toast.success('删除成功');\n }}>\n \n [删除]\n \n \n )}\n
    \n
    \n \n \n \n 更多\n \n \n \n \n
    \n
    \n
    \n {renderOtherItem(group, ifAdmin, scope, deletePostGroup, refetch)}\n
    \n {ifAdmin && (\n
    \n {\n renderAddPostModal(group.Id, refetch);\n }}>\n \n
    添加帖子
    \n
    \n \n
    \n )}\n
    \n \n );\n};\n\nexport const Topic: React.FC = () => {\n const scope = useScope();\n const biz = useBiz(state => state.biz);\n const { ifAdmin } = useUserInfo();\n const { getPostsByGroup, posts } = useGetPostsByGroup();\n const { renderInsertGroupModal, triggerAddModal } = useInsertGroupModal();\n const { deleteGroup } = useDeleteGroup();\n\n const special = posts?.List.filter(v => v.GroupType === GroupType.Special);\n const history = useHistory();\n\n if (!special?.length && !ifAdmin) {\n return null;\n }\n\n return (\n \n
    专题推荐
    \n
    \n {special?.map(item => (\n {\n history.push(\n `/${scope}/billboard?id=${item.Id}&title=${item.Name}`,\n );\n }}\n type=\"tertiary\"\n className={cls(style.special, 'mr-2 mb-3 rounded')}>\n \n \n {item.Name}\n {ifAdmin && (\n {\n await deleteGroup(item.Id, biz);\n await getPostsByGroup();\n Toast.success('删除成功');\n }}>\n e.stopPropagation()}\n size=\"small\"\n className=\"text-semi-color-text-1 hover:text-semi-color-primary\"\n />\n \n )}\n \n \n ))}\n
    \n {ifAdmin && (\n
    \n {\n triggerAddModal(GroupType.Special, async () => {\n await getPostsByGroup();\n });\n }}>\n \n
    添加专题
    \n
    \n \n {renderInsertGroupModal()}\n
    \n )}\n
    \n );\n};\n\nexport const NoticeCard: React.FC<{\n refetch: () => Promise;\n data?: GetPostsByGroupResponseData;\n loading?: boolean;\n}> = ({ refetch, loading, data }) => {\n const { ifAdmin } = useUserInfo();\n\n const notice = data?.List.find(v => v.Name === OFFICIAL);\n\n // 查看更多\n return (\n \n
    \n {(notice?.PostList.length || ifAdmin) && (\n \n )}\n\n {data?.List.filter(\n v => v.GroupType !== GroupType.Special && v.Name !== OFFICIAL,\n ).map(\n v =>\n (v.PostList.length || ifAdmin) && (\n \n ),\n )}\n
    \n
    \n );\n};\n\nexport const AddBoard: React.FC<{\n refetch: () => Promise;\n}> = ({ refetch }) => {\n const { renderInsertGroupModal: renderAddModal, triggerAddModal } =\n useInsertGroupModal();\n const { ifAdmin } = useUserInfo();\n\n if (!ifAdmin) {\n return null;\n }\n return (\n
    \n {\n triggerAddModal(GroupType.Board, refetch);\n }}>\n \n 新增看板\n \n \n {renderAddModal()}\n
    \n );\n};\n","import { Tooltip } from '@douyinfe/semi-ui';\nimport styled from '@jupiter/plugin-runtime/styled';\nimport { IconDoc } from '@okee-fe/react-icons-dy-open';\nimport { useScope } from '@/hooks/useScope';\n\nexport const IconProtocol = () => {\n const scope = useScope();\n return (\n \n {\n if (window.Garfish) {\n window.open(\n `${window.location.origin}/forum/${scope}/post/627498dd42658790aa33c892`,\n );\n } else {\n window.open(\n `${window.location.origin}/${scope}/post/627498dd42658790aa33c892`,\n );\n }\n }}>\n \n \n \n );\n};\n\nconst StyledIcoPost = styled.div`\n width: 48px;\n height: 48px;\n position: fixed;\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: #fff;\n border-radius: 100%;\n color: rgba(23, 26, 28, 0.65);\n right: 32px;\n bottom: 128px;\n cursor: pointer;\n filter: drop-shadow(0px 4px 14px rgba(0, 0, 0, 0.1));\n &:hover {\n color: #3c89ff;\n }\n`;\n","import {\n Button,\n Space,\n Tabs,\n Typography,\n BackTop,\n Tooltip,\n} from '@douyinfe/semi-ui';\nimport React, { useRef, useState } from 'react';\nimport classnames from 'classnames/bind';\nimport { IconArrowUp } from '@douyinfe/semi-icons';\nimport styled from '@jupiter/plugin-runtime/styled';\nimport { useScroll } from '@byted/hooks';\nimport { useHistory } from '@jupiter/plugin-runtime/router';\nimport { Banners } from './Banners';\nimport { UserHome } from './UserHome';\nimport { PostList } from './PostList';\nimport { NoticeCard, Topic, AddBoard } from './NoticeCard';\nimport styles from './index.module.scss';\nimport { useGetPostsByGroup } from './NoticeCard/hooks';\nimport { IconPost } from './IconPost';\nimport { IconProtocol } from './IconProtocol';\nimport { useScope } from '@/hooks/useScope';\n\nconst clx = classnames.bind(styles);\n\nexport const IndexPage = () => {\n const [shouldFixed, setShouldFixed] = useState(false);\n const scrollListenRef = useRef(null);\n const scrollListenAnothorRef = useRef(null);\n const [scrollParentRef] = useScroll(\n undefined,\n {\n onScroll() {\n if (Number(getTopDistance()) < 140 && !shouldFixed) {\n setShouldFixed(true);\n }\n if (distanceDiff() < 14 && shouldFixed) {\n setShouldFixed(false);\n }\n },\n },\n [shouldFixed],\n );\n\n const [choice, setChoice] = useState<'recommend' | 'hottest'>('recommend');\n const history = useHistory();\n const scope = useScope();\n const { getPostsByGroup, posts, loading } = useGetPostsByGroup();\n\n const getTopDistance = () => {\n if (scrollListenRef.current) {\n return scrollListenRef.current.getBoundingClientRect().top;\n }\n return undefined;\n };\n\n const distanceDiff = () => {\n const topDistance =\n scrollListenAnothorRef.current?.getBoundingClientRect().bottom;\n\n if (topDistance && topDistance < 0) {\n return (\n Math.abs(topDistance) +\n Number(scrollListenRef.current?.getBoundingClientRect().top)\n );\n } else {\n return (\n Number(scrollListenRef.current?.getBoundingClientRect().top) -\n Number(topDistance)\n );\n }\n };\n\n return (\n \n \n \n
    \n
    \n 交流专区\n {\n history.push(`/${scope}/post/new`);\n }}>\n 发帖\n \n
    \n \n setChoice('recommend')}>\n 推荐\n \n setChoice('hottest')}>\n 最热\n \n \n }>\n \n \n \n \n \n \n \n \n \n \n
    \n \n
    \n \n
    \n getPostsByGroup()}\n />\n getPostsByGroup()} />\n
    \n \n \n
    \n \n {scrollParentRef.current && (\n \n scrollParentRef.current}>\n \n \n \n )}\n \n \n \n );\n};\n\nconst StyledBackTop = styled(BackTop)`\n display: flex;\n align-items: center;\n background-color: #fff;\n height: 48px;\n width: 48px;\n right: 32px;\n border-radius: 100%;\n justify-content: center;\n color: rgba(23, 26, 28, 0.65);\n filter: drop-shadow(0px 4px 14px rgba(0, 0, 0, 0.1));\n &:hover {\n color: #3c89ff;\n }\n`;\n\ntype StyledChoiceButtonProps = {\n selected: boolean;\n} & React.HTMLAttributes;\n\nconst ChoiceButton: React.FC = ({\n children,\n selected,\n ...reset\n}) =>
    {children}
    ;\n\nconst StyledChoiceButton = styled(ChoiceButton)`\n font-size: 14px;\n line-height: 20px;\n padding: 2px 12px;\n font-weight: 400;\n border-radius: 3px;\n color: rgba(23, 26, 28, 0.45);\n cursor: pointer;\n ${({ selected = false }) => {\n if (selected) {\n return `\n color:#171A1C ;\n border-radius: 3px;\n background-color: rgba(46, 50, 56, 0.05);\n cursor:default ;\n font-weight: 500;\n cursor: pointer;\n\n `;\n }\n return ``;\n }}\n`;\n","import { Button } from '@douyinfe/semi-ui';\nimport styled from '@jupiter/plugin-runtime/styled';\nimport { ReactNode } from 'react';\nimport { useUserInfo } from '@/hooks/useUserInfo';\n\ninterface Props {\n children: ReactNode;\n}\nconst Wrapper = styled.div`\n position: relative;\n`;\n\nconst Blur = styled(\n ({ blur, ...rest }: { blur: boolean; children: ReactNode }) => (\n
    \n ),\n)`\n position: relative;\n filter: ${props => (props.blur ? 'blur(2px)' : 'none')};\n`;\n\nconst Mask = styled.div`\n position: absolute;\n z-index: 3;\n display: flex;\n align-items: center;\n justify-content: center;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n`;\n\nexport const LoginMask = ({ children }: Props) => {\n // const { info: userInfoFromRoot } = StoreInfoModel.useContext();\n\n // const notLogin = !userInfoFromRoot;\n\n const { ifLogin } = useUserInfo();\n\n return (\n \n {children}\n {!ifLogin && (\n {\n if (window.Garfish) {\n window.Garfish.channel.emit('main:login-activate');\n }\n }}>\n \n \n )}\n \n );\n};\n","import { useRequest } from '@byted/hooks';\nimport { Toast, Modal, Select, Input, Form } from '@douyinfe/semi-ui';\nimport { useRef, useState } from 'react';\nimport { FormApi } from '@douyinfe/semi-ui/lib/es/form';\nimport { toastError } from '@/utils/toastError';\nimport { forumPostService } from '@/api/forumPost';\nimport { Biz } from '@/typings/open.platform.forum_bff/namespaces/configure';\nimport { GroupType } from '@/typings/open.platform.forum_bff/namespaces/forumpost';\nimport { Scope } from '@/typings/fe';\nimport useBiz from '@/context/useBiz';\nimport { useScope } from '@/hooks/useScope';\n\nexport function useDeleteGroup() {\n const { loading: deletingGroup, run: deleteGroup } = useRequest(\n async (groupId: string, biz: Biz) => {\n try {\n const res = await forumPostService.deleteGroup({\n Biz: biz,\n Uid: '',\n GroupId: groupId,\n });\n if (res.error) {\n throw new Error(res.message);\n }\n } catch (e) {\n toastError(e);\n }\n },\n {\n auto: false,\n },\n );\n return { deleteGroup, deletingGroup };\n}\n\nexport function useInsertPostGroup() {\n const biz = useBiz(s => s.biz);\n const { run: insertPostGroup, loading: addingPost } = useRequest(\n async (groupId: string, postId: string, order?: number) => {\n try {\n const res = await forumPostService.insertPostGroup({\n GroupId: groupId,\n PostId: postId,\n Uid: '',\n Biz: biz,\n Index: order,\n });\n if (res.error) {\n throw new Error(res.message);\n }\n } catch (e) {\n toastError(e);\n }\n },\n {\n auto: false,\n },\n );\n return { insertPostGroup, addingPost };\n}\n\nexport function useInsertGroup() {\n const { loading: addingGroup, run: addGroup } = useRequest(\n async (name: string, type: GroupType, biz: Biz, scope: Scope) => {\n try {\n const res = await forumPostService.insertGroup({\n Uid: '',\n Biz: biz,\n Scope: scope,\n Name: name,\n GroupType: type,\n });\n if (res.error) {\n throw new Error(res.message);\n }\n } catch (e) {\n toastError(e);\n }\n },\n {\n auto: false,\n },\n );\n return { addingGroup, insertGroup: addGroup };\n}\n\nexport function useDeletePostGroup() {\n const biz = useBiz(s => s.biz);\n const { run: deletePostGroup, loading: removingPost } = useRequest(\n async (postId: string, groupId: string) => {\n try {\n const res = await forumPostService.deletePostGroup({\n Uid: '',\n GroupId: groupId,\n PostId: postId,\n Biz: biz,\n });\n if (res.error) {\n throw new Error(res.message);\n }\n } catch (e) {\n toastError(e);\n }\n },\n {\n auto: false,\n },\n );\n return { deletePostGroup, removingPost };\n}\n\nexport function useGetPostsByGroup() {\n const scope = useScope();\n const {\n data: posts,\n run: getPostsByGroup,\n loading,\n } = useRequest(\n async () => {\n try {\n const res = await forumPostService.getPostsByGroup({\n Scope: scope,\n });\n if (res.error) {\n throw new Error(res.message);\n }\n return res.data;\n } catch (e) {\n toastError(e);\n }\n return undefined;\n },\n {\n auto: true,\n refreshDeps: [scope],\n // Trick 销毁社区子应用后不发起请求\n ready: window.location.pathname.includes('forum'),\n },\n );\n\n return { getPostsByGroup, loading, posts };\n}\n\nexport const useInsertPostGroupModal = () => {\n const { insertPostGroup } = useInsertPostGroup();\n\n return {\n renderAddPostModal(\n id: string,\n refetch: () => Promise,\n orderCount = 4,\n ) {\n let order: number | undefined;\n let postId: string | undefined;\n Modal.info({\n title: '添加帖子',\n icon: null,\n content: (\n
    \n {\n postId = val;\n }}\n />\n {\n order = Number(val);\n }}\n optionList={new Array(orderCount).fill(0).map((_, i) => ({\n label: i + 1,\n value: i + 1,\n }))}\n />\n
    \n 未选择则在看板按时间顺序排序\n
    \n
    \n ),\n async onOk() {\n await insertPostGroup(id, postId ?? '', order);\n await refetch();\n Toast.success('添加成功');\n },\n });\n },\n };\n};\n\nexport const useInsertGroupModal = () => {\n const { insertGroup } = useInsertGroup();\n const [visible, setVisible] = useState(false);\n const formRef = useRef();\n const biz = useBiz(s => s.biz);\n const scope = useScope();\n const [groupType, setGroupType] = useState(0);\n const title = groupType === GroupType.Special ? '添加专题' : '添加面板';\n const placeHolder =\n groupType === GroupType.Special ? '请输入专题名称' : '请输入面板名称';\n const ok = async () => {\n await formRef.current?.validate();\n const name = formRef.current?.getValue('name');\n await insertGroup(name, groupType, biz, scope);\n await refetchRef.current?.();\n Toast.success('添加成功');\n };\n const refetchRef = useRef<() => Promise>();\n return {\n triggerAddModal(type: GroupType, refetch: () => Promise) {\n setGroupType(type);\n refetchRef.current = refetch;\n setVisible(true);\n },\n renderInsertGroupModal() {\n return (\n {\n await ok();\n setVisible(false);\n }}\n onCancel={() => {\n setVisible(false);\n }}>\n {\n formRef.current = api;\n }}>\n {\n if (typeof value !== 'string' || !value?.length) {\n return '名称不能为空';\n }\n if (value.length > 10) {\n return '名称长度不能超过 10';\n }\n return '';\n }}\n onEnterPress={async () => {\n await ok();\n setVisible(false);\n }}\n initValue={''}\n placeholder={placeHolder}\n />\n \n \n );\n },\n };\n};\n","import { Tag, Popconfirm } from '@douyinfe/semi-ui';\nimport cls from 'classnames';\nimport { Post } from '@/typings/open.platform.forum_bff/namespaces/forumpost';\nimport { useTopAndGood } from '@/hooks/useTop';\nimport useBiz from '@/context/useBiz';\nimport usePost from '@/context/usePost';\n\ntype Props = {\n post: Post;\n isAdmin?: boolean;\n};\n\ntype ColorType = 'top' | 'good';\n\nexport const PostTags = ({ post, isAdmin = false }: Props) => {\n const { toggleGood, toggleTop } = useTopAndGood();\n const biz = useBiz(state => state.biz);\n const refetchPost = () => usePost.setState({ shouldRefetch: true });\n\n if (isAdmin) {\n return (\n <>\n {\n {\n await toggleTop(post.Id, biz);\n refetchPost?.();\n }}>\n \n \n {' '}\n 置顶{' '}\n \n \n \n }\n {\n {\n await toggleGood(post.Id, biz);\n refetchPost?.();\n }}>\n \n \n {' '}\n 精\n \n \n \n }\n \n );\n }\n\n return (\n <>\n {post.IsTop && 置顶 }\n {post.IsGood && }\n \n );\n};\n\ntype MyTagProps = {\n shouldActive?: boolean;\n color: ColorType;\n children: React.ReactNode;\n};\nconst MyTag = ({\n shouldActive = true,\n color,\n children,\n ...reset\n}: MyTagProps) => (\n \n {children}\n \n);\n\n// const ClickableTag = styled(Tag)`\n// cursor: pointer;\n// font-size: 12px;\n// opacity: ${({ active }) => (active ? 1 : 0.3)};\n// display: inline-block;\n// transition: 0.3s;\n// &:hover {\n// opacity: 1;\n// }\n// `;\n","import { Typography, Tag, Space } from '@douyinfe/semi-ui';\nimport { CommentOne, View, Good } from '@okee-fe/react-icons-dy-open';\nimport cls from 'classnames';\nimport dayjs from 'dayjs';\nimport { PostTags } from './PostTags';\nimport style from './index.module.scss';\nimport { SafeSpan } from './Safe';\nimport { Post } from '@/typings/open.platform.forum_bff/namespaces/forumpost';\nimport { PostType, Scope } from '@/typings/fe';\n\ntype Props = {\n post: Post;\n isAdmin?: boolean;\n scope: Scope;\n isSearch?: boolean;\n};\nconst PostTypeMap: Record = {\n bulletin: '公告',\n question: '问答',\n share: '文章',\n all: '',\n};\n\nexport const PostItem = ({\n post,\n isAdmin = false,\n scope,\n isSearch = false,\n}: Props) => (\n
    \n
    \n {!isSearch && }\n {!post.Visible && isAdmin && (\n \n \n 自见\n \n \n )}\n {\n window.open(`/forum/${scope}/post/${post.Id || ''}`);\n }}\n className=\"hover:cursor-pointer font-medium text-lg leading-[22px] text-semi-color-text-0 hover:text-semi-color-primary\">\n {isSearch ? (\n \n {post.SearchHighlightInfo?.Highlight?.title?.join('') || post.Title}\n \n ) : (\n post.Title\n )}\n \n
    \n\n {isSearch && (\n \n {\n \n {post.SearchHighlightInfo?.Highlight?.text?.join('') || post.Text}\n \n }\n \n )}\n\n {!isSearch && (\n \n {post.Text}\n \n )}\n\n
    \n
    \n \n {PostTypeMap[post.Type as PostType]}\n \n {\n window.open(\n `${window.location.origin}/forum/${scope}/post/${post.Id || ''}`,\n );\n }}>\n {\n window.open(\n `${window.location.origin}/forum/user/${post.UserId || ''}`,\n );\n }}>\n {post.UserInfo?.Name}\n \n {post.UserInfo?.Role === 'ADMINISTRATOR' && (\n \n 官方\n \n )}\n \n \n {dayjs(post.CreatedAt).format('YYYY-MM-DD HH:mm')}\n \n
    \n
    \n \n \n {post.Liked}\n \n \n \n {post.CommentCount}\n \n \n \n {post.ViewCount}\n \n
    \n
    \n
    \n);\n","export const SafeDiv: React.FC<{ className?: string }> = ({\n children,\n className,\n}) => (\n
    \n);\n\nexport const SafeSpan: React.FC<{ className?: string }> = ({\n children,\n className,\n}) => (\n \n {/* {children} */}\n \n);\nexport const SafeHtmlContent: React.FC<{ className?: string }> = ({\n children,\n className = '',\n}) => (\n
    \n \n
    \n);\nexport const SafePostHtmlContent: React.FC<{ className?: string }> = ({\n children,\n className = '',\n}) => (\n
    \n \n
    \n);\n","import { Scope } from '@/typings/fe';\n\nexport const ScopesMap: Record<\n Exclude,\n string\n> = {\n 'mini-app': '小程序',\n 'mini-game': '小游戏',\n};\n","import { Input } from '@douyinfe/semi-ui';\nimport { NavLink, useHistory } from '@jupiter/plugin-runtime/router';\nimport { IconSearch } from '@douyinfe/semi-icons';\nimport { useState } from 'react';\nimport { ScopesMap } from '@/consts/scope';\nimport { useScope } from '@/hooks/useScope';\nimport { reportQuerySearch } from '@/report';\n\nexport const ScopeLayout: React.FC = ({ children }) => {\n const history = useHistory();\n const scope = useScope();\n const [search, setSearch] = useState();\n const toSearchPage = (keyword = '') => {\n history.push(\n `/search?q=${encodeURIComponent(keyword)}&page=1&limit=10&scope=${scope}`,\n );\n reportQuerySearch();\n };\n return (\n
    \n
    \n
    \n
    \n
    \n \n 综合\n \n
    \n {Object.entries(ScopesMap).map(([key, value]) => (\n
    \n \n {value}\n \n
    \n ))}\n
    \n
    \n {\n toSearchPage(search);\n }}\n />\n }\n onEnterPress={() => {\n toSearchPage(search);\n }}\n style={{\n width: '240px',\n }}\n />\n
    \n
    \n
    \n
    {children}
    \n
    \n );\n};\n","export const bff_prefix = '/forum_api';\n\nexport const OFFICIAL = '官方公告'; // 公告面板的名称\n\nexport const STD_DATE_FORMAT_RE =\n /^(\\d{4,4})-(\\d{2,2})-(\\d{2,2}) \\d{2,2}:\\d{2,2}:\\d{2,2}$/;\n","import create from 'zustand';\nimport { Biz } from '@/typings/open.platform.forum_bff/namespaces/configure';\n\nexport interface BizState {\n biz: Biz;\n changeBiz: (biz: Biz) => void;\n}\n\n// 获取业务线 服务商 or 开发者\nexport const useBiz = create(set => ({\n biz: Biz.All,\n changeBiz: biz => set(state => ({ ...state, biz })),\n}));\n\nexport default useBiz;\n","import create from 'zustand';\n\nexport interface PostState {\n PostId: string;\n shouldRefetch: boolean;\n}\n\nexport const usePost = create(() => ({\n PostId: '',\n shouldRefetch: false,\n}));\n\nexport default usePost;\n","import { useRequest } from '@byted/hooks';\nimport { Toast } from '@douyinfe/semi-ui';\nimport { useParams } from '@jupiter/plugin-runtime/router';\nimport { forumPostService } from '@/api/forumPost';\nimport { forumpost } from '@/typings/open.platform.forum_bff';\nimport { toastError } from '@/utils/toastError';\nimport useBiz from '@/context/useBiz';\n\nconst fetcher = async (params: forumpost.GetPostRequest) => {\n try {\n const res = await forumPostService.getPost(params);\n if (res.error) {\n throw new Error(res.message);\n }\n return res.data;\n } catch (e) {\n toastError(e);\n }\n return undefined;\n};\n\nexport function usePost() {\n const biz = useBiz(s => s.biz);\n const { postId } = useParams<{\n postId: string;\n }>();\n\n const {\n data: postDetail,\n run: fetchPost,\n loading,\n } = useRequest(fetcher, {\n auto: true,\n defaultParams: [\n {\n Biz: biz,\n PostId: postId,\n },\n ],\n ready:\n Boolean(postId) &&\n Boolean(biz) &&\n // Trick 销毁社区子应用后不发起请求\n window.location.pathname.includes('forum'),\n onError() {\n Toast.error('获取文章内容失败');\n },\n });\n\n return {\n postDetail,\n fetchPost,\n fetchingPost: loading,\n };\n}\n","import create from 'zustand';\n\ntype UrlSet = {\n url: string;\n uri: string;\n};\n\ntype Params = {\n urlSet: UrlSet[];\n setUrlSet: (urlSet: UrlSet[]) => void;\n replaceUrl: (html: string) => string;\n getExitUris: (html: string) => string[];\n clearUrlSet: () => void;\n};\n\nconst htmlEncode = (str: string) => {\n let temp = '';\n if (str.length === 0) {\n return '';\n }\n\n temp = str.replace(/&/g, '&');\n temp = temp.replace(//g, '>');\n temp = temp.replace(/\\s/g, ' ');\n temp = temp.replace(/'/g, ''');\n\n temp = temp.replace(/\"/g, '"');\n return temp;\n};\n\nconst usePostImageSet = create((set, getState) => ({\n urlSet: [],\n setUrlSet: sets => {\n const encodeSets = sets.map(item => ({\n url: htmlEncode(item.url),\n uri: item.uri,\n }));\n set(state => ({\n ...state,\n urlSet: Array.from(new Set([...state.urlSet, ...encodeSets])),\n }));\n },\n replaceUrl: (html: string) => {\n const { urlSet } = getState();\n let _html = html;\n urlSet\n .filter(_set => html.includes(_set.url))\n .forEach(_set => {\n _html = _html.replace(\n _set.url,\n `https://p1-ma-forum-sign.byteimg.com/${_set.uri}`,\n );\n });\n return _html;\n },\n getExitUris: html => {\n const { urlSet } = getState();\n return urlSet.filter(_set => html.includes(_set.uri)).map(_set => _set.uri);\n },\n clearUrlSet: () => set(state => ({ ...state, urlSet: [] })),\n}));\n\nexport default usePostImageSet;\n","import { useParams } from '@jupiter/plugin-runtime/router';\nimport { Scope } from '@/typings/fe';\n\nexport const useScope = () => {\n const { scope = 'synthesize' } = useParams<{\n scope?: Scope;\n }>();\n\n return scope;\n};\n","import { useRequest } from '@byted/hooks';\nimport { Toast } from '@douyinfe/semi-ui';\nimport { forumPostService } from '@/api/forumPost';\nimport { Biz } from '@/typings/open.platform.forum_bff/namespaces/configure';\n\nconst toggleTopFetcher = async (id: string, biz: Biz) => {\n const res = await forumPostService.toggleTop({\n PostId: id,\n Uid: '',\n Biz: biz,\n });\n if (res.error) {\n throw new Error(res.message);\n }\n return res.data;\n};\nconst toggleGoodFetcher = async (id: string, biz: Biz) => {\n const res = await forumPostService.toggleGood({\n PostId: id,\n Uid: '',\n Biz: biz,\n });\n if (res.error) {\n throw new Error(res.message);\n }\n return res.data;\n};\nexport const useTopAndGood = () => {\n const { run: toggleTop } = useRequest(toggleTopFetcher, {\n auto: false,\n onSuccess() {\n Toast.success('操作成功');\n },\n onError() {\n Toast.error('操作失败,请联系社区研发');\n },\n });\n const { run: toggleGood } = useRequest(toggleGoodFetcher, {\n auto: false,\n onSuccess() {\n Toast.success('操作成功');\n },\n onError() {\n Toast.error('操作失败,请联系社区研发');\n },\n });\n\n return {\n toggleTop,\n toggleGood,\n };\n};\n","import useSWR from 'swr';\nimport { forumUserService } from '@/api/forumUser';\nimport { Biz } from '@/typings/open.platform.forum_bff/namespaces/configure';\nimport useBiz from '@/context/useBiz';\nimport { reportConfig } from '@/report';\n\nconst fetchUserInfo = async (biz: Biz) => {\n const res = await forumUserService.getUserInfo({\n Uid: '',\n Biz: biz,\n });\n if (res.error) {\n throw new Error(res.message);\n }\n reportConfig({ user_unique_id: res.data.User?.Id });\n return res.data;\n};\n\nexport const useUserInfo = () => {\n const biz = useBiz(state => state.biz);\n const { data, isValidating } = useSWR(`${biz}`, fetchUserInfo);\n return {\n User: data?.User,\n loading: isValidating,\n ifLogin: Boolean(data),\n ifAdmin: data?.User?.IfAdmin,\n isAdmin: data?.User?.IfAdmin,\n };\n};\n","import React from 'react';\n\nexport const Layout = ({\n Component,\n ...pageProps\n}: {\n Component: React.ComponentType;\n}) => (\n
    \n \n
    \n);\n\nexport default Layout;\n","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"index-module__container--mg7Hw\"};","import { useRequest, useUrlParams } from '@byted/hooks';\n\nimport cls from 'classnames';\nimport { Button, Space, Pagination, Spin } from '@douyinfe/semi-ui';\nimport { IconPlus } from '@douyinfe/semi-icons';\nimport { useEffect } from 'react';\nimport { useHistory } from '@jupiter/plugin-runtime/router';\nimport style from './index.module.scss';\nimport { forumPostService } from '@/api/forumPost';\nimport { useUserInfo } from '@/hooks/useUserInfo';\nimport { useInsertPostGroupModal } from '@/components/NoticeCard/hooks';\nimport { STD_DATE_FORMAT_RE } from '@/consts';\nimport { useScope } from '@/hooks/useScope';\n\nfunction usePosts() {\n return useRequest(\n async ({\n id,\n page,\n limit,\n }: {\n id: string;\n page: number;\n limit: number;\n }) => {\n try {\n const res = await forumPostService.getPostsByGroupId({\n GroupId: id,\n PageNo: page,\n PageSize: limit,\n });\n if (res.error) {\n throw new Error(res.message);\n }\n return res.data;\n } catch (e) {\n // toastError(e);\n }\n return undefined;\n },\n {\n auto: false,\n },\n );\n}\n\nexport const Billboard = () => {\n const { setValue, value } = useUrlParams<{\n title?: string;\n id?: string;\n page?: number;\n limit?: number;\n }>({\n page: 1,\n limit: 10,\n });\n\n const { page, limit, id } = value;\n\n const { ifAdmin } = useUserInfo();\n const { data, run, loading } = usePosts();\n\n useEffect(() => {\n run({ id, page, limit });\n }, [id, page, limit]);\n\n const { renderAddPostModal: renderModal } = useInsertPostGroupModal();\n const scope = useScope();\n const history = useHistory();\n return (\n
    \n \n
    \n
    \n
    \n {data?.GroupInfo.Name}\n
    \n
    \n {ifAdmin && (\n {\n renderModal(id, async () => {\n await run({ id, page, limit });\n });\n }}>\n \n \n 添加帖子\n \n \n )}\n
    \n
    \n
    \n {data?.GroupInfo.PostList.map(item => (\n {\n history.push(`/${scope}/post/${item.Id}`);\n }}\n className=\"cursor-pointer hover:text-semi-color-link py-6 border-b border-semi-color-border flex justify-between items-center\">\n
    \n {item.Title}\n
    \n
    \n {item.CreatedAt.replace(STD_DATE_FORMAT_RE, '$1/$2/$3')}\n
    \n
    \n ))}\n
    \n {\n setValue(prev => ({\n ...prev,\n page: current,\n limit: size,\n }));\n }}\n />\n
    \n
    \n
    \n
    \n \n );\n};\n\nexport default Billboard;\n","import { IndexPage } from '@/components/IndexPage';\nimport { ScopeLayout } from '@/components/ScopeLayout';\n\nexport const Index = () => (\n \n \n \n);\n\nexport default Index;\n","import React from 'react';\n\nconst Layout = ({\n Component,\n ...pageProps\n}: {\n Component: React.ComponentType;\n}) => ;\nexport default Layout;\n","import { Button, Form, withField, Toast } from '@douyinfe/semi-ui';\nimport { useHistory, useParams } from '@jupiter/plugin-runtime/router';\nimport styled from '@jupiter/plugin-runtime/styled';\nimport { SylApi } from '@syllepsis/adapter';\n\nimport { useEffect, useRef } from 'react';\nimport { FormApi } from '@douyinfe/semi-ui/lib/es/form';\nimport { useRequest } from '@byted/hooks';\nimport EditorV2 from '@/components/EditorV2';\nimport useBiz from '@/context/useBiz';\nimport { forumPostService } from '@/api/forumPost';\nimport { forumpost } from '@/typings/open.platform.forum_bff';\nimport { toastError } from '@/utils/toastError';\nimport { usePost } from '@/hooks/usePost';\nimport { useScope } from '@/hooks/useScope';\nimport usePostImageSet from '@/hooks/usePostImageSet';\n\nfunction useUpdatePost() {\n const history = useHistory();\n const scope = useScope();\n const { loading, run } = useRequest(\n async (req: forumpost.UpdatePostRequest) => {\n try {\n const res = await forumPostService.updatePost(req);\n if (res.error) {\n throw new Error(res.message);\n }\n Toast.success('操作成功, 3秒后跳转到帖子详情页');\n setTimeout(() => {\n history.push(`/${scope}/post/${req.PostId}`);\n }, 3000);\n } catch (e) {\n toastError(e);\n }\n },\n );\n\n return {\n updatingPost: loading,\n updatePost: run,\n };\n}\n\nexport const TitleInput = withField(\n ({\n value = '',\n onChange,\n }: {\n value?: string;\n onChange?: (value: string) => void;\n }) => (\n \n onChange?.(event.target.value)}\n />\n 40 || value.length === 0 ? '#f44336' : '#999',\n }}>\n {value.length}/40\n \n \n ),\n);\n\nconst TitleBox = styled.div`\n display: flex;\n align-items: center;\n`;\n\nconst CustomInput = styled.input`\n font-size: 2em;\n flex: 1;\n font-weight: 700;\n line-height: 73px;\n display: block;\n margin: 0;\n border: none;\n &::placeholder {\n color: #cccccc;\n font-weight: 400;\n }\n`;\n\nconst TitleCount = styled.span`\n font-size: 16px;\n font-family: monospace;\n`;\n\nconst Edit: React.FC = () => {\n const { replaceUrl, getExitUris } = usePostImageSet();\n\n const { postId } = useParams<{\n postId: string;\n }>();\n const editorRef = useRef();\n const formRef = useRef();\n const history = useHistory();\n const { postDetail, fetchPost } = usePost();\n const biz = useBiz(s => s.biz);\n const { updatePost, updatingPost } = useUpdatePost();\n\n useEffect(() => {\n if (!biz || !postId) {\n return;\n }\n fetchPost({\n Biz: biz,\n PostId: postId,\n });\n }, [biz, postId]);\n\n useEffect(() => {\n if (!formRef.current) {\n return;\n }\n formRef.current.setValue('title', postDetail?.PostInfo?.Title ?? '');\n editorRef.current?.setHTML(postDetail?.PostInfo?.Html ?? '');\n }, [postDetail?.PostInfo.Title]);\n return (\n
    \n {\n formRef.current = api;\n }}>\n \n 40) {\n cb('标题长度不能大于40');\n return false;\n }\n cb('');\n return true;\n },\n },\n ]}\n />\n \n {\n editorRef.current = ins;\n }}\n defaultValue=\"\"\n />\n
    \n
    \n {\n const html = editorRef.current?.getHTML();\n if (!html) {\n toastError('帖子内容不能为空');\n return;\n }\n if (!formRef.current || !postDetail?.PostInfo?.Id) {\n return;\n }\n const postContent = replaceUrl(html);\n\n updatePost({\n PostId: postDetail.PostInfo.Id,\n Html: postContent,\n Title: formRef.current.getValue('title'),\n Uid: '',\n Biz: biz,\n Uris: getExitUris(postContent),\n });\n }}>\n 保存\n \n {\n history.go(-1);\n }}>\n 取消\n \n
    \n
    \n \n
    \n );\n};\nexport default Edit;\n","import { useRequest } from '@byted/hooks';\nimport { Toast } from '@douyinfe/semi-ui';\nimport { forumPostService } from '@/api/forumPost';\nimport {\n SelfVisibleCommentRequest,\n SelfVisiblePostRequest,\n SelfVisibleReplyRequest,\n VisiblePostRequest,\n} from '@/typings/open.platform.forum_bff/namespaces/forumpost';\n\nconst selfReply = async (req: SelfVisibleReplyRequest) => {\n const res = await forumPostService.selfVisibleReply(req);\n if (res.error) {\n throw new Error(res.message);\n }\n return res.data;\n};\nconst selfComment = async (req: SelfVisibleCommentRequest) => {\n const res = await forumPostService.selfVisibleComment(req);\n if (res.error) {\n throw new Error(res.message);\n }\n return res.data;\n};\n\nconst selfPost = async (req: SelfVisiblePostRequest) => {\n const res = await forumPostService.selfVisiblePost(req);\n if (res.error) {\n throw new Error(res.message);\n }\n return res.data;\n};\n\nexport const usePostSelfVisible = () => {\n const { run } = useRequest(selfPost, {\n auto: false,\n });\n return {\n run,\n };\n};\n\nconst nonSelfVisible = async (req: VisiblePostRequest) => {\n const res = await forumPostService.visiblePost(req);\n if (res.error) {\n throw new Error(res.message);\n }\n return res.data;\n};\n\nexport const usePostNonSelfVisible = () => {\n const { run } = useRequest(nonSelfVisible, {\n auto: false,\n });\n return {\n run,\n };\n};\n\nexport const useReplySelfVisible = () => {\n const { run } = useRequest(selfReply, {\n auto: false,\n onSuccess() {\n Toast.success('操作成功');\n },\n });\n return {\n run,\n };\n};\n\nexport const useCommentSelfVisible = () => {\n const { run } = useRequest(selfComment, {\n auto: false,\n onSuccess() {\n Toast.success('操作成功');\n },\n });\n return {\n run,\n };\n};\n","import { useRequest } from '@byted/hooks';\nimport { Scope } from '@/typings/fe';\nimport { forumPostService } from '@/api/forumPost';\nimport { OFFICIAL } from '@/consts';\n\nconst fetcher = async (scope: Scope) => {\n const res = await forumPostService.getPostsByGroup({\n Scope: scope,\n });\n if (res.error) {\n throw new Error();\n }\n return res.data;\n};\n\nexport const useBulletinId = (scope?: Scope) => {\n const { data, loading } = useRequest(fetcher, {\n auto: true,\n defaultParams: [scope],\n refreshDeps: [scope],\n ready: Boolean(scope),\n });\n return {\n bulletinId: data?.List.find(item => item.Name === OFFICIAL)?.Id,\n loading,\n };\n};\n","import {\n Breadcrumb,\n Modal,\n Tag,\n Toast,\n Popconfirm,\n TextArea,\n} from '@douyinfe/semi-ui';\nimport Text from '@douyinfe/semi-ui/lib/es/typography/text';\nimport { Link, useHistory } from '@jupiter/plugin-runtime/router';\nimport dayjs from 'dayjs';\nimport { useRequest } from '@byted/hooks';\nimport cls from 'classnames';\nimport { forumpost } from '@/typings/open.platform.forum_bff';\nimport { useScope } from '@/hooks/useScope';\nimport { useTopAndGood } from '@/hooks/useTop';\nimport useBiz from '@/context/useBiz';\nimport { useUserInfo } from '@/hooks/useUserInfo';\nimport { forumPostService } from '@/api/forumPost';\nimport { RemovePostRequest } from '@/typings/open.platform.forum_bff/namespaces/forumpost';\nimport { toastError } from '@/utils/toastError';\nimport {\n usePostNonSelfVisible,\n usePostSelfVisible,\n} from '@/hooks/useSelfVisible';\nimport { useBulletinId } from '@/hooks/useBulletinId';\nimport { Scope } from '@/typings/fe';\n\nconst PostHeader: React.FC<{\n info?: forumpost.Post;\n refetch: () => Promise;\n}> = ({ info, refetch }) => {\n const scope = useScope();\n const history = useHistory();\n const { ifAdmin, User } = useUserInfo();\n const isOwner = info?.UserId && info.UserId === User?.Id;\n const biz = useBiz(s => s.biz);\n const { toggleGood, toggleTop } = useTopAndGood();\n const { run: deletePost } = useRequest(\n async (param: RemovePostRequest) => {\n const res = await forumPostService.removePost(param);\n if (res.error) {\n throw new Error(res.message);\n }\n return res.data;\n },\n {\n onSuccess() {\n Toast.success({\n content: '删除成功, 3 秒后跳转到首页',\n });\n setTimeout(() => {\n history.push('/');\n }, 3000);\n },\n onError(err) {\n toastError(err);\n },\n auto: false,\n },\n );\n\n const { run: selfVisiblePost } = usePostSelfVisible();\n const { run: nonSelfVisiblePost } = usePostNonSelfVisible();\n\n const deletePostConfirm = () => {\n if (isOwner) {\n Modal.confirm({\n title: '确认删除?',\n async onOk() {\n await deletePost({\n PostId: info.Id,\n Reason: 'self',\n Uid: '',\n Biz: biz,\n });\n },\n });\n } else if (ifAdmin) {\n let reason = '';\n const ok = async () => {\n if (!reason || !info?.Id) {\n throw new Error();\n }\n await deletePost({\n PostId: info.Id,\n Reason: reason,\n Uid: '',\n Biz: biz,\n });\n };\n const ins = Modal.confirm({\n title: '请输入原因',\n okButtonProps: {\n disabled: !reason,\n },\n content: (\n {\n reason = v;\n ins.update({\n okButtonProps: {\n disabled: !reason,\n },\n type: 'confirm',\n });\n }}\n />\n ),\n onOk: ok,\n });\n }\n };\n\n const selfVisibleConfirm = () => {\n let reason = '';\n const ok = async () => {\n if (!info?.Id) {\n throw new Error('postid 不能为空');\n }\n try {\n if (info?.Visible) {\n await selfVisiblePost({\n PostId: info?.Id,\n Reason: reason,\n Uid: '',\n Biz: biz,\n });\n } else {\n await nonSelfVisiblePost({\n PostId: info.Id,\n Reason: reason,\n Uid: '',\n Biz: biz,\n });\n }\n await refetch();\n Toast.success('操作成功');\n } catch (e) {\n toastError(e);\n }\n };\n const ins = Modal.confirm({\n title: info?.Visible ? '确认自见?' : '确认取消自见?',\n okButtonProps: {\n disabled: !reason,\n },\n content: (\n {\n reason = v;\n ins.update({\n okButtonProps: {\n disabled: !reason,\n },\n type: 'confirm',\n });\n }}\n />\n ),\n onOk: ok,\n });\n };\n\n const { bulletinId } = useBulletinId(info?.Scope as Scope);\n\n return (\n
    \n
    \n '} className=\"text-base leading-6\">\n \n 首页\n \n {info?.Type === 'bulletin' && (\n \n \n 公告\n \n \n )}\n \n \n \n {info?.Title ?? ''}\n \n \n \n \n {(ifAdmin || isOwner) && (\n \n \n [编辑]\n \n {\n deletePostConfirm();\n }}>\n [删除]\n \n {ifAdmin && (\n {\n selfVisibleConfirm();\n }}>\n {info?.Visible ? '[自见]' : '[取消自见]'}\n \n )}\n {ifAdmin ? (\n <>\n {\n await toggleTop(info?.Id ?? '', biz);\n await refetch();\n }}>\n \n 顶\n \n \n {\n await toggleGood(info?.Id ?? '', biz);\n await refetch();\n }}>\n \n 精\n \n \n \n ) : (\n <>\n {info?.IsTop && }\n {info?.IsGood && }\n \n )}\n \n )}\n
    \n
    \n {!info?.Visible && ifAdmin && (\n
    \n \n 自见\n \n
    \n )}\n {info?.Title ?? ''}\n
    \n \n {info?.ViewCount ?? 0} 浏览\n {dayjs(info?.CreatedAt).format('YYYY年MM月DD日')}\n 作者:\n {\n history.push(`/user/${info?.UserId ?? ''}`);\n }}>\n {info?.UserInfo?.Name ?? '--'}\n \n \n
    \n );\n};\n\nexport default PostHeader;\n","import { useRequest } from '@byted/hooks';\nimport { Toast } from '@douyinfe/semi-ui';\nimport { forumPostService } from '@/api/forumPost';\nimport {\n CreateReplyRequest,\n DeleteReplyRequest,\n} from '@/typings/open.platform.forum_bff/namespaces/forumpost';\n\nconst fetch = async (req: CreateReplyRequest) => {\n const res = await forumPostService.createReply(req);\n if (res.error) {\n throw new Error(res.message);\n }\n return res.data;\n};\nconst delFetch = async (req: DeleteReplyRequest) => {\n const res = await forumPostService.deleteReply(req);\n if (res.error) {\n throw new Error(res.message);\n }\n return res.data;\n};\n\nexport const useReply = () => {\n const { run, loading } = useRequest(fetch, {\n auto: false,\n onError() {\n Toast.error('回复失败');\n },\n onSuccess() {\n Toast.success('回复成功');\n },\n });\n const { run: deleteReply } = useRequest(delFetch, {\n auto: false,\n onSuccess() {\n Toast.success('删除回复成功');\n },\n onError() {\n Toast.error('删除回复失败');\n },\n });\n return {\n run,\n loading,\n deleteReply,\n };\n};\n","import { useRequest } from '@byted/hooks';\nimport { forumpost } from '@/typings/open.platform.forum_bff';\nimport { forumPostService } from '@/api/forumPost';\n\nexport const useLike = () => {\n const { run, loading } = useRequest(\n async (req: forumpost.ToggleLikeRequest) => {\n const res = await forumPostService.toggleLike(req);\n if (res.error) {\n throw new Error(res.message);\n }\n },\n {\n auto: false,\n },\n );\n return {\n toggleLike: run,\n togglingLike: loading,\n };\n};\n","import { Button, Input, Space, Toast } from '@douyinfe/semi-ui';\nimport { useEffect, useState } from 'react';\nimport { useEventBus } from '@byted/hooks';\nimport { IconThumbUpStroked } from '@douyinfe/semi-icons';\nimport { useParams } from '@jupiter/plugin-runtime/router';\nimport { useReply } from '@/hooks/useReply';\n\nimport {\n Comment,\n Reply,\n} from '@/typings/open.platform.forum_bff/namespaces/forum';\nimport useBiz from '@/context/useBiz';\nimport { useUserInfo } from '@/hooks/useUserInfo';\nimport { useLike } from '@/hooks/useLike';\nimport { reportCreateReply } from '@/report';\n\ntype Props = {\n comment: Comment | Reply;\n};\nfunction isReply(man: Reply | Comment): man is Reply {\n return man && 'CommentId' in man;\n}\n\n// 感觉要用 useSwr 优化\nexport const ReplyOperation = ({ comment }: Props) => {\n const [visible, setVisible] = useState(false);\n const { run: postReply, loading } = useReply();\n const [replyContent, setReplyContent] = useState('');\n const { ifLogin } = useUserInfo();\n const biz = useBiz(state => state.biz);\n const { trigger: reloadReply } = useEventBus('RELOAD_REPLY');\n const { toggleLike, togglingLike } = useLike();\n const [isLiked, setIsLike] = useState(false);\n const [likeCount, setLikeCount] = useState(0);\n // const likeCount = comment.Liked;\n\n const { postId } = useParams<{ postId: string }>();\n const { User } = useUserInfo();\n\n useEffect(() => {\n if (comment.IsLiked && !comment.Liked) {\n setLikeCount(1);\n } else {\n setLikeCount(comment.Liked ?? 0);\n }\n setIsLike(Boolean(comment.IsLiked));\n }, [comment.Liked, comment.IsLiked]);\n\n if (!ifLogin) {\n return null;\n }\n\n return visible ? (\n
    \n {\n setReplyContent(value);\n }}\n />\n \n {\n setVisible(false);\n }}>\n 取消\n \n {\n if (!replyContent) {\n return Toast.error('回复内容不能为空');\n }\n const res = await postReply({\n CommentId: isReply(comment) ? comment.CommentId : comment.Id,\n Html: replyContent,\n Uid: '',\n ToUserId: comment.UserInfo?.Id || '',\n Biz: biz,\n });\n if (isReply(comment)) {\n // 回复评论下的回复的埋点\n reportCreateReply({\n post_id: postId,\n comment_id: comment.CommentId,\n reply_id: res.ReplyId,\n uid: User?.Id || '',\n to_uid: comment.UserId,\n });\n } else {\n // 回复评论的埋点\n reportCreateReply({\n post_id: postId,\n comment_id: comment.Id,\n uid: User?.Id || '',\n to_uid: comment.UserId,\n });\n }\n reloadReply(isReply(comment) ? comment.CommentId : comment.Id);\n return setVisible(false);\n }}>\n 回复\n \n \n
    \n ) : (\n \n {\n await toggleLike({\n Uid: '',\n Type: isReply(comment) ? 'reply' : 'comment',\n TypeId: comment.Id,\n Biz: biz,\n });\n if (isLiked) {\n setLikeCount(n => n - 1);\n setIsLike(false);\n } else {\n setLikeCount(n => n + 1);\n setIsLike(true);\n }\n // trigger(isReply(comment) ? comment.CommentId : comment.Id);\n }}>\n \n \n {isLiked && '已'}点赞 {likeCount === 0 ? '' : likeCount}\n \n \n {\n setVisible(true);\n }}>\n 回复\n \n \n );\n};\n","import create from 'zustand';\n\nexport interface BizState {\n commentId: string;\n changeCommentId: (biz: string) => void;\n reFetchReply?: () => void;\n reFetchComment?: () => void;\n}\n\n// 获取业务线 服务商 or 开发者\nexport const useComment = create(set => ({\n changeCommentId: commentId => set(state => ({ ...state, commentId })),\n commentId: '',\n}));\n\nexport default useComment;\n","import { useRequest } from '@byted/hooks';\nimport { Toast } from '@douyinfe/semi-ui';\nimport { forumPostService } from '@/api/forumPost';\nimport {\n CreateCommentRequest,\n DeleteCommentRequest,\n ToggleCommentDeleteRequest,\n} from '@/typings/open.platform.forum_bff/namespaces/forumpost';\n\nconst fetch = async (req: CreateCommentRequest) => {\n const res = await forumPostService.createComment(req);\n\n if (res.error) {\n throw new Error(res.message);\n }\n return res.data;\n};\nconst fetchDelFromAdmin = async (req: ToggleCommentDeleteRequest) => {\n const res = await forumPostService.toggleCommentDelete(req);\n\n if (res.error) {\n throw new Error(res.message);\n }\n return res.data;\n};\nconst fetchDel = async (req: DeleteCommentRequest) => {\n const res = await forumPostService.deleteComment(req);\n\n if (res.error) {\n throw new Error(res.message);\n }\n return res.data;\n};\n\nexport const useComment = () => {\n const { run, loading: createLoading } = useRequest(fetch, {\n auto: false,\n onSuccess() {\n Toast.success('评论成功');\n },\n onError() {\n Toast.error('评论失败');\n },\n });\n\n // 管理员删除操作\n const { run: deleteCommentFormAdmin } = useRequest(fetchDelFromAdmin, {\n auto: false,\n onSuccess() {\n Toast.success('操作成功');\n },\n onError() {\n Toast.error('操作失败');\n },\n });\n // 用户视角删除操作\n const { run: deleteComment } = useRequest(fetchDel, {\n auto: false,\n onSuccess() {\n Toast.success('删除评论成功');\n },\n onError() {\n Toast.error('删除评论失败');\n },\n });\n return {\n run,\n toggleDelete: deleteCommentFormAdmin,\n createLoading,\n deleteComment,\n };\n};\n","import {\n Avatar,\n Button,\n Modal,\n Space,\n Tag,\n TextArea,\n Typography,\n} from '@douyinfe/semi-ui';\nimport { useEffect } from 'react';\nimport { useEventBus } from '@byted/hooks';\nimport { ModalReactProps } from '@douyinfe/semi-ui/lib/es/modal';\nimport { SafeHtmlContent } from '../Safe';\nimport { ReplyOperation } from './ReplyOperation';\n\nimport {\n Comment,\n Reply,\n} from '@/typings/open.platform.forum_bff/namespaces/forum';\nimport { useComment } from '@/context/useComment';\nimport { useComment as useCommentApi } from '@/hooks/useComment';\nimport { useUserInfo } from '@/hooks/useUserInfo';\nimport { useReply } from '@/hooks/useReply';\nimport {\n useCommentSelfVisible,\n useReplySelfVisible,\n} from '@/hooks/useSelfVisible';\nimport { Biz } from '@/typings/open.platform.forum_bff/namespaces/configure';\nimport useBiz from '@/context/useBiz';\n\ntype Props = {\n content: Reply | Comment;\n};\n\nfunction isReply(man: Reply | Comment): man is Reply {\n return man && 'CommentId' in man;\n}\nexport const CommentItem = ({ content }: Props) => {\n const changeCommentId = useComment(state => state.changeCommentId);\n const { isAdmin, User } = useUserInfo();\n useEffect(() => {\n if (!isReply(content)) {\n changeCommentId(content.Id);\n }\n }, [content]);\n\n const { toggleDelete, deleteComment } = useCommentApi();\n const { deleteReply } = useReply();\n const { run: replySelfFetch } = useReplySelfVisible();\n const { run: commentSelfFetch } = useCommentSelfVisible();\n const { trigger: reloadReply } = useEventBus('RELOAD_REPLY');\n const { trigger: reloadComment } = useEventBus('RELOAD_COMMENT');\n const ifBelongToMe = content.UserId === User?.Id;\n const showAdminTitle = content.UserInfo?.Role === 'ADMINISTRATOR';\n const deleteFromAdmin =\n !isReply(content) && content.IsDeleteFromAdmin && content.Delete;\n const deleteFromUser =\n !isReply(content) && content.Delete && !content.IsDeleteFromAdmin;\n const biz = useBiz(state => state.biz);\n\n const handleDeleteFromUser = (_content: typeof content, _biz: Biz) => {\n const replyOkFn: ModalReactProps['onOk'] = async () => {\n await deleteReply({\n Uid: '',\n ReplyId: content.Id,\n Reason: 'self',\n Biz: _biz,\n });\n reloadReply((_content as Reply).CommentId);\n };\n const commentOkFn: ModalReactProps['onOk'] = async () => {\n await deleteComment({\n CommentId: content.Id,\n Reason: 'self',\n Uid: '',\n Biz: _biz,\n });\n reloadComment();\n };\n\n Modal.confirm({\n title: _content.Delete ? '恢复删除?' : '确认删除?',\n onOk: isReply(_content) ? replyOkFn : commentOkFn,\n });\n };\n const handleDeleteFromAdmin = (_content: typeof content, _biz: Biz) => {\n let reason = '';\n const replyOkFn: ModalReactProps['onOk'] = async () => {\n await deleteReply({\n Uid: '',\n ReplyId: content.Id,\n Reason: reason,\n Biz: _biz,\n });\n reloadReply((_content as Reply).CommentId);\n };\n const commentOkFn: ModalReactProps['onOk'] = async () => {\n await toggleDelete({\n CommentId: content.Id,\n Reason: reason,\n Uid: '',\n Biz: _biz,\n });\n reloadComment();\n };\n\n const modal = Modal.confirm({\n title: _content.Delete ? '恢复删除?' : '确认删除?',\n okButtonProps: {\n disabled: !reason,\n },\n content: (\n {\n reason = value;\n modal.update({\n okButtonProps: {\n disabled: !value,\n },\n type: 'confirm',\n });\n }}\n />\n ),\n onOk: isReply(_content) ? replyOkFn : commentOkFn,\n });\n };\n\n return (\n
    \n
    \n \n
    \n
    \n \n
    \n \n {content.UserInfo?.Name}\n \n {showAdminTitle && (\n \n {管理员}\n \n )}\n\n {isReply(content) && (\n <>\n {回复}\n \n {content.ToUserInfo?.Name}\n \n \n )}\n \n {content.CreatedAt}\n \n
    \n\n \n {isAdmin && (\n <>\n {deleteFromAdmin && 管理员删除}\n {deleteFromUser && 用户删除}\n {!deleteFromUser && (\n {\n handleDeleteFromAdmin(content, biz);\n }}>\n {!isReply(content) && content.Delete ? '恢复删除' : '删除'}\n \n )}\n \n )}\n {ifBelongToMe && !isAdmin && (\n {\n handleDeleteFromUser(content, biz);\n }}>\n {'删除'}\n \n )}\n\n {isAdmin && !content.Delete && (\n {\n let reason = '';\n if (isReply(content)) {\n const modal1 = Modal.confirm({\n title: content.Visible ? '自见' : '取消自见',\n content: (\n {\n reason = value;\n modal1.update({\n okButtonProps: {\n disabled: !value,\n },\n type: 'confirm',\n });\n }}\n />\n ),\n okButtonProps: {\n disabled: !reason,\n },\n async onOk() {\n await replySelfFetch({\n Visible: !content.Visible,\n Uid: '',\n Biz: biz,\n ReplyId: content.Id,\n Reason: reason,\n });\n reloadReply(content.CommentId);\n },\n });\n } else {\n const modal2 = Modal.confirm({\n title: content.Visible ? '自见' : '取消自见',\n content: (\n {\n reason = value;\n modal2.update({\n okButtonProps: {\n disabled: !value,\n },\n type: 'confirm',\n });\n }}\n />\n ),\n okButtonProps: {\n disabled: !reason,\n },\n async onOk() {\n await commentSelfFetch({\n Visible: !content.Visible,\n Uid: '',\n Biz: biz,\n CommentId: content.Id,\n Reason: reason,\n });\n reloadComment();\n },\n });\n }\n }}>\n {!content.Visible ? '取消自见' : '自见'}\n \n )}\n \n
    \n {content.Html || ''}\n\n {!content.Delete && }\n
    \n
    \n );\n};\n","import {\n PaginationData,\n PaginationRequestFnType,\n useEventBus,\n usePagination,\n} from '@byted/hooks';\nimport { Pagination } from '@douyinfe/semi-ui';\nimport { useEffect } from 'react';\nimport { CommentItem } from './Post/CommentItem';\nimport { Reply } from '@/typings/open.platform.forum_bff/namespaces/forum';\nimport { forumPostService } from '@/api/forumPost';\nimport useBiz from '@/context/useBiz';\nimport useComment from '@/context/useComment';\n\ntype Props = {\n commentId: string;\n};\nexport const ReplyList: React.FC = ({ commentId, ...reset }: Props) => {\n const biz = useBiz(state => state.biz);\n const fetcher: PaginationRequestFnType> = async ({\n current,\n pageSize,\n }) => {\n const res = await forumPostService.getReplyList({\n PageNo: current,\n PageSize: pageSize,\n Uid: '',\n Biz: biz,\n CommentId: commentId,\n });\n if (res.error) {\n return {\n total: 0,\n list: [],\n };\n } else {\n return {\n total: Number(res.data.Total),\n list: res.data.Replies || [],\n };\n }\n };\n const {\n data: replyList,\n pagination,\n reset: reFetchReply,\n } = usePagination(fetcher, {\n refreshDeps: [commentId],\n ready: Boolean(commentId),\n defaultPageSize: 10,\n });\n\n useEffect(() => {\n useComment.setState({ reFetchReply });\n }, [reset]);\n\n useEventBus('RELOAD_REPLY', (id: string) => {\n if (id === commentId) {\n reFetchReply();\n }\n });\n\n return (\n
    \n {replyList?.list.map(reply => (\n \n ))}\n {pagination.total > 10 && }\n
    \n );\n};\n","import { useEventBus, usePagination } from '@byted/hooks';\nimport { Pagination } from '@douyinfe/semi-ui';\nimport {\n PaginationData,\n PaginationRequestFnType,\n} from '@byted/hooks/lib/useSemiPagination';\nimport { useEffect } from 'react';\nimport { ReplyList } from './ReplyList';\nimport { CommentItem } from './Post/CommentItem';\nimport { forumPostService } from '@/api/forumPost';\nimport { Comment } from '@/typings/open.platform.forum_bff/namespaces/forum';\nimport useBiz from '@/context/useBiz';\nimport useComment from '@/context/useComment';\n\ntype Props = {\n postId: string;\n isAdmin?: boolean;\n};\n\nexport const CommentList: React.FC = ({ postId }: Props) => {\n const biz = useBiz(state => state.biz);\n const fetcher: PaginationRequestFnType> = async ({\n current,\n pageSize,\n }) => {\n const res = await forumPostService.getCommentList({\n PageNo: current,\n PageSize: pageSize,\n PostId: postId,\n Uid: '',\n Biz: biz,\n });\n if (res.error) {\n return {\n total: 0,\n list: [],\n };\n } else {\n return {\n total: Number(res.data.Total),\n list: res.data.Comments || [],\n };\n }\n };\n const {\n data: commentList,\n pagination,\n reset: reFetchComment,\n } = usePagination(fetcher, {\n auto: true,\n refreshDeps: [postId],\n pageSize: 10,\n defaultPageSize: 10,\n });\n\n useEffect(() => {\n useComment.setState({ reFetchComment });\n }, [reFetchComment]);\n useEventBus('RELOAD_COMMENT', () => {\n reFetchComment();\n });\n\n if (!postId) {\n return null;\n }\n\n return (\n
    \n {commentList?.list.map(comment => (\n
    \n
    \n \n
    \n \n
    \n
    \n
    \n ))}\n
    \n {}\n
    \n
    \n );\n};\n","import { useParams } from '@jupiter/plugin-runtime/router';\nimport { useEffect, useRef, useState } from 'react';\nimport {\n Button,\n DropdownDivider,\n Toast,\n Typography,\n Space,\n Empty,\n Spin,\n} from '@douyinfe/semi-ui';\nimport { SylApi } from '@syllepsis/adapter';\nimport { IllustrationNoResult } from '@douyinfe/semi-illustrations';\nimport dayjs from 'dayjs';\nimport { IconEdit, IconThumbUpStroked } from '@douyinfe/semi-icons';\nimport { Element, scroller } from 'react-scroll';\nimport { LoginMask } from '../LoginMask';\nimport { IconPost } from '../IconPost';\nimport PostHeader from './PostHeader';\nimport useBiz from '@/context/useBiz';\nimport EditorV2 from '@/components/EditorV2';\nimport { CommentList } from '@/components/CommentList';\nimport { useComment as useCommentApi } from '@/hooks/useComment';\nimport useComment from '@/context/useComment';\nimport { SafeHtmlContent } from '@/components/Safe';\nimport { usePost } from '@/hooks/usePost';\nimport { useUserInfo } from '@/hooks/useUserInfo';\nimport { useLike } from '@/hooks/useLike';\nimport { reportCreateComment, reportViewPost } from '@/report';\nimport usePostImageSet from '@/hooks/usePostImageSet';\n\nconst metaToHtml = (meta: Record, canSee = false) => {\n let html = '';\n const specialAttr = ['levelOne', 'levelTwo', 'levelThree'];\n const map = {\n levelOne: '发帖模块',\n levelTwo: '问题类型',\n levelThree: '问题模块',\n };\n\n specialAttr.forEach(attr => {\n if (typeof meta[attr] === 'string') {\n html += `

    ${map[attr as keyof typeof map]}: ${meta[attr]}

    `;\n }\n });\n if (canSee) {\n html += '
    ';\n html += '

    详细信息:

    ';\n html += `
      ${Object.keys(meta)\n .filter(key => !specialAttr.includes(key))\n .map(\n subKey =>\n `
    • ${subKey === 'Title' ? '标题' : subKey}: ${meta[subKey]}
    • `,\n )\n .join('')}
    `;\n }\n return (\n {`
    ${html}
    `}
    \n );\n};\n\nconst Wrapper: React.FC = ({ children }) => (\n
    \n {children}\n
    \n);\n\nexport const PostDetail: React.FC = () => {\n const { postId } = useParams<{\n postId?: string;\n }>();\n const biz = useBiz(state => state.biz);\n const editorRef = useRef(null);\n const { toggleLike, togglingLike } = useLike();\n const { postDetail, fetchPost, fetchingPost } = usePost();\n const [likeCount, setLikeCount] = useState(0);\n const [isLike, setIsLike] = useState(false);\n const { ifLogin, ifAdmin, User: currentUser, loading } = useUserInfo();\n\n const toLogin = () => {\n window.Garfish.channel.emit('main:login-activate');\n };\n const { replaceUrl, getExitUris } = usePostImageSet();\n\n const { run: postComment, createLoading } = useCommentApi();\n\n const reFetchComment = useComment(state => state.reFetchComment);\n\n useEffect(() => {\n // 前端兜底逻辑\n if (postDetail?.PostInfo?.IsLiked && !postDetail?.PostInfo?.Liked) {\n setLikeCount(1);\n } else {\n setLikeCount(postDetail?.PostInfo?.Liked ?? 0);\n }\n setIsLike(Boolean(postDetail?.PostInfo?.IsLiked));\n }, [postDetail?.PostInfo?.Liked, postDetail?.PostInfo?.IsLiked]);\n\n useEffect(() => {\n if (!loading) {\n reportViewPost({\n post_id: postId,\n uid: currentUser?.Id || '',\n post_type: postDetail?.PostInfo.Type,\n });\n }\n }, [loading, postId, currentUser?.Id]);\n\n if (fetchingPost) {\n return (\n \n
    \n \n
    \n
    \n );\n }\n\n if (!postDetail?.PostInfo) {\n return (\n }\n description={'帖子不存在或已删除'}\n className=\"w-[1200px] h-[520px] bg-white rounded-xl pt-[138px] mx-auto mt-8\"\n />\n );\n }\n\n return (\n \n \n fetchPost({ Biz: biz, PostId: postId })}\n />\n {Object.keys(postDetail?.PostInfo?.Meta ?? {}).length > 0 &&\n postDetail?.PostInfo?.Type === 'question' &&\n metaToHtml(postDetail?.PostInfo?.Meta ?? {}, Boolean(ifAdmin))}\n\n {postDetail?.PostInfo?.Html}\n \n 最后一次编辑于{' '}\n {dayjs(postDetail?.PostInfo?.UpdatedAt).format('YYYY 年 MM 月 DD 日')}\n \n
    \n {\n if (!ifLogin) {\n toLogin();\n return;\n }\n await toggleLike({\n Uid: '',\n Type: 'post',\n TypeId: postId,\n Biz: biz,\n });\n if (isLike) {\n setLikeCount(n => n - 1);\n setIsLike(false);\n } else {\n setLikeCount(n => n + 1);\n setIsLike(true);\n }\n }}>\n \n \n {isLike && '已'}点赞 {likeCount === 0 ? '' : likeCount}\n \n \n\n {\n scroller.scrollTo('reply-editor', {\n duration: 1500,\n smooth: true,\n });\n }}>\n \n \n 回复\n \n \n
    \n \n \n 共 {postDetail?.PostInfo?.CommentCount} 条评论\n \n \n \n
    \n \n {\n editorRef.current = editor;\n }}\n />\n\n
    \n {\n const html = editorRef.current?.getHTML() || '';\n if (!html) {\n return Toast.error('请输入内容');\n }\n\n const postContent = replaceUrl(html);\n const res = await postComment({\n Html: postContent,\n Uid: '',\n Biz: biz,\n PostId: postId ?? '',\n Uris: getExitUris(postContent),\n });\n editorRef.current?.setHTML('');\n reportCreateComment({\n post_id: postId,\n comment_id: res.CommentId,\n uid: currentUser?.Id || '',\n to_uid: postDetail.PostInfo.UserId,\n });\n\n return reFetchComment?.();\n }}>\n 提交\n \n
    \n
    \n
    \n
    \n
    \n );\n};\n","import { PostDetail } from '@/components/Post/PostDetail';\n\nexport const Posts: React.FC = () => ;\n\nexport default Posts;\n","import { Form } from '@douyinfe/semi-ui';\n\nexport const TitleFormItem = () => (\n \n);\n","import { DropdownDivider, Form, Toast, Typography } from '@douyinfe/semi-ui';\nimport { FormApi } from '@douyinfe/semi-ui/lib/es/form';\nimport { useHistory } from '@jupiter/plugin-runtime/router';\nimport { useRef } from 'react';\nimport { SylApi } from '@syllepsis/adapter';\nimport { useEventBus } from '@byted/hooks';\nimport { TitleFormItem } from './TitleFormItem';\nimport EditorV2 from '@/components/EditorV2';\nimport { useScope } from '@/hooks/useScope';\nimport {\n CreatePostRequest,\n CreatePostResponseData,\n} from '@/typings/open.platform.forum_bff/namespaces/forumpost';\nimport useBiz from '@/context/useBiz';\nimport { PostType } from '@/typings/fe';\n\ntype Props = {\n submitPost: (req: CreatePostRequest) => Promise;\n};\n\nexport const SharePost: React.FC = ({ submitPost }) => {\n const formRef = useRef | null>(null);\n const history = useHistory();\n const biz = useBiz(state => state.biz);\n const scope = useScope();\n const editorRef = useRef(null);\n useEventBus('POST_SUBMIT', async (type: PostType) => {\n if (type !== 'share') {\n return;\n }\n\n const values = await formRef.current?.validate();\n if (!values) {\n return;\n }\n\n const html = editorRef.current?.getHTML();\n\n if (!html) {\n Toast.error('正文内容不能为空');\n return;\n }\n submitPost({\n Scope: scope,\n Biz: biz,\n Html: html,\n Title: values.Title,\n Meta: {},\n Uid: '',\n Type: 'share',\n });\n });\n return (\n
    \n 基础信息\n {\n formRef.current = formApi;\n }}>\n \n\n {\n history.replace({\n pathname: `/${value.target.value}/post/new`,\n });\n }}\n rules={[\n {\n required: true,\n message: '请选择发帖板块',\n },\n ]}>\n 小程序\n 小游戏\n {/* 服务商 */}\n {/* 抖音其他开放能力 */}\n \n \n 文章正文\n (editorRef.current = edtior)}\n className={'mt-6'}\n />\n \n
    \n );\n};\n","import { useEventBus } from '@byted/hooks';\nimport { DropdownDivider, Toast, Typography } from '@douyinfe/semi-ui';\nimport { Form, FormApi } from '@douyinfe/semi-ui/lib/es/form';\nimport { useRef } from 'react';\nimport { SylApi } from '@syllepsis/adapter';\nimport { useHistory } from '@jupiter/plugin-runtime/router';\nimport { EditorV2 } from '../EditorV2';\nimport { TitleFormItem } from './TitleFormItem';\nimport useBiz from '@/context/useBiz';\nimport {\n CreatePostRequest,\n CreatePostResponseData,\n} from '@/typings/open.platform.forum_bff/namespaces/forumpost';\nimport { PostType } from '@/typings/fe';\nimport { useScope } from '@/hooks/useScope';\nimport { Biz } from '@/typings/open.platform.forum_bff/namespaces/configure';\n\ntype Props = {\n submitPost: (req: CreatePostRequest) => Promise;\n};\n\nconst NoticeMap: Record = {\n [Biz.All]: '所有开发者',\n [Biz.Service]: '服务商',\n [Biz.Game]: '小游戏',\n [Biz.Open]: '小程序',\n};\n\nexport const BulletinPost = ({ submitPost }: Props) => {\n const formRef = useRef | null>(null);\n const biz = useBiz(state => state.biz);\n const scope = useScope();\n const editorRef = useRef(null);\n const history = useHistory();\n useEventBus('POST_SUBMIT', async (type: PostType) => {\n if (type !== 'bulletin') {\n return;\n }\n\n const values = await formRef.current?.validate();\n if (!values) {\n return;\n }\n\n const html = editorRef.current?.getHTML();\n if (!html) {\n Toast.error('正文内容不能为空');\n return;\n }\n const meta: Record = {};\n if (values.notice) {\n meta.publishNotification = 'true';\n }\n submitPost({\n Scope: scope,\n Biz: biz,\n Html: html,\n Title: values.Title,\n Meta: meta,\n Uid: '',\n Type: 'bulletin',\n BizList: values.BizList || [],\n });\n });\n\n return (\n
    \n 基础信息\n {\n formRef.current = formApi;\n }}\n render={({ values }) => (\n <>\n \n {\n history.replace({\n pathname: `/${value.target.value}/post/new`,\n });\n }}\n rules={[\n {\n required: true,\n message: '请选择发帖板块',\n },\n ]}>\n 小程序\n 小游戏\n {/* 服务商 */}\n {/* 抖音其他开放能力 */}\n \n \n {values.notice && (\n \n {Object.keys(NoticeMap).map(key => (\n \n ))}\n \n )}\n\n \n 文章正文\n (editorRef.current = edtior)}\n />\n \n )}\n />\n
    \n );\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"index-module__container--9-hkM\",\"title\":\"index-module__title--T0X-8\",\"form-container\":\"index-module__form-container--Be-wD\",\"formContainer\":\"index-module__form-container--Be-wD\",\"basic-info\":\"index-module__basic-info--xMN4Q\",\"basicInfo\":\"index-module__basic-info--xMN4Q\",\"first-level\":\"index-module__first-level--jHrTs\",\"firstLevel\":\"index-module__first-level--jHrTs\",\"radio-selected\":\"index-module__radio-selected--HzeK3\",\"radioSelected\":\"index-module__radio-selected--HzeK3\",\"radio-unselected\":\"index-module__radio-unselected--Li2ub\",\"radioUnselected\":\"index-module__radio-unselected--Li2ub\",\"three-level\":\"index-module__three-level--+nOhH\",\"threeLevel\":\"index-module__three-level--+nOhH\",\"input-description\":\"index-module__input-description--f4qMm\",\"inputDescription\":\"index-module__input-description--f4qMm\",\"btn-container\":\"index-module__btn-container--ZOfut\",\"btnContainer\":\"index-module__btn-container--ZOfut\",\"cancel\":\"index-module__cancel--qJwZM\"};","import React from 'react';\nimport { Popover } from '@douyinfe/semi-ui';\n\ninterface Props {\n key: string;\n description: string;\n children: React.ReactElement;\n}\nexport const PopContainer = (props: Props) => {\n const { key, description, children } = props;\n const popContent = (content: string) =>
    {content}
    ;\n return (\n 0}\n style={{\n backgroundColor: '#41464C',\n borderColor: '#41464C',\n borderRadius: '6px',\n color: 'white',\n }}\n content={popContent(description ?? '')}>\n {children}\n \n );\n};\n","import React, { useState, useEffect } from 'react';\nimport { useEventBus } from '@byted/hooks';\nimport { useHistory } from '@jupiter/plugin-runtime/router';\nimport { Form, useFormState, useFormApi } from '@douyinfe/semi-ui';\nimport _ from 'lodash';\nimport styles from './index.module.scss';\nimport formData from './form.json';\nimport { PopContainer } from './pop-content';\nimport { FormData } from './utils';\nimport { PostType, Scope } from '@/typings/fe';\nimport { useScope } from '@/hooks/useScope';\n// import { handleAsyncCallback } from '@/utils/common';\nconst ScopeMap: Record = {\n merchant: '服务商',\n 'mini-app': '小程序',\n 'mini-game': '小游戏',\n other: '抖音其他开放能力',\n synthesize: '',\n};\n\ntype Props = {\n onPostSubmit: (selectedItems: string[], list: Array) => void;\n};\n\nexport default ({ onPostSubmit }: Props) => {\n // 两个数组,一个维护当前选中的选项;一个维护选中后要展开的子选项\n const [selectedItems, setSelectedItems] = useState([] as string[]);\n const [list, setList] = useState([] as Array);\n const history = useHistory();\n const scope = useScope();\n\n const formState = useFormState();\n const formApi = useFormApi();\n\n // 根据选项,更新需要展开的结构\n useEffect(() => {\n const curArray = new Array(selectedItems.length + 1).fill(0);\n curArray[0] = formData;\n\n for (let i = 1; i < curArray.length; i++) {\n const temp = curArray[i - 1].filter(\n (item: FormData) => item.label === selectedItems[i - 1],\n )[0];\n curArray[i] = temp.children;\n }\n\n setList(curArray);\n }, [selectedItems]);\n\n // 选项更新\n const handleSelectedItem = (\n start: number,\n remove: number,\n replace: string,\n ) => {\n const oldItems = Array.from(selectedItems);\n if (replace.length) {\n oldItems.splice(start, remove, replace);\n } else {\n oldItems.splice(start, remove);\n }\n setSelectedItems(oldItems);\n };\n\n useEventBus('POST_SUBMIT', (type: PostType) => {\n if (type !== 'question') {\n return;\n }\n onPostSubmit(selectedItems, list);\n });\n\n // 渲染基础信息\n const renderBasic = (data: FormData[]) =>\n data.map(item => (\n \n {item.label}\n \n ));\n\n // 渲染信息详情\n const renderDetail = () =>\n list[list.length - 1].map(item => {\n if (item.type === 'input') {\n return (\n \n {\n if (!val && item.required) {\n callback(`请填写${item.label}`);\n return false;\n }\n if (val?.length > 200) {\n callback('最多输入 200 字');\n return false;\n }\n callback();\n return true;\n },\n },\n ]}\n placeholder={\n item.placeholder ? item.placeholder : `请填写${item.label}`\n }\n />\n
    \n {item.description}\n
    \n
    \n );\n } else if (item.type === 'radio') {\n return (\n \n {item.children?.map(child => (\n \n {child.label}\n \n ))}\n \n );\n } else if (item.type === 'textarea') {\n return (\n {\n if (!val) {\n callback(`${item.description}, 最多输入 300 字`);\n return false;\n }\n if (val.length > 300) {\n callback('最多输入 300 字');\n return false;\n }\n callback();\n return true;\n },\n },\n ]}\n key={item.id}\n maxCount={300}\n />\n );\n } else if (item.type === 'select') {\n return (\n \n {item.children?.map(child => (\n \n {child.label}\n \n ))}\n \n );\n } else if (item.type === 'specialRadio') {\n return (\n \n \n {item.children?.map(child => (\n \n {child.label}\n \n ))}\n \n {formApi.getValue('clientKey') === 'custom' ? (\n \n ) : null}\n \n );\n } else {\n return null;\n }\n });\n\n useEffect(() => {\n formApi.setValue('levelTwo', null);\n handleSelectedItem(0, selectedItems.length, ScopeMap[scope]);\n }, [scope]);\n\n return (\n \n {\n const _scope = _.findKey(ScopeMap, value => value === e.target.value);\n history.replace({\n pathname: `/${_scope!}/post/new`,\n });\n }}\n rules={[{ required: true, message: '业务版块不能为空' }]}>\n {renderBasic(list[0] || [])}\n \n {formState.values.levelOne ? (\n {\n handleSelectedItem(1, selectedItems.length - 1, e.target.value);\n formApi.setValue('levelThree', null);\n }}\n rules={[{ required: true, message: '问题类型不能为空' }]}>\n {renderBasic(list[1] || [])}\n \n ) : null}\n {formState.values.levelTwo ? (\n {\n handleSelectedItem(2, selectedItems.length - 2, e.target.value);\n formApi.setValue('levelFour', null);\n }}\n rules={[{ required: true, message: '问题模块不能为空' }]}>\n {renderBasic(list[2] || [])}\n \n ) : null}\n {formState.values.levelOne === 'service' &&\n formState.values.levelThree === 'reviewProblem' ? (\n \n {\n handleSelectedItem(3, selectedItems.length - 1, e.target.value);\n }}\n rules={[{ required: true, message: '审核类型模块不能为空' }]}>\n {renderBasic(list[3] || [])}\n \n {formState.values.levelFour ? (\n \n
    详细信息
    \n {renderDetail()}\n
    \n ) : null}\n
    \n ) : null}\n {formState.values.levelThree &&\n !(\n formState.values.levelOne === 'service' &&\n formState.values.levelThree === 'reviewProblem'\n ) ? (\n \n
    详细信息
    \n {renderDetail()}\n
    \n ) : null}\n
    \n );\n};\n","import { useRef } from 'react';\nimport { FormApi } from '@douyinfe/semi-ui/lib/es/form';\nimport { useEventBus, useStateRealtime } from '@byted/hooks';\nimport {\n Toast,\n Typography,\n Form,\n DropdownDivider,\n Banner,\n} from '@douyinfe/semi-ui';\nimport { SylApi } from '@syllepsis/adapter';\nimport _ from 'lodash';\nimport { EditorV2 } from '../EditorV2';\nimport { TitleFormItem } from './TitleFormItem';\nimport { FormData } from '@/components/creat-work-order/utils';\nimport CreateOrder from '@/components/creat-work-order';\n\nimport {\n CreatePostRequest,\n CreatePostResponseData,\n} from '@/typings/open.platform.forum_bff/namespaces/forumpost';\nimport useBiz from '@/context/useBiz';\nimport { useScope } from '@/hooks/useScope';\nimport { PostType } from '@/typings/fe';\n\ntype Props = {\n submitPost: (req: CreatePostRequest) => Promise;\n};\nexport const QuestionPost: React.FC = ({ submitPost }) => {\n const { Text } = Typography;\n const [, setMeta, getMeta] = useStateRealtime({});\n const formRef = useRef | null>(null);\n const editorRef = useRef(null);\n const scope = useScope();\n const biz = useBiz(state => state.biz);\n\n useEventBus('POST_SUBMIT', async (type: PostType) => {\n if (type !== 'question') {\n return;\n }\n\n const values = await formRef.current?.validate();\n if (!values) {\n return;\n }\n\n const newValues = _.pickBy(values, _.identity);\n\n const html = editorRef.current?.getHTML();\n if (!html) {\n Toast.error('正文内容不能为空');\n return;\n }\n submitPost({\n Scope: scope,\n Biz: biz,\n Html: html,\n Title: values.Title,\n Meta: {\n ...getMeta(),\n ...newValues,\n },\n Uid: '',\n Type: 'question',\n });\n });\n\n const onPostSubmit = (selectedItems: string[], _list: Array) => {\n if (selectedItems.length < 3) {\n return;\n }\n setMeta(prev => ({\n ...prev,\n 发帖板块: selectedItems[0],\n 问题类型: selectedItems[1],\n 问题模块: selectedItems[2],\n }));\n };\n return (\n
    \n \n 问题发布后,将于 7\n 个工作日内得到平台官方回复,如果不希望公开发布问题,

    \n 你可以前往\n \n 抖开平台\n \n 右下角咨询人工客服,或者提交\n 技术工单\n
    \n }\n />\n 基础信息\n {\n formRef.current = formApi;\n }}>\n \n\n \n \n \n 文章正文\n (editorRef.current = edtior)}\n className={'mt-6'}\n />\n \n );\n};\n","import { useEffect, useState } from 'react';\nimport { Button, Tabs, Toast, Typography } from '@douyinfe/semi-ui';\nimport { useHistory } from '@jupiter/plugin-runtime/router';\nimport { useRequest, useEventBus } from '@byted/hooks';\nimport { forumPostService } from '@/api/forumPost';\nimport { useScope } from '@/hooks/useScope';\nimport { CreatePostRequest } from '@/typings/open.platform.forum_bff/namespaces/forumpost';\nimport { SharePost } from '@/components/Post/SharePost';\nimport { PostType } from '@/typings/fe';\nimport { BulletinPost } from '@/components/Post/BulletinPost';\nimport { QuestionPost } from '@/components/Post/QuestionPost';\nimport { useUserInfo } from '@/hooks/useUserInfo';\nimport '../index.module.scss';\nimport { reportCreatePost } from '@/report';\nimport usePostImageSet from '@/hooks/usePostImageSet';\n\nconst fetcher = async (req: CreatePostRequest) => {\n const res = await forumPostService.createPost(req);\n if (res.error) {\n throw new Error(res.message);\n }\n return res.data;\n};\nexport const NewPost = () => {\n const scope = useScope();\n const history = useHistory();\n const { isAdmin, ifLogin } = useUserInfo();\n const [tabKey, setTabKey] = useState>('question');\n const { User } = useUserInfo();\n const { replaceUrl, getExitUris, clearUrlSet } = usePostImageSet();\n const { run, loading } = useRequest(fetcher, {\n auto: false,\n onError(res) {\n Toast.error(res.message);\n },\n onSuccess(res) {\n clearUrlSet();\n history.replace({\n pathname: `/${scope}/post/${res.PostId}`,\n });\n },\n });\n const submitPost = async (req: CreatePostRequest) => {\n const postContent = replaceUrl(req.Html);\n const res = await run({\n ...req,\n Html: postContent,\n Uris: getExitUris(postContent),\n });\n reportCreatePost({\n post_id: res.PostId,\n uid: User?.Id || '',\n post_type: req.Type,\n });\n return res;\n };\n const { trigger } = useEventBus('POST_SUBMIT');\n\n useEffect(() => {\n if (scope === 'synthesize') {\n history.replace('/mini-app/post/new');\n }\n }, [scope, history]);\n\n const handleSubmit = () => {\n switch (tabKey) {\n case 'share':\n trigger('share');\n break;\n case 'bulletin':\n trigger('bulletin');\n break;\n case 'question':\n trigger('question');\n break;\n default:\n break;\n }\n };\n return (\n <>\n
    \n 发帖\n {\n setTabKey(key as typeof tabKey);\n }}>\n \n \n \n \n \n \n {isAdmin && (\n \n \n \n )}\n \n
    \n \n {\n history.push('/');\n }}>\n 取消\n \n \n 提交\n \n \n \n );\n};\n\nexport default NewPost;\n","import NewPost from '@/components/Post/NewPost';\nimport { LoginMask } from '@/components/LoginMask';\n\nexport const New = () => (\n \n \n \n);\n\nexport default New;\n","import { ComponentType, useEffect } from 'react';\nimport '../App.scss';\nimport '../editor.scss';\nimport '@syllepsis/plugin-basic/assets/style.css';\nimport useBiz from '@/context/useBiz';\nimport { Biz } from '@/typings/open.platform.forum_bff/namespaces/configure';\n// const ForumLayout=()=>{\n\n// return (\n//
    \n\n//
    \n// )\n// }\ntype Platform = 'developer' | 'merchant';\ntype Props = {\n platform: 'developer' | 'merchant';\n};\nconst BizMap: Record> = {\n developer: Biz.Open,\n merchant: Biz.Service,\n};\n\nconst App = ({\n Component,\n props = { platform: 'developer' as Platform },\n ...pageProps\n}: {\n Component: ComponentType;\n props?: Props;\n}) => {\n // eslint-disable-next-line react/prop-types\n const { platform } = props;\n const state = useBiz();\n useEffect(() => {\n if (platform) {\n state.changeBiz(BizMap[platform]);\n }\n }, [platform, state.changeBiz]);\n\n useEffect(() => {\n window.Garfish?.channel.emit('main:im-close');\n }, []);\n\n return (\n \n \n \n );\n};\n\nexport default App;\n","import { IndexPage } from '@/components/IndexPage';\nimport { ScopeLayout } from '@/components/ScopeLayout';\nimport '../App.scss';\n\nexport const Index = () => (\n \n \n \n);\n\nexport default Index;\n","import React from 'react';\n\nexport const App = ({\n Component,\n ...pageProps\n}: {\n Component: React.ComponentType;\n}) => (\n
    \n \n
    \n);\n\nexport default App;\n","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"index-module__container--MdU6e\"};","import {\n Input,\n Tabs,\n TabPane,\n Pagination,\n Empty,\n Spin,\n} from '@douyinfe/semi-ui';\nimport { useRequest, useUrlParams } from '@byted/hooks';\nimport cls from 'classnames';\nimport { useEffect } from 'react';\nimport { IllustrationNoContent } from '@douyinfe/semi-illustrations';\nimport { IconSearch } from '@douyinfe/semi-icons';\nimport style from './index.module.scss';\nimport { forumPostService } from '@/api/forumPost';\nimport { Scope } from '@/typings/fe';\nimport { toastError } from '@/utils/toastError';\nimport { EsSearchResponseData } from '@/typings/open.platform.forum_bff/namespaces/forumpost';\nimport { PostItem } from '@/components/PostItem';\n\nasync function fetcher(params: Query) {\n try {\n const { scope = 'synthesize', q = '', limit = 10, page = 1 } = params;\n const res = await forumPostService.esSearch({\n Scope: scope === 'synthesize' ? '' : scope,\n Query: q,\n Limit: Math.max(limit, 0),\n Offset: Math.max((page - 1) * limit, 0),\n });\n\n if (res.error) {\n throw new Error(res.message);\n }\n return res.data;\n } catch (e) {\n toastError(e);\n }\n return undefined;\n}\n\nconst tabs = [\n {\n name: 'synthesize',\n label: '全部',\n },\n {\n name: 'mini-app',\n label: '小程序',\n },\n {\n name: 'mini-game',\n label: '小游戏',\n },\n {\n name: 'merchant',\n label: '服务商',\n },\n {\n name: 'other',\n label: '其他开放能力',\n },\n];\n\nconst map = {\n synthesize: 'TotalNum',\n 'mini-app': 'MiniAppNum',\n 'mini-game': 'MiniGameNum',\n merchant: 'MerchantNum',\n other: 'OtherNum',\n};\ntype CountName =\n | 'TotalNum'\n | 'MiniAppNum'\n | 'MiniGameNum'\n | 'MerchantNum'\n | 'OtherNum';\n\nfunction getTabName(\n all: EsSearchResponseData | undefined,\n tab: {\n name: string;\n label: string;\n },\n) {\n const name = tab.label;\n let count = 0;\n if (tab.name === 'synthesize') {\n count = all?.TotalNum ?? 0;\n } else {\n const countKey = map[tab.name as keyof typeof map] as CountName;\n count = all?.[countKey] ?? 0;\n }\n if (count <= 999) {\n return `${name}(${count})`;\n }\n return `${name}(999+)`;\n}\n\ninterface Query {\n q?: string;\n scope?: Scope;\n page?: number;\n limit?: number;\n}\n\nfunction useSearch() {\n const { value: query, setValue: setQuery } = useUrlParams();\n const { scope = 'synthesize', page = 1, limit = 10, q = '' } = query;\n\n const {\n data: all,\n run,\n loading: searching,\n } = useRequest(fetcher, {\n auto: false,\n debounceInterval: 500,\n });\n\n useEffect(() => {\n run({ scope, q, limit, page });\n }, []);\n\n const search = (params: Query) => {\n setQuery(params);\n\n run(params);\n };\n\n return {\n scope,\n page,\n limit,\n q,\n search,\n searching,\n all,\n };\n}\n\nconst Search: React.FC = () => {\n const { search, page, limit, scope, all, q, searching } = useSearch();\n\n return (\n
    \n
    \n {\n search({\n q,\n limit,\n page,\n scope,\n });\n }}\n />\n }\n onEnterPress={() => {\n search({\n q,\n limit,\n page,\n scope,\n });\n }}\n value={decodeURIComponent(q)}\n onChange={val => {\n search({\n q: encodeURIComponent(val),\n limit,\n page: 1,\n scope,\n });\n }}\n />\n
    \n {\n search({\n q,\n limit,\n page: 1,\n scope: active as Scope,\n });\n }}>\n {tabs.map(tab => (\n \n ))}\n \n \n {all?.List?.length ? (\n
    \n {all?.List?.map(item => (\n \n ))}\n\n
    \n {\n search({\n q,\n scope,\n page: current,\n limit: size,\n });\n }}\n />\n
    \n
    \n ) : (\n \n }\n />\n )}\n
    \n
    \n );\n};\n\nexport default Search;\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-nocheck\n\nimport * as configure from \"./configure\";\nimport * as forum_common from \"./forum_common\";\n\nexport type Int64 = string | number;\n\nexport enum BlackListState {\n Block = 1,\n Unblock = 2,\n Forever = 3,\n}\n\nexport enum BlockState {\n BLOCK = 1,\n UN_BLOCK = 2,\n}\n\nexport interface AddAdminRequest {\n UserId: string;\n Email: string;\n ChineseName: string;\n Operator?: string;\n}\n\nexport interface AddAdminResponse {\n error: number;\n message?: string;\n data?: AddAdminResponseData;\n}\n\nexport interface AddAdminResponseData {}\n\nexport interface AddEmployeeRequest {\n Uid: Int64;\n ChineseName: string;\n Email: string;\n Operator: string;\n Biz?: configure.Biz;\n}\n\nexport interface AddEmployeeResponse {\n error: number;\n message?: string;\n data?: AddEmployeeResponseData;\n}\n\nexport interface AddEmployeeResponseData {\n Employee?: Employee;\n}\n\nexport interface Admin {\n EmailPrefix?: string;\n Email?: string;\n ChineseName?: string;\n Operator?: string;\n CreatedAt?: string;\n UpdatedAt?: string;\n}\n\nexport interface BlackList {\n UserId?: string;\n State?: BlackListState;\n Duration?: number;\n RestDays?: number;\n ExpiredAt?: string;\n Reason?: string;\n CreatedAt?: string;\n UpdatedAt?: string;\n}\n\nexport interface BlockInfo {\n Id: string;\n UserId: string;\n ExpiredAt: Int64;\n Reason: string;\n CreatedAt: Int64;\n UpdatedAt: Int64;\n}\n\nexport interface Comment {\n Id?: string;\n Visible?: boolean;\n Delete?: boolean;\n PostId?: string;\n UserId?: string;\n UserInfo?: User;\n Html?: string;\n Text?: string;\n CreatedAt?: string;\n UpdatedAt?: string;\n PostUrl?: string;\n TcsUrl?: string;\n IsLiked?: boolean;\n Liked?: number;\n Replied?: number;\n Title?: string;\n}\n\nexport interface Employee {\n Id: string;\n Name: string;\n Email: string;\n ChineseName: string;\n CreatedAt: string;\n UpdatedAt: string;\n Uid: Int64;\n LarkUserId: string;\n LarkOpenId: string;\n Operator: string;\n}\n\nexport interface GetAdminsRequest {\n Name?: string;\n ChineseName?: string;\n PageNum?: number;\n PageSize?: number;\n}\n\nexport interface GetAdminsResponse {\n error: number;\n message?: string;\n data?: GetAdminsResponseData;\n}\n\nexport interface GetAdminsResponseData {\n List: Array;\n PageNum: number;\n PageSize: number;\n TotalNum: number;\n}\n\nexport interface GetCommentsRequest {\n Uid?: Int64;\n ToUserId?: string;\n PageNum?: number;\n PageSize?: number;\n Biz?: configure.Biz;\n}\n\nexport interface GetCommentsResponse {\n error: number;\n message?: string;\n data?: GetCommentsResponseData;\n}\n\nexport interface GetCommentsResponseData {\n PageNum?: number;\n PageSize?: number;\n Total?: number;\n Comments?: Array;\n}\n\nexport interface GetEmployeesRequest {\n Name: string;\n}\n\nexport interface GetEmployeesResponse {\n error: number;\n message?: string;\n data?: GetEmployeesResponseData;\n}\n\nexport interface GetEmployeesResponseData {\n Employees?: Array;\n}\n\nexport interface GetPostsRequest {\n Uid?: Int64;\n ToUserId?: string;\n Type?: string;\n PageNum?: number;\n PageSize?: number;\n Biz?: configure.Biz;\n}\n\nexport interface GetPostsResponse {\n error: number;\n message?: string;\n data?: GetPostsResponseData;\n}\n\nexport interface GetPostsResponseData {\n PageNum?: number;\n PageSize?: number;\n Total?: number;\n Posts?: Array;\n}\n\nexport interface GetRepliesRequest {\n Uid?: Int64;\n ToUserId?: string;\n PageNum?: number;\n PageSize?: number;\n Biz?: configure.Biz;\n}\n\nexport interface GetRepliesResponse {\n error: number;\n message?: string;\n data?: GetRepliesResponseData;\n}\n\nexport interface GetRepliesResponseData {\n PageNum?: number;\n PageSize?: number;\n Total?: number;\n Replies?: Array;\n}\n\nexport interface GetUserByIdRequest {\n UserId?: string;\n}\n\nexport interface GetUserByIdResponse {\n error: number;\n message?: string;\n data?: GetUserByIdResponseData;\n}\n\nexport interface GetUserByIdResponseData {\n User?: User;\n}\n\nexport interface GetUserHomeRequest {\n Uid?: Int64;\n ToUserId?: string;\n Biz?: configure.Biz;\n}\n\nexport interface GetUserHomeResponse {\n error: number;\n message?: string;\n data?: GetUserHomeResponseData;\n}\n\nexport interface GetUserHomeResponseData {\n User?: User;\n Black?: BlackList;\n Summary?: UserSummary;\n IsFollowed?: boolean;\n UserSummary?: forum_common.UserSummary;\n}\n\nexport interface GetUserInfoByUidRequest {\n UserId?: string;\n Uid?: Int64;\n}\n\nexport interface GetUserInfoByUidResponse {\n error: number;\n message?: string;\n data?: GetUserInfoByUidResponseData;\n}\n\nexport interface GetUserInfoByUidResponseData {\n UserInfo: User;\n BlockInfo?: BlockInfo;\n}\n\nexport interface GetUserRequest {\n Uid?: Int64;\n Biz?: configure.Biz;\n}\n\nexport interface GetUserResponse {\n error: number;\n message?: string;\n data?: GetUserResponseData;\n}\n\nexport interface GetUserResponseData {\n User?: User;\n Black?: BlackList;\n}\n\nexport interface GetUsersRequest {\n Name?: string;\n PageNum: number;\n PageSize: number;\n}\n\nexport interface GetUsersResponse {\n error: number;\n message?: string;\n data?: GetUsersResponseData;\n}\n\nexport interface GetUsersResponseData {\n List: Array;\n PageNum: number;\n PageSize: number;\n TotalNum: number;\n}\n\nexport interface Post {\n Id?: string;\n Visible?: boolean;\n Delete?: boolean;\n IsTop?: boolean;\n IsGood?: boolean;\n ViewCount?: number;\n CommentCount?: number;\n Scope?: string;\n Type?: string;\n UserId?: string;\n UserInfo?: User;\n Title?: string;\n Html?: string;\n Text?: string;\n Meta?: Record;\n CreatedAt?: string;\n UpdatedAt?: string;\n PostUrl?: string;\n TcsUrl?: string;\n FeedbackUrl?: string;\n Liked?: number;\n PostLiked?: number;\n IsLiked?: boolean;\n Collected?: number;\n}\n\nexport interface RemoveAdminRequest {\n UserId: string;\n Operator?: string;\n}\n\nexport interface RemoveAdminResponse {\n error: number;\n message?: string;\n data?: RemoveAdminResponseData;\n}\n\nexport interface RemoveAdminResponseData {}\n\nexport interface Reply {\n Id?: string;\n PostId?: string;\n CommentId?: string;\n Visible?: boolean;\n Delete?: boolean;\n UserId?: string;\n UserInfo?: User;\n ToUserId?: string;\n ToUserInfo?: User;\n Html?: string;\n Text?: string;\n CreatedAt?: string;\n UpdatedAt?: string;\n PostUrl?: string;\n TcsUrl?: string;\n IsLiked?: boolean;\n Liked?: number;\n Title?: string;\n}\n\nexport interface SetUserSummaryRequest {\n Uid?: Int64;\n Biz?: configure.Biz;\n}\n\nexport interface SetUserSummaryResponse {\n error: number;\n message?: string;\n data?: SetUserSummaryResponseData;\n}\n\nexport interface SetUserSummaryResponseData {}\n\nexport interface ToggleFollowRequest {\n Uid?: Int64;\n ToUserId?: string;\n Biz?: configure.Biz;\n}\n\nexport interface ToggleFollowResponse {\n error: number;\n message?: string;\n data?: ToggleFollowResponseData;\n}\n\nexport interface ToggleFollowResponseData {}\n\nexport interface UpdateBlockStateByUidRequest {\n UserId?: string;\n Uid?: Int64;\n AdminUserId?: string;\n AdminUid?: Int64;\n BlockState?: BlockState;\n ExpiredAt?: Int64;\n Reason?: string;\n AdminBiz?: configure.Biz;\n}\n\nexport interface UpdateBlockStateByUidResponse {\n error: number;\n message?: string;\n data?: UpdateBlockStateByUidResponseData;\n}\n\nexport interface UpdateBlockStateByUidResponseData {}\n\nexport interface User {\n Id?: string;\n Name?: string;\n Role?: string;\n Mobile?: string;\n Avatar?: string;\n IfAdmin?: boolean;\n AdminInfo?: Admin;\n CreatedAt?: string;\n WasAdmin?: boolean;\n IsThirdParty?: boolean;\n Biz?: configure.Biz;\n}\n\nexport interface UserSummary {\n UserId?: string;\n StartTime?: string;\n EndTime?: string;\n UserName?: string;\n InBlacklist?: boolean;\n ReleaseTime?: string;\n Rank?: number;\n Weight?: number;\n Post?: number;\n PostList?: Array;\n QuestionPost?: number;\n SharePost?: number;\n Viewed?: number;\n AvgViewed?: number;\n ViewedList?: Array;\n QuestionViewed?: number;\n AvgQuestionViewed?: number;\n ShareViewed?: number;\n AvgShareViewed?: number;\n Comment?: number;\n CommentList?: Array;\n Commented?: number;\n Reply?: number;\n ReplyList?: Array;\n Replied?: number;\n Like?: number;\n Liked?: number;\n Follow?: number;\n Followed?: number;\n QuestionLiked?: number;\n QuestionLikedList?: Array;\n ShareLiked?: number;\n ShareLikedList?: Array;\n CommentLiked?: number;\n CommentLikedList?: Array;\n ReplyLiked?: number;\n ReplyLikedList?: Array;\n PostReplied?: number;\n}\n/* eslint-enable */\n","import { useHistory, useParams } from '@jupiter/plugin-runtime/router';\nimport { useBoolean, useNumber, useRequest, useUrlParams } from '@byted/hooks';\nimport { useEffect, useState } from 'react';\nimport {\n Avatar,\n Button,\n Col,\n Row,\n Space,\n Tag,\n Divider,\n Toast,\n Modal,\n Form,\n Tabs,\n Empty,\n Pagination,\n Spin,\n} from '@douyinfe/semi-ui';\nimport {\n CommentOneSolid,\n PreviewOpen,\n CommentOne,\n GoodOne,\n Good,\n View,\n} from '@okee-fe/react-icons-dy-open';\nimport { FormApi } from '@douyinfe/semi-ui/lib/es/form';\nimport dayjs from 'dayjs';\nimport { IllustrationNoResult } from '@douyinfe/semi-illustrations';\nimport Paragraph from '@douyinfe/semi-ui/lib/es/typography/paragraph';\nimport Text from '@douyinfe/semi-ui/lib/es/typography/text';\nimport { BaseRequestFnType } from '@byted/hooks/lib/useRequest/types';\nimport { forumUserService } from '@/api/forumUser';\nimport { toastError } from '@/utils/toastError';\nimport {\n BlockState,\n GetUserHomeRequest,\n BlackListState,\n ToggleFollowRequest,\n UpdateBlockStateByUidRequest,\n Post,\n GetUserHomeResponseData,\n} from '@/typings/open.platform.forum_bff/namespaces/forumuser';\nimport { useUserInfo } from '@/hooks/useUserInfo';\nimport useBiz from '@/context/useBiz';\nimport { Int64 } from '@/typings/open.platform.forum_bff';\nimport { IconPost } from '@/components/IconPost';\n\nfunction useBlock() {\n return useRequest(async (params: UpdateBlockStateByUidRequest) => {\n try {\n const res = await forumUserService.updateBlockStateByUid(params);\n if (res.error) {\n throw new Error(res.message);\n }\n Toast.success(\n params.BlockState === BlockState.BLOCK ? '封禁成功' : '解除封禁成功',\n );\n } catch (e) {\n toastError(e);\n }\n });\n}\n\nfunction useUserInfoById() {\n const biz = useBiz(state => state.biz);\n const { id } = useParams<{\n id: string;\n }>();\n const { run, data, loading } = useRequest(\n async (params: GetUserHomeRequest) => {\n try {\n const res = await forumUserService.getUserHome(params);\n if (res.error) {\n throw new Error(res.message);\n }\n return res.data;\n } catch (e) {\n toastError(e);\n }\n return undefined;\n },\n {\n auto: true,\n ready: Boolean(id) && biz !== 0,\n refreshDeps: [id, biz],\n defaultParams: [\n {\n Uid: '',\n ToUserId: id,\n Biz: biz,\n },\n ],\n },\n );\n\n return { userInfo: data, gettingUserInfo: loading, refetch: run };\n}\n\nfunction useToggleFollow() {\n return useRequest(async (params: ToggleFollowRequest) => {\n try {\n const res = await forumUserService.toggleFollow(params);\n if (res.error) {\n throw new Error(res.message);\n }\n Toast.success('操作成功');\n return res.data;\n } catch (e) {\n toastError(e);\n }\n return undefined;\n });\n}\n\nconst BanButton: React.FC<{\n refetch: BaseRequestFnType<\n GetUserHomeResponseData | undefined,\n [params: GetUserHomeRequest]\n >;\n otherUserInfo?: GetUserHomeResponseData;\n}> = ({ refetch, otherUserInfo }) => {\n const { User: currentUser, isAdmin } = useUserInfo();\n const [visible, setVisible] = useState(false);\n const [wordCount, setWordCount] = useState(0);\n const { run: block } = useBlock();\n const [api, setApi] = useState>();\n const isBanned =\n otherUserInfo?.Black?.State &&\n otherUserInfo.Black.State !== BlackListState.Unblock;\n const biz = useBiz(s => s.biz);\n\n if (!isAdmin || currentUser?.Id === otherUserInfo?.User?.Id) {\n return null;\n }\n\n if (isBanned) {\n return (\n <>\n {\n Modal.warning({\n title: '确认解除封禁?',\n async onOk() {\n try {\n await block({\n UserId: otherUserInfo?.User?.Id,\n BlockState: BlockState.UN_BLOCK,\n AdminBiz: biz,\n AdminUid: '',\n });\n await refetch({\n Uid: '',\n ToUserId: otherUserInfo?.User?.Id,\n Biz: biz,\n });\n } catch (e) {\n toastError(e);\n }\n },\n });\n }}>\n 取消封禁\n \n \n );\n }\n\n return (\n <>\n {\n setVisible(true);\n }}>\n 封禁\n \n {\n await api?.validate();\n try {\n await block({\n UserId: otherUserInfo?.User?.Id,\n AdminBiz: biz,\n AdminUid: '',\n BlockState: BlockState.BLOCK,\n ExpiredAt: `${api?.getValue('time') ?? ''}`,\n Reason: api?.getValue('reason'),\n });\n await refetch({\n Uid: '',\n ToUserId: otherUserInfo?.User?.Id,\n Biz: biz,\n });\n } catch (e) {\n toastError(e);\n } finally {\n setVisible(false);\n }\n }}\n visible={visible}\n title=\"确认封禁\"\n closable={true}\n okText=\"封禁\"\n okButtonProps={{ type: 'danger' }}\n onCancel={() => setVisible(false)}>\n
    \n \n {\n setWordCount(value.length);\n }}\n rules={[{ required: true, message: '请输入封禁原因' }]}\n maxLength={100}\n suffix={\n {wordCount}/100\n }\n />\n \n
    \n \n );\n};\n\nconst UserPanel: React.FC = () => {\n const { userInfo: otherUserInfo, refetch } = useUserInfoById();\n const biz = useBiz(s => s.biz);\n const { run: toggleFollow, loading } = useToggleFollow();\n const { ifLogin, User: currentUser } = useUserInfo();\n const isOwner = currentUser?.Id && currentUser.Id === otherUserInfo?.User?.Id;\n\n const toLogin = () => {\n window.Garfish.channel.emit('main:login-activate');\n };\n\n const isBanned =\n otherUserInfo?.Black &&\n otherUserInfo.Black.State !== BlackListState.Unblock;\n\n const blockedDaysText =\n isBanned &&\n (otherUserInfo?.Black?.State === BlackListState.Forever\n ? '账号违规,永久封禁'\n : `账号违规,封禁${otherUserInfo?.Black?.RestDays ?? 0}天`);\n\n const { state: followedNumber, inc, dec, set } = useNumber();\n\n const { state: ifFollowed, setTrue, setFalse, toggle } = useBoolean(false);\n\n useEffect(() => {\n if (otherUserInfo?.IsFollowed) {\n setTrue();\n } else {\n setFalse();\n }\n set(Number(otherUserInfo?.UserSummary?.Followed ?? 0));\n }, [otherUserInfo]);\n\n const handleClick = async () => {\n if (!ifLogin) {\n toLogin();\n return;\n }\n\n await toggleFollow({\n Biz: biz,\n ToUserId: otherUserInfo?.User?.Id,\n });\n\n if (ifFollowed) {\n dec();\n } else {\n inc();\n }\n toggle();\n };\n\n return (\n
    \n
    \n
    \n \n
    \n
    \n \n {otherUserInfo?.User?.Name ?? '用户名'}\n {otherUserInfo?.User?.IfAdmin && (\n \n 管理员\n \n )}\n \n
    \n
    \n \n 关注了{' '}\n {Math.max(0, Number(otherUserInfo?.UserSummary?.Follow ?? 0))}\n \n 关注者 {Math.max(followedNumber, 0)}\n
    \n
    \n
    \n
    \n {isBanned && }\n {!isOwner && !isBanned && (\n \n {ifFollowed ? '取消关注' : '关注'}\n \n )}\n\n \n
    \n
    \n \n
    \n );\n};\n\nconst Achievement: React.FC = () => {\n const { userInfo: otherUserInfo } = useUserInfoById();\n return (\n
    \n
    \n 个人成就\n
    \n
    \n
    \n \n
    \n \n
    \n 发布内容获得点赞{' '}\n \n {otherUserInfo?.UserSummary?.Liked ?? 0}\n {' '}\n 次\n
    {' '}\n
    \n
    \n \n
    \n \n
    \n 发布内容获得讨论{' '}\n \n {Number(otherUserInfo?.UserSummary?.Commented ?? 0) +\n Number(otherUserInfo?.UserSummary?.Reply ?? 0)}\n {' '}\n 次\n
    {' '}\n
    \n
    \n \n
    \n \n
    \n 文章被阅读{' '}\n \n {otherUserInfo?.UserSummary?.ShareViewed ?? 0}\n {' '}\n 次\n
    {' '}\n
    \n
    \n \n
    \n 于 {dayjs(otherUserInfo?.User?.CreatedAt).format('YYYY-MM-DD')}{' '}\n 加入抖音小程序开发者社区\n
    \n
    \n );\n};\n\nconst tabNames = [\n {\n name: 'question',\n label: '问答帖',\n },\n {\n name: 'share',\n label: '文章',\n },\n {\n name: 'comment',\n label: '评论',\n },\n {\n name: 'reply',\n label: '回复',\n },\n];\n\ninterface Query {\n page?: number;\n limit?: number;\n activeKey?: string;\n}\n\ninterface PostsParams {\n activeKey: string;\n limit: number;\n page: number;\n}\n\nfunction useGetPosts(options: PostsParams) {\n const biz = useBiz(s => s.biz);\n const { id: toUserId } = useParams<{ id: string }>();\n const { activeKey, limit, page } = options;\n const { data, loading } = useRequest(\n async () => {\n try {\n if (['bulletin', 'question', 'share'].includes(activeKey)) {\n const res = await forumUserService.getPosts({\n Uid: '', // 当前登录用户的 uid\n ToUserId: toUserId, // 谁的用户主页 (Uid 查看了 ToUserId 的用户主页)\n Type: activeKey, // 帖子类型:all/question/share/bulletin\n PageNum: page, // 页码,选填,从 1 开始,默认为 1\n PageSize: limit, // 每页条数,选填,默认为 10\n Biz: biz, // 业务线\n });\n if (res.error) {\n throw new Error(res.message);\n }\n return {\n total: res.data.Total,\n list: res.data.Posts,\n };\n }\n\n if (activeKey === 'reply') {\n const res = await forumUserService.getReplies({\n ToUserId: toUserId,\n PageNum: page,\n PageSize: limit,\n Biz: biz,\n Uid: '',\n });\n if (res.error) {\n throw new Error(res.message);\n }\n return {\n total: res.data.Total,\n list: res.data.Replies,\n };\n }\n\n if (activeKey === 'comment') {\n const res = await forumUserService.getComment({\n Uid: '',\n ToUserId: toUserId,\n PageNum: page,\n PageSize: limit,\n Biz: biz,\n });\n if (res.error) {\n throw new Error(res.message);\n }\n return {\n total: res.data.Total,\n list: res.data.Comments,\n };\n }\n } catch (e) {\n toastError(e);\n }\n return {\n total: 0,\n list: [],\n };\n },\n {\n ready: biz !== 0,\n auto: true,\n refreshDeps: [toUserId, page, limit, biz, activeKey],\n },\n );\n return { data, loading };\n}\n\nconst List: React.FC<{\n query: Query;\n setQuery: React.Dispatch>;\n}> = ({ query, setQuery }) => {\n const history = useHistory();\n const { page = 1, limit = 10, activeKey = 'question' } = query;\n const { id: toUserId } = useParams<{ id: string }>();\n const { data, loading } = useGetPosts({\n activeKey,\n limit,\n page,\n });\n const { User, isAdmin } = useUserInfo();\n const isOwner = User?.Id && User.Id === toUserId;\n\n // 创建帖子的 scope\n const scope = 'mini-app';\n if (loading) {\n return (\n
    \n \n
    \n );\n }\n\n if (!data?.list?.length) {\n return (\n }\n className=\"h-[516px] mx-auto\"\n description={\n ['question', 'share', 'bulletin'].includes(activeKey)\n ? '暂未发布过帖子'\n : '暂无内容'\n }>\n {['question', 'share', 'bulletin'].includes(activeKey) && isOwner && (\n
    \n {\n history.push(`/${scope}/post/new`);\n }}>\n {activeKey === 'question' ? '去提问' : '去发布'}\n \n
    \n )}\n \n );\n }\n\n return (\n <>\n {data.list.map(item => (\n {\n let id;\n if ('PostId' in item) {\n id = item.PostId;\n } else {\n id = item.Id;\n }\n\n history.push(`/${scope}/post/${id ?? ''}`);\n }}>\n
    \n
    \n {!item.Visible && isAdmin && (\n \n 自见\n \n )}\n \n {activeKey === 'comment' && '评论了 '}\n {activeKey === 'reply' && '回复了'}\n \n \n {item.Title || '空标题'}\n \n
    \n
    \n \n {item.Text}\n \n
    \n \n {dayjs(item.CreatedAt).format('YYYY-MM-DD HH:mm')}\n \n
    \n \n \n {item.Liked ?? 0}\n \n {['bulletin', 'question', 'share'].includes(activeKey) && (\n <>\n \n \n \n {(item as Post).CommentCount ?? 0}\n \n \n \n \n {(item as Post).ViewCount ?? 0}\n \n \n )}\n
    \n
    \n \n ))}\n \n setQuery({\n ...query,\n page: cur,\n limit: size,\n })\n }\n />\n \n );\n};\n\nconst Summary: React.FC = () => {\n const { userInfo: otherUserInfo } = useUserInfoById();\n const { value: query, setValue: setQuery } = useUrlParams({\n activeKey: 'question',\n });\n return (\n
    \n setQuery({ ...query, page: 1, activeKey: key })}>\n {(otherUserInfo?.User?.WasAdmin || otherUserInfo?.User?.IfAdmin) && (\n \n )}\n {tabNames.map(tab => (\n \n ))}\n \n \n
    \n );\n};\n\nexport const User = () => (\n
    \n \n \n {}\n \n \n \n \n
    \n);\n\nexport default User;\n","import React from 'react';\n\nconst Layout = ({\n Component,\n ...pageProps\n}: {\n Component: React.ComponentType;\n}) => ;\nexport default Layout;\n","// Tea 5.0 版本不支持函数调用 服务商平台误安装了 5.0 的 Tea 版本,暂时 Hot Fix\nconst TeaInstance = typeof window.Tea === 'function' ? window.Tea : undefined;\n\nexport const reportClickBanner = ({\n banner_id,\n pic_link,\n post_link,\n label,\n serial,\n post_title,\n}: Record) => {\n TeaInstance?.('click_banner', {\n banner_id,\n pic_link,\n post_link,\n label,\n serial,\n post_title,\n });\n};\n\nexport const reportCreateComment = ({\n post_id,\n comment_id,\n uid,\n to_uid,\n}: Record) => {\n TeaInstance?.('create_comment', {\n post_id,\n comment_id,\n uid,\n to_uid,\n });\n};\n\nexport const reportCreateReply = ({\n post_id,\n comment_id,\n uid,\n to_uid,\n reply_id,\n}: Record) => {\n TeaInstance?.('create_reply', {\n post_id,\n comment_id,\n uid,\n to_uid,\n reply_id,\n });\n};\n\nexport const reportInit = ({\n app_id,\n channel = 'cn',\n autotrack = false,\n}: Record) => {\n TeaInstance?.('init', {\n app_id,\n channel,\n autotrack, // 默认关闭,需要热力图及圈选功能可开启\n });\n};\n\nexport const reportStart = () => {\n TeaInstance?.('start');\n};\n\nexport const reportQuerySearch = () => {\n TeaInstance?.('query-search');\n};\n\nexport const reportViewNotification = () => {\n TeaInstance?.('view_notification');\n};\n\nexport const reportViewPost = ({\n post_id,\n uid,\n post_type,\n}: Record) => {\n TeaInstance?.('view_post', {\n post_id,\n uid,\n post_type,\n });\n};\n\nexport const reportCreatePost = ({\n post_id,\n uid,\n post_type,\n}: Record) => {\n TeaInstance?.('create_post', {\n post_id,\n uid,\n post_type,\n });\n};\n\nexport const reportConfig = ({ user_unique_id }: Record) => {\n TeaInstance?.('config', {\n user_unique_id,\n });\n};\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-nocheck\n\nexport type Int64 = string | number;\n\nexport enum Biz {\n All = 0,\n Open = 1,\n Service = 2,\n Game = 3,\n}\n/* eslint-enable */\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-nocheck\n\nimport * as configure from \"./configure\";\n\nexport type Int64 = string | number;\n\nexport enum BannerState {\n No = 0,\n Online = 1,\n Offline = 2,\n}\n\nexport enum EventType {\n abandon_task = 1,\n postponed_task = 2,\n}\n\nexport enum GroupType {\n Default = 0,\n Board = 1,\n Special = 2,\n}\n\nexport enum PostReplyFeedBackStatus {\n SHOW_FEEL_GOOD = 1,\n NOT_SHOW_FEEL_GOOD = 2,\n}\n\nexport enum ProjectMode {\n label = 1,\n audit = 2,\n double_review = 3,\n sample_audit = 4,\n custom = 5,\n full_custom = 6,\n}\n\nexport enum TaskMode {\n label = 1,\n audit = 2,\n double_review = 3,\n}\n\nexport interface AbandonTaskEventInfo {\n abandon_by_username?: string;\n submit_time?: string;\n}\n\nexport interface Banner {\n Id: string;\n Image: string;\n Url: string;\n State: BannerState;\n Serial: number;\n Label: string;\n Operator: string;\n CreatedAt: string;\n UpdatedAt: string;\n Title: string;\n}\n\nexport interface CasePost {\n Id: string;\n User?: User;\n Type: string;\n TypeName: string;\n Scope: string;\n ScopeName: string;\n Title: string;\n FeedbackType: number;\n FeedbackTypeName: string;\n FeedbackState: number;\n FeedbackStateName: string;\n Comments: Array;\n Email: string;\n ResolvingTime: Int64;\n Uid: Int64;\n Url: string;\n Biz?: configure.Biz;\n collected: number;\n}\n\nexport interface Comment {\n Id: string;\n Visible: boolean;\n Delete: boolean;\n PostId: string;\n UserId: string;\n UserInfo: User;\n Html: string;\n Text: string;\n CreatedAt: string;\n UpdatedAt: string;\n TcsUrl: string;\n CreatedAtInt64: Int64;\n UpdatedAtInt64: Int64;\n IsLiked?: boolean;\n Liked?: number;\n Replied?: number;\n}\n\nexport interface CreateCommentRequest {\n PostId: string;\n Html: string;\n Uid: Int64;\n Biz?: configure.Biz;\n Uris?: Array;\n}\n\nexport interface CreateCommentResponse {\n error: number;\n message?: string;\n data?: CreateCommentResponseData;\n}\n\nexport interface CreateCommentResponseData {\n CommentId: string;\n CostTime: number;\n}\n\nexport interface CreatePostRequest {\n Uid: Int64;\n Title: string;\n Html: string;\n Scope: string;\n Type: string;\n Meta: Record;\n Biz?: configure.Biz;\n BizList?: Array;\n Uris?: Array\n}\n\nexport interface CreatePostResponse {\n error: number;\n message?: string;\n data?: CreatePostResponseData;\n}\n\nexport interface CreatePostResponseData {\n PostId: string;\n CostTime: number;\n}\n\nexport interface CreateReplyRequest {\n CommentId: string;\n Html: string;\n ToUserId: string;\n Uid: Int64;\n Biz?: configure.Biz;\n}\n\nexport interface CreateReplyResponse {\n error: number;\n message?: string;\n data?: CreateReplyResponseData;\n}\n\nexport interface CreateReplyResponseData {\n ReplyId: string;\n CostTime: number;\n}\n\nexport interface DeleteCommentRequest {\n CommentId: string;\n Reason: string;\n Uid: Int64;\n Biz?: configure.Biz;\n}\n\nexport interface DeleteCommentResponse {\n error: number;\n message?: string;\n data?: DeleteCommentResponseData;\n}\n\nexport interface DeleteCommentResponseData {\n CostTime: number;\n}\n\nexport interface DeleteGroupRequest {\n Uid: Int64;\n GroupId: string;\n Biz?: configure.Biz;\n}\n\nexport interface DeleteGroupResponse {\n error: number;\n message?: string;\n data?: DeleteGroupResponseData;\n}\n\nexport interface DeleteGroupResponseData {}\n\nexport interface DeletePostGroupRequest {\n Uid: Int64;\n GroupId: string;\n PostId: string;\n Biz?: configure.Biz;\n}\n\nexport interface DeletePostGroupResponse {\n error: number;\n message?: string;\n data?: DeletePostGroupResponseData;\n}\n\nexport interface DeletePostGroupResponseData {}\n\nexport interface DeleteReplyRequest {\n ReplyId: string;\n Reason: string;\n Uid: Int64;\n Biz?: configure.Biz;\n}\n\nexport interface DeleteReplyResponse {\n error: number;\n message?: string;\n data?: DeleteReplyResponseData;\n}\n\nexport interface DeleteReplyResponseData {\n CostTime: number;\n}\n\nexport interface EsSearchRequest {\n Query: string;\n Scope: string;\n Limit: number;\n Offset: number;\n}\n\nexport interface EsSearchResponse {\n error: number;\n message?: string;\n data?: EsSearchResponseData;\n}\n\nexport interface EsSearchResponseData {\n TotalNum: number;\n MiniAppNum: number;\n MiniGameNum: number;\n MerchantNum: number;\n OtherNum: number;\n List: Array;\n}\n\nexport interface FeedbackBindPostRequest {\n FeedbackId?: Int64;\n}\n\nexport interface FeedbackBindPostResponse {\n error: number;\n message?: string;\n data?: FeedbackBindPostResponseData;\n}\n\nexport interface FeedbackBindPostResponseData {}\n\nexport interface FeedbackHookRequest {\n RawData: string;\n}\n\nexport interface FeedbackHookResponse {\n error: number;\n message?: string;\n data?: FeedbackHookResponseData;\n}\n\nexport interface FeedbackHookResponseData {}\n\nexport interface GetBannersRequest {\n Scope?: string;\n}\n\nexport interface GetBannersResponse {\n error: number;\n message?: string;\n data?: GetBannersResponseData;\n}\n\nexport interface GetBannersResponseData {\n Banners: Array;\n}\n\nexport interface GetCasePostRequest {\n PostId: string;\n}\n\nexport interface GetCasePostResponse {\n error: number;\n message?: string;\n data?: GetCasePostResponseData;\n}\n\nexport interface GetCasePostResponseData {\n Post?: CasePost;\n}\n\nexport interface GetCommentListRequest {\n Condition?: Params;\n PageNum: number;\n PageSize: number;\n PostId: string;\n}\n\nexport interface GetCommentListResponse {\n error: number;\n message?: string;\n data?: GetCommentListResponseData;\n}\n\nexport interface GetCommentListResponseData {\n CommentList?: Array;\n TotalNum?: number;\n CostTime: number;\n}\n\nexport interface GetPostListByUidRequest {\n UserId?: string;\n Uid?: Int64;\n PageNum: number;\n PageSize: number;\n FromUserId?: string;\n FromUid?: Int64;\n FromBiz?: configure.Biz;\n Biz?: configure.Biz;\n}\n\nexport interface GetPostListByUidResponse {\n error: number;\n message?: string;\n data?: GetPostListByUidResponseData;\n}\n\nexport interface GetPostListByUidResponseData {\n PostList?: Array;\n TotalNum: number;\n}\n\nexport interface GetPostReplyFeedbackStatusRequest {\n PostId: string;\n Uid: Int64;\n Biz?: configure.Biz;\n}\n\nexport interface GetPostReplyFeedbackStatusResponse {\n error: number;\n message?: string;\n data?: GetPostReplyFeedbackStatusResponseData;\n}\n\nexport interface GetPostReplyFeedbackStatusResponseData {\n status: PostReplyFeedBackStatus;\n}\n\nexport interface GetPostRequest {\n PostId?: string;\n Uid?: Int64;\n Biz?: configure.Biz;\n}\n\nexport interface GetPostResponse {\n error: number;\n message?: string;\n data?: GetPostResponseData;\n}\n\nexport interface GetPostResponseData {\n PostInfo: Post;\n CostTime: number;\n}\n\nexport interface GetPostsByGroupIdRequest {\n GroupId: string;\n Type?: string;\n PageNo?: number;\n PageSize?: number;\n}\n\nexport interface GetPostsByGroupIdResponse {\n error: number;\n message?: string;\n data?: GetPostsByGroupIdResponseData;\n}\n\nexport interface GetPostsByGroupIdResponseData {\n GroupInfo: Group;\n PageNo: number;\n PageSize: number;\n TotalNum: number;\n CostTime: number;\n}\n\nexport interface GetPostsByGroupRequest {\n Scope: string;\n}\n\nexport interface GetPostsByGroupResponse {\n error: number;\n message?: string;\n data?: GetPostsByGroupResponseData;\n}\n\nexport interface GetPostsByGroupResponseData {\n List: Array;\n CostTime: number;\n}\n\nexport interface GetPostsFromPostIdRequest {\n Uid: Int64;\n Scope: string;\n Type: string;\n Choice: string;\n PostId?: string;\n Biz?: configure.Biz;\n PostCount?: number;\n}\n\nexport interface GetPostsFromPostIdResponse {\n error: number;\n message?: string;\n data?: GetPostsFromPostIdResponseData;\n}\n\nexport interface GetPostsFromPostIdResponseData {\n List: Array;\n CostTime: number;\n}\n\nexport interface GetPostsRequest {\n Uid: Int64;\n Scope: string;\n Type: string;\n PageNo: number;\n PageSize: number;\n Choice?: string;\n Biz?: configure.Biz;\n}\n\nexport interface GetPostsResponse {\n error: number;\n message?: string;\n data?: GetPostsResponseData;\n}\n\nexport interface GetPostsResponseData {\n List: Array;\n TotalNum: number;\n PageNo: number;\n PageSize: number;\n CostTime: number;\n}\n\nexport interface GetPostsToConsoleRequest {\n Uid?: Int64;\n Biz?: configure.Biz;\n PostCount: Int64;\n}\n\nexport interface GetPostsToConsoleResponse {\n error: number;\n message?: string;\n data?: GetPostsToConsoleResponseData;\n}\n\nexport interface GetPostsToConsoleResponseData {\n List: Array;\n TotalNum: number;\n CostTime: number;\n}\n\nexport interface GetReplyListRequest {\n Condition?: Params;\n PageNum: number;\n PageSize: number;\n CommentIds: Array;\n}\n\nexport interface GetReplyListResponse {\n error: number;\n message?: string;\n data?: GetReplyListResponseData;\n}\n\nexport interface GetReplyListResponseData {\n ReplyList?: Array;\n TotalNum?: number;\n CostTime: number;\n}\n\nexport interface GetSummaryRequest {}\n\nexport interface GetSummaryResponse {\n error: number;\n message?: string;\n data?: GetSummaryResponseData;\n}\n\nexport interface GetSummaryResponseData {\n summary: string;\n}\n\nexport interface Group {\n Id: string;\n Name: string;\n Scope: string;\n Remark: string;\n CreatedAt: string;\n UpdatedAt: string;\n UserId: string;\n PostList: Array;\n GroupType: GroupType;\n}\n\nexport interface InsertGroupRequest {\n Uid: Int64;\n Scope: string;\n Name: string;\n GroupType: GroupType;\n Biz?: configure.Biz;\n}\n\nexport interface InsertGroupResponse {\n error: number;\n message?: string;\n data?: InsertGroupResponseData;\n}\n\nexport interface InsertGroupResponseData {\n GroupId: string;\n}\n\nexport interface InsertPostGroupRequest {\n Uid: Int64;\n GroupId: string;\n PostId: string;\n Biz?: configure.Biz;\n Index?: number;\n}\n\nexport interface InsertPostGroupResponse {\n error: number;\n message?: string;\n data?: InsertPostGroupResponseData;\n}\n\nexport interface InsertPostGroupResponseData {}\n\nexport interface InsertTicketRequest {\n PostId: string;\n}\n\nexport interface InsertTicketResponse {\n error: number;\n message?: string;\n data?: InsertTicketResponseData;\n}\n\nexport interface InsertTicketResponseData {\n TicketId: Int64;\n}\n\nexport interface MGetObjectDataReq {\n object_ids?: Array;\n project_meta?: ProjectMeta;\n request_type?: number;\n}\n\nexport interface MGetObjectDataRsp {\n error: number;\n message?: string;\n data?: MGetObjectDataRspData;\n}\n\nexport interface MGetObjectDataRspData {\n object_data_map: Record;\n}\n\nexport interface MSetTaskResultReq {\n project_meta?: ProjectMeta;\n task_results?: Array;\n config?: string;\n rule?: string;\n dry_run?: Int64;\n}\n\nexport interface MSetTaskResultRsp {\n error: number;\n message?: string;\n data?: MSetTaskResultRspData;\n}\n\nexport interface MSetTaskResultRspData {\n failed_task_ids?: Array;\n node_results?: Array;\n}\n\nexport interface NexusRequest {\n Ticket: Ticket;\n}\n\nexport interface NexusResponse {\n error: number;\n message?: string;\n data?: NexusResponseData;\n}\n\nexport interface NexusResponseData {}\n\nexport interface NodeResult {\n status_code?: number;\n status_message?: string;\n node_context?: string;\n node_name?: string;\n node_type?: string;\n}\n\nexport interface NotifyTaskEventReq {\n project_meta?: ProjectMeta;\n task_events?: Array;\n}\n\nexport interface NotifyTaskEventRsp {\n error: number;\n message?: string;\n data?: NotifyTaskEventRspData;\n}\n\nexport interface NotifyTaskEventRspData {\n failed_task_ids?: Array;\n}\n\nexport interface Params {\n Delete?: boolean;\n Visible?: boolean;\n Uid?: Int64;\n ToUid?: Int64;\n CreatedAtInt64?: Int64;\n UpdatedAtInt64?: Int64;\n Biz?: configure.Biz;\n ToBiz?: configure.Biz;\n}\n\nexport interface Post {\n Id: string;\n Visible: boolean;\n Delete: boolean;\n IsTop: boolean;\n IsGood: boolean;\n ViewCount: number;\n CommentCount: number;\n Scope: string;\n Type: string;\n UserId: string;\n UserInfo?: User;\n Title: string;\n Html: string;\n Text: string;\n Meta: Record;\n CreatedAt: string;\n UpdatedAt: string;\n TcsUrl: string;\n FeedbackUrl: string;\n SearchHighlightInfo?: SearchHighlight;\n Liked?: number;\n PostLiked?: number;\n IsLiked?: boolean;\n Collected?: number;\n}\n\nexport interface PostReplyFeedback {\n Score: number;\n Content: string;\n}\n\nexport interface ProjectMeta {\n project_id?: Int64;\n product_type?: string;\n project_group?: string;\n project_slug?: string;\n project_mode?: ProjectMode;\n task_mode?: TaskMode;\n project_title?: string;\n tags?: Array;\n project_type?: number;\n extra?: string;\n}\n\nexport interface RemovePostRequest {\n Uid: Int64;\n PostId: string;\n Reason?: string;\n Biz?: configure.Biz;\n}\n\nexport interface RemovePostResponse {\n error: number;\n message?: string;\n data?: RemovePostResponseData;\n}\n\nexport interface RemovePostResponseData {}\n\nexport interface Reply {\n Id: string;\n PostId: string;\n CommentId: string;\n Visible: boolean;\n Delete: boolean;\n UserId: string;\n UserInfo: User;\n ToUserId: string;\n ToUserInfo: User;\n Html: string;\n Text: string;\n CreatedAt: string;\n UpdatedAt: string;\n TcsUrl: string;\n CreatedAtInt64: Int64;\n UpdatedAtInt64: Int64;\n IsLiked?: boolean;\n Liked?: number;\n}\n\nexport interface SearchHighlight {\n Highlight?: Record>;\n}\n\nexport interface SelfVisibleCommentRequest {\n CommentId: string;\n Visible: boolean;\n Uid: Int64;\n Reason: string;\n Biz?: configure.Biz;\n}\n\nexport interface SelfVisibleCommentResponse {\n error: number;\n message?: string;\n data?: SelfVisibleCommentResponseData;\n}\n\nexport interface SelfVisibleCommentResponseData {\n CostTime: number;\n}\n\nexport interface SelfVisiblePostRequest {\n Uid: Int64;\n PostId: string;\n Reason?: string;\n Biz?: configure.Biz;\n}\n\nexport interface SelfVisiblePostResponse {\n error: number;\n message?: string;\n data?: SelfVisiblePostResponseData;\n}\n\nexport interface SelfVisiblePostResponseData {\n CostTime: number;\n}\n\nexport interface SelfVisibleReplyRequest {\n ReplyId: string;\n Visible: boolean;\n Uid: Int64;\n Reason: string;\n Biz?: configure.Biz;\n}\n\nexport interface SelfVisibleReplyResponse {\n error: number;\n message?: string;\n data?: SelfVisibleReplyResponseData;\n}\n\nexport interface SelfVisibleReplyResponseData {\n CostTime: number;\n}\n\nexport interface SetFbTypeIdRequest {\n Id?: string;\n Num?: Int64;\n}\n\nexport interface SetFbTypeIdResponse {\n error: number;\n message?: string;\n data?: SetFbTypeIdResponseData;\n}\n\nexport interface SetFbTypeIdResponseData {}\n\nexport interface SubmitPostReplyFeedbackRequest {\n PostId: string;\n Uid: Int64;\n Feedback: PostReplyFeedback;\n Biz?: configure.Biz;\n}\n\nexport interface SubmitPostReplyFeedbackResponse {\n error: number;\n message?: string;\n data?: SubmitPostReplyFeedbackResponseData;\n}\n\nexport interface SubmitPostReplyFeedbackResponseData {}\n\nexport interface TaskEvent {\n task_id?: Int64;\n object_id?: string;\n object_version?: number;\n event_type?: EventType;\n abandon_task_event_info?: AbandonTaskEventInfo;\n extra?: Record;\n}\n\nexport interface TaskResult {\n task_id?: Int64;\n object_id?: string;\n object_version?: number;\n merged_result?: VerifyResult;\n verify_results?: Array;\n current_turn?: number;\n object_data?: string;\n task_mode?: TaskMode;\n has_next_turn?: number;\n}\n\nexport interface Ticket {\n Id: string;\n CreatedAt: Int64;\n UpdatedAt: Int64;\n Status: string;\n PostId: string;\n TicketId: Int64;\n OpenChatId: string;\n LarkChatId: string;\n Submitter: string;\n Owner: string;\n Operator: string;\n}\n\nexport interface ToggleCollectPostRequest {\n Uid?: Int64;\n Biz?: configure.Biz;\n PostId?: string;\n}\n\nexport interface ToggleCollectPostResponse {\n error: number;\n message?: string;\n data?: ToggleCollectPostResponseData;\n}\n\nexport interface ToggleCollectPostResponseData {}\n\nexport interface ToggleCommentDeleteRequest {\n CommentId: string;\n Reason: string;\n Uid: Int64;\n Biz?: configure.Biz;\n}\n\nexport interface ToggleCommentDeleteResponse {\n error: number;\n message?: string;\n data?: ToggleCommentDeleteResponseData;\n}\n\nexport interface ToggleCommentDeleteResponseData {\n CostTime: number;\n}\n\nexport interface ToggleCommentVisibleRequest {\n CommentId: string;\n Uid: Int64;\n Reason: string;\n Biz?: configure.Biz;\n}\n\nexport interface ToggleCommentVisibleResponse {\n error: number;\n message?: string;\n data?: ToggleCommentVisibleResponseData;\n}\n\nexport interface ToggleCommentVisibleResponseData {\n CostTime: number;\n}\n\nexport interface ToggleGoodRequest {\n PostId: string;\n Uid: Int64;\n Biz?: configure.Biz;\n}\n\nexport interface ToggleGoodResponse {\n error: number;\n message?: string;\n data?: ToggleGoodResponseData;\n}\n\nexport interface ToggleGoodResponseData {\n IsGood: boolean;\n}\n\nexport interface ToggleLikeRequest {\n Uid?: Int64;\n Type?: string;\n TypeId?: string;\n Biz?: configure.Biz;\n}\n\nexport interface ToggleLikeResponse {\n error: number;\n message?: string;\n data?: ToggleLikeResponseData;\n}\n\nexport interface ToggleLikeResponseData {}\n\nexport interface ToggleReplyVisibleRequest {\n ReplyId: string;\n Uid: Int64;\n Reason: string;\n Biz?: configure.Biz;\n}\n\nexport interface ToggleReplyVisibleResponse {\n error: number;\n message?: string;\n data?: ToggleReplyVisibleResponseData;\n}\n\nexport interface ToggleReplyVisibleResponseData {\n CostTime: number;\n}\n\nexport interface ToggleTopRequest {\n PostId: string;\n Uid: Int64;\n Biz?: configure.Biz;\n}\n\nexport interface ToggleTopResponse {\n error: number;\n message?: string;\n data?: ToggleTopResponseData;\n}\n\nexport interface ToggleTopResponseData {\n IsTop: boolean;\n}\n\nexport interface UpdatePostRequest {\n Uid: Int64;\n PostId: string;\n Title?: string;\n Html?: string;\n Biz?: configure.Biz;\n Uris?: Array\n}\n\nexport interface UpdatePostResponse {\n error: number;\n message?: string;\n data?: UpdatePostResponseData;\n}\n\nexport interface UpdatePostResponseData {}\n\nexport interface User {\n Id: string;\n Name: string;\n Role: string;\n Mobile: string;\n Avatar: string;\n}\n\nexport interface VerifyResult {\n verify_id?: Int64;\n verify_result?: string;\n verifier?: string;\n turn?: number;\n assign_time?: Int64;\n resolve_time?: Int64;\n}\n\nexport interface VisiblePostRequest {\n Uid: Int64;\n PostId: string;\n Reason?: string;\n Biz?: configure.Biz;\n}\n\nexport interface VisiblePostResponse {\n error: number;\n message?: string;\n data?: VisiblePostResponseData;\n}\n\nexport interface VisiblePostResponseData {}\n/* eslint-enable */\n","import Axios, { AxiosInstance, AxiosPromise, AxiosRequestConfig } from 'axios';\n\n// 兼容 error code 不为1的情况\ntype ErrorCode = 1 | 5;\n\nexport interface ReturnSuccessResponse {\n error: 0;\n data: T;\n}\nexport interface ReturnErrorResponse {\n error: ErrorCode;\n message: string;\n}\ninterface HttpReturnSuccessResponse {\n err_no: 0;\n err_tips: '成功';\n}\n\nexport interface HttpReturnErrorResponse {\n err_no: number;\n err_tips: string;\n data: Record;\n}\n\ntype RequestBaseFunc = (\n axiosInstance: AxiosInstance,\n) => (\n req: AxiosRequestConfig,\n) => AxiosPromise>;\n\ntype RequestSimpleFunc = (\n axiosInstance: AxiosInstance,\n) => (req: AxiosRequestConfig) => AxiosPromise;\n\ntype RequestHttpFunc = (\n axiosInstance: AxiosInstance,\n) => (\n req: AxiosRequestConfig,\n) => AxiosPromise>;\n\nexport type ReturnResponse = ReturnSuccessResponse | ReturnErrorResponse;\n\nexport type HttpReturnResponse =\n | (HttpReturnSuccessResponse & T)\n | HttpReturnErrorResponse;\n\nconst defaultAxiosRequestConfig: AxiosRequestConfig = {\n timeout: 7000,\n responseType: 'json',\n withCredentials: true,\n headers: {\n 'Content-Type': 'application/json;charset=UTF-8',\n },\n};\n\nlet axios: AxiosInstance | undefined;\n\nexport const initAxios = (param: AxiosRequestConfig): AxiosInstance => {\n if (!axios) {\n axios = Axios.create({\n ...defaultAxiosRequestConfig,\n ...param,\n });\n } else {\n // eslint-disable-next-line no-console\n console.log('axios已经初始化过了');\n }\n return axios;\n};\n\nexport const createBaseRequest: RequestBaseFunc = axiosInstance => req =>\n axiosInstance(req);\n\nexport const createBaseRequestWithOutReturnResponse: RequestSimpleFunc =\n axiosInstance => req =>\n axiosInstance(req);\n\nexport const createBaseRequestHttpCase: RequestHttpFunc =\n axiosInstance => req =>\n axiosInstance(req);\n","/*\n * @Author: liangzhaozhang\n * @Date: 2022-02-28 15:39:52\n * @Last Modified by: liangzhaozhang\n * @Last Modified time: 2022-05-21 18:24:44\n */\n\nimport {\n initAxios,\n createBaseRequest,\n createBaseRequestWithOutReturnResponse,\n} from 'open-platform-utils';\nimport { Toast } from '@douyinfe/semi-ui';\n\n// 初始化 axios 实例\nconst axios = initAxios({});\n\nexport const showMessageWithStatus = (status: number | string): void => {\n let message = '';\n switch (status) {\n case 400:\n message = '请求错误 (400)';\n break;\n case 401:\n message = '未授权,请重新登录 (401)';\n break;\n case 403:\n message = '拒绝访问 (403)';\n break;\n case 404:\n message = '请求出错 (404)';\n break;\n case 408:\n message = '请求超时 (408)';\n break;\n case 500:\n message = '服务器错误 (500)';\n break;\n case 501:\n message = '服务未实现 (501)';\n break;\n case 502:\n message = '网络错误 (502)';\n break;\n case 503:\n message = '服务不可用 (503)';\n break;\n case 504:\n message = '网络超时 (504)';\n break;\n case 505:\n message = 'HTTP 版本不受支持 (505)';\n break;\n default:\n message = `连接出错 (${status})!`;\n }\n Toast.destroyAll();\n Toast.error(message);\n};\n\nexport const showMessageWithMsg = (message: string): void => {\n if (!message) {\n return;\n }\n Toast.destroyAll();\n Toast.error(message);\n};\n\naxios.interceptors.response.use(\n response => {\n if (response.status === 200) {\n // TODO: 兼容处理没有 error 的情况\n // if (!response.data.error) {\n // // 处理接口异常\n // showMessageWithMsg(response.data.message);\n // }\n return response;\n } else {\n // showMessageWithStatus(response.status);\n return response;\n }\n },\n (error: any) => {\n const { response } = error;\n if (response) {\n // 请求已发出,但是不在 2xx 的范围\n // showMessageWithStatus(response.status);\n return Promise.reject(response);\n } else {\n // Toast.error('网络连接异常,请稍后再试!');\n return Promise.reject(error);\n }\n },\n);\n\nexport const request = createBaseRequest(axios);\nexport const requestServerV1 = createBaseRequestWithOutReturnResponse(axios);\nexport const requestAweme = createBaseRequestWithOutReturnResponse(axios);\n","import { Toast } from '@douyinfe/semi-ui';\n\nexport function toastError(err: unknown, defaultVal = '未知错误') {\n let msg = '';\n if (err instanceof Error) {\n msg = err.message;\n } else if (typeof err === 'string') {\n msg = err;\n }\n Toast.error(msg || defaultVal);\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"index-module__container--RM7cz\",\"searchHighlight\":\"index-module__searchHighlight--e9lzH\",\"hoverChildrenPrimary\":\"index-module__hoverChildrenPrimary--Iuw6s\",\"post-tab\":\"index-module__post-tab--Be6Mc\",\"postTab\":\"index-module__post-tab--Be6Mc\"};"],"names":["root","factory","exports","module","define","amd","a","i","window","prefix","bff_prefix","formPrefix","Service","deletePostGroup","req","request","url","data","method","res","getBanners","params","getPostsById","getPosts","toggleGood","toggleTop","getPostsByGroup","deleteGroup","removePost","insertPostGroup","insertGroup","createPost","selfVisiblePost","visiblePost","getPostsByGroupId","esSearch","getPost","getReplyList","getCommentList","createComment","createReply","deleteComment","toggleCommentDelete","deleteReply","selfVisibleComment","selfVisibleReply","toggleLike","updatePost","forumPostService","getUserInfo","getUserHome","getUserById","updateBlockStateByUid","toggleFollow","getReplies","getComment","forumUserService","Icon","xmlns","height","viewBox","width","fill","d","XiguaSuffix","onClick","open","XiguaTitleModal","props","insertExample","VideoController","editor","store","modalVisible","modalInstance","toolbar","className","tooltip","icon","handler","inputRef","info","Modal","title","insertCard","src","destroy","content","XiguaLinkInput","addonAfter","ref","el","onOk","value","match","exec","transformSrc","Toast","extraDom","visible","modalWrapper","document","createElement","body","appendChild","ReactDOM","SylController","styled","VideoMask","attrs","sandbox","allowFullScreen","allow","style","background","border","VideoView","configuration","name","tagName","parseDOM","tag","getAttrs","dom","default","ViewMap","template","mask","Card","VideoPlugin","Controller","Schema","SylPlugin","uploadImage","uploadService","locale","header1","header2","header3","color","undo","redo","format_clear","format_painter","header","block_quote","bullet_list","ordered_list","code_block","image","placeholder","left","center","right","link","editLinkTitle","insertLinkTitle","textPlaceholder","linkPlaceholder","cancelText","okText","video","emoji","hr","bold","italic","underline","strike","sub","sup","font_size","anchor","align_left","align_center","align_right","align_justify","EditorV2","getEditorInstance","rest","setUrlSet","usePostImageSet","useState","FontSizePlugin","values","AlignLeftPlugin","AlignCenterPlugin","AlignRightPlugin","AlignJustifyPlugin","LinkPlugin","SubPlugin","SupPlugin","HeaderPlugin","BlockQuotePlugin","BoldPlugin","BulletListPlugin","FormatClearPlugin","HrPlugin","ItalicPlugin","OrderedListPlugin","StrikePlugin","UnderlinePlugin","ParagraphPlugin","LetterSpacePlugin","BackgroundPlugin","ColorPlugin","TablePlugin","ListItemPlugin","EmojiPlugin","InlineImagePlugin","deleteFailedUpload","allowDomains","uploader","f","fetch","resp","blob","uploadFormData","FormData","append","errorImageUrl","error","uri","plugins","Ctor","ToolbarLoader","option","Component","Toolbar","tooltips","RedoPlugin","UndoPlugin","CodeBlockPlugin","FormatPainterPlugin","getName","SpaceBeforePlugin","SpaceAfterPlugin","SpaceBothPlugin","LineHeightPlugin","LineIndentPlugin","tools","modules","getEditor","IconPost","scope","useScope","position","StyledIcoPost","Garfish","location","origin","fetcher","_url","Scope","Error","ScopeMap","other","Z","synthesize","Y","merchant","Banners","useSWR","isValidating","banners","loading","useBanner","borderRadius","theme","length","map","banner","index","reportClickBanner","banner_id","Id","pic_link","Image","post_link","Url","label","Label","serial","Serial","post_title","Title","backgroundSize","backgroundImage","cursor","alt","UserCard","num","userId","cls","type","heading","strong","UserHome","useUserInfo","currentUser","User","ifLogin","history","useHistory","biz","useBiz","state","_User","ToUserId","Biz","useUserHome","maxWidth","Avatar","Name","push","channel","emit","Number","UserSummary","Question","Reply","Comment","Share","Collected","PostList","scrollParentRef","postType","choice","s","postList","setPostList","isAdmin","pageNo","Type","Uid","Choice","PageNo","PageSize","hasMore","list","List","useRequest","auto","ready","pathname","includes","onSuccess","run","reset","useEffect","unsubscribe","usePost","shouldRefetch","darkModeImage","description","getScrollParent","current","initialLoad","pageStart","threshold","useWindow","loadMore","page","post","PostItem","textAlign","ellipsis","rows","renderNoticeItem","notice","ifAdmin","item","target","to","UpdatedAt","replace","STD_DATE_FORMAT_RE","renderOtherItem","group","refetch","onConfirm","Panel","children","NoticeBoard","align","spacing","size","Boolean","OtherBoard","useDeletePostGroup","useDeleteGroup","renderAddPostModal","useInsertPostGroupModal","Topic","useGetPostsByGroup","posts","useInsertGroupModal","renderInsertGroupModal","triggerAddModal","special","filter","v","GroupType","e","stopPropagation","NoticeCard","find","OFFICIAL","spinning","AddBoard","renderAddModal","IconProtocol","clx","classnames","styles","IndexPage","shouldFixed","setShouldFixed","scrollListenRef","useRef","scrollListenAnothorRef","useScroll","undefined","onScroll","getTopDistance","distanceDiff","setChoice","getBoundingClientRect","top","topDistance","bottom","Math","abs","minWidth","defaultActiveKey","keepDOM","lazyRender","tabBarExtraContent","StyledChoiceButton","selected","tab","itemKey","StyledBackTop","BackTop","Wrapper","Blur","blur","Mask","LoginMask","groupId","GroupId","message","toastError","deletingGroup","postId","PostId","removingPost","refreshDeps","order","Index","addingPost","useInsertPostGroup","id","orderCount","onChange","val","optionList","Array","_","addingGroup","useInsertGroup","setVisible","formRef","groupType","setGroupType","placeHolder","ok","validate","getValue","refetchRef","closeOnEsc","onCancel","getFormApi","api","field","noLabel","autofocus","onEnterPress","initValue","PostTags","useTopAndGood","refetchPost","IsTop","MyTag","shouldActive","IsGood","opacity","PostTypeMap","bulletin","question","share","all","isSearch","Visible","Safe","SearchHighlightInfo","Highlight","join","collapsible","text","Text","UserId","UserInfo","Role","dayjs","CreatedAt","format","Liked","CommentCount","ViewCount","SafeSpan","dangerouslySetInnerHTML","__html","SafeHtmlContent","ScopesMap","ScopeLayout","search","setSearch","toSearchPage","keyword","encodeURIComponent","reportQuerySearch","exact","padding","fontSize","activeStyle","fontWeight","Object","entries","key","suffix","create","set","changeBiz","useParams","defaultParams","onError","postDetail","fetchPost","fetchingPost","getState","urlSet","sets","encodeSets","str","from","Set","replaceUrl","html","_html","_set","forEach","getExitUris","clearUrlSet","toggleTopFetcher","toggleGoodFetcher","fetchUserInfo","reportConfig","user_unique_id","IfAdmin","Layout","pageProps","Billboard","useUrlParams","limit","setValue","renderModal","GroupInfo","total","TotalNum","currentPage","pageSize","prev","TitleInput","withField","TitleBox","CustomInput","event","TitleCount","editorRef","setTimeout","updatingPost","useUpdatePost","PostInfo","setHTML","Html","rules","validator","_rule","cb","ins","defaultValue","getHTML","postContent","Uris","go","selfReply","selfComment","selfPost","nonSelfVisible","isOwner","param","err","deletePost","nonSelfVisiblePost","bulletinId","useBulletinId","separator","Reason","reason","okButtonProps","disabled","maxLength","maxCount","showCounter","update","deletePostConfirm","selfVisibleConfirm","delFetch","useReply","useLike","togglingLike","isReply","man","ReplyOperation","comment","postReply","replyContent","setReplyContent","reloadReply","useEventBus","trigger","isLiked","setIsLike","likeCount","setLikeCount","IsLiked","CommentId","reportCreateReply","post_id","comment_id","reply_id","ReplyId","uid","to_uid","TypeId","n","useComment","changeCommentId","commentId","fetchDelFromAdmin","fetchDel","createLoading","toggleDelete","CommentItem","useCommentApi","replySelfFetch","commentSelfFetch","reloadComment","ifBelongToMe","showAdminTitle","deleteFromAdmin","IsDeleteFromAdmin","Delete","deleteFromUser","ToUserInfo","_content","_biz","replyOkFn","commentOkFn","modal","handleDeleteFromAdmin","handleDeleteFromUser","modal1","modal2","ReplyList","Total","Replies","usePagination","defaultPageSize","replyList","pagination","reFetchReply","reply","CommentList","Comments","commentList","reFetchComment","showTotal","metaToHtml","meta","canSee","specialAttr","levelOne","levelTwo","levelThree","attr","keys","subKey","PostDetail","isLike","postComment","reportViewPost","post_type","Meta","scroller","duration","smooth","reportCreateComment","Posts","TitleFormItem","required","autosize","SharePost","submitPost","autoScrollToError","skipOverflowHiddenElements","behavior","formApi","edtior","NoticeMap","BulletinPost","publishNotification","BizList","render","multiple","PopContainer","showArrow","backgroundColor","borderColor","onPostSubmit","selectedItems","setSelectedItems","setList","formState","useFormState","useFormApi","curArray","formData","temp","handleSelectedItem","start","remove","oldItems","splice","renderBasic","renderDetail","_a","callback","child","_scope","levelFour","QuestionPost","Typography","useStateRealtime","setMeta","getMeta","newValues","closeIcon","fullMode","href","_list","发帖板块","问题类型","问题模块","tabKey","setTabKey","reportCreatePost","htmlType","New","BizMap","developer","platform","App","q","Query","Limit","max","Offset","tabs","getTabName","count","countKey","query","setQuery","debounceInterval","searching","useSearch","decodeURIComponent","activeKey","onTabClick","active","hideOnSinglePage","BlackListState","BlockState","useUserInfoById","userInfo","gettingUserInfo","BanButton","otherUserInfo","wordCount","setWordCount","BLOCK","block","setApi","isBanned","Black","State","Unblock","UN_BLOCK","AdminBiz","AdminUid","ExpiredAt","closable","UserPanel","blockedDaysText","Forever","RestDays","useNumber","followedNumber","inc","dec","useBoolean","ifFollowed","setTrue","setFalse","toggle","IsFollowed","Followed","handleClick","Follow","Achievement","Commented","ShareViewed","tabNames","toUserId","options","PageNum","useGetPosts","cur","Summary","WasAdmin","span","TeaInstance","Tea","BannerState","EventType","PostReplyFeedBackStatus","ProjectMode","TaskMode","axios","defaultAxiosRequestConfig","timeout","responseType","withCredentials","headers","createBaseRequestWithOutReturnResponse","axiosInstance","console","log","Axios","interceptors","response","use","status","Promise","reject","defaultVal","msg"],"sourceRoot":""}