{"version":3,"file":"js/chunk.0ddd2acbae1bbd66.js","mappings":"wPA8BA,IArBkD,SAACA,GACjD,IAAQC,EAAgCD,EAAhCC,KAAMC,EAA0BF,EAA1BE,QAAYC,EAAS,IAAKH,EAAK,GAC7C,GAA8BI,EAAAA,EAAAA,WAAS,GAAM,WAAtCC,EAAO,KAAEC,EAAU,KAC1B,OACE,SAAC,KAAM,SACLD,QAASA,EACTH,QAAO,gBAAE,gFACU,OAAjBI,GAAW,GAAM,kBAETJ,IAAS,OAEG,OAFH,SAEfI,GAAW,GAAO,wEAGlBH,GAAS,aAEZF,IAGP,C,0NCLMM,EAAsC,SAACP,GAC3C,OAAwCI,EAAAA,EAAAA,UAASJ,EAAMQ,MAAMC,gBAAe,WAArEC,EAAY,KAAEC,EAAe,KACpC,GAA8BP,EAAAA,EAAAA,YAC1BJ,EAAMQ,MAAMI,8BAAgCZ,EAAMQ,MAAMC,iBAC3D,WAFMI,EAAO,KAAEC,EAAU,KAG1B,OACE,iBACEC,UAAWC,IAAW,qBAAsBhB,EAAMe,WAClD,YAAU,4BAA2B,WAErC,kBACEA,UAAU,8BACVb,QAAS,WACHF,EAAMQ,MAAMS,WACVP,EACFQ,OAAOC,SAASC,KAAO,iBAAH,OAAoBpB,EAAMQ,MAAMa,IAAG,KAEvDC,EAAAA,GAAAA,MAAc,WAGhBJ,OAAOC,SAASC,KAAO,iBAAH,OAAoBpB,EAAMQ,MAAMa,IAAG,IAE3D,EAAE,WAEF,gBAAKN,UAAU,4BAA4BQ,IAAKvB,EAAMQ,MAAMgB,QAC5D,kBAAMT,UAAU,kCAAiC,UAC9Cf,EAAMQ,MAAMiB,MACZzB,EAAMQ,MAAMS,aACX,iBAAMF,UAAU,gEAA+D,SAAC,UAKlFf,EAAMQ,MAAMS,aACZ,kBAAMF,UAAU,SAAQ,UACrBf,EAAMQ,MAAMkB,aAAa,QAAM1B,EAAMQ,MAAMmB,kBAIlD,SAACC,EAAA,EAAY,CACX3B,KACED,EAAMQ,MAAMI,6BACR,MACAF,EACA,MACAG,EACAb,EAAMQ,MAAMS,WACV,OACA,KACF,MAENf,QAAO,gBAAE,gGACD2B,EAAAA,GAAe7B,EAAMQ,MAAMa,KAAI,OACjCrB,EAAMQ,MAAMS,YACdK,EAAAA,GAAAA,QAAgB,QAChBR,GAAW,KAEXQ,EAAAA,GAAAA,QAAgB,QAChBX,GAAgB,IACjB,2CAEHmB,UAAWjB,EACXkB,MAAO,CAAEC,MAAO,UAAWC,SAAU,QACrCC,KAAK,QACLnB,UAAU,kBAIlB,EA4DA,EApD4C,SAACf,GAAU,MACrD,OACE,iBAAKe,UAAU,0BAAyB,WACtC,iBACEA,UAAU,mDACVgB,MAAO,CAAEI,aAAc,qBAAsB,WAE7C,gBAAK,YAAU,iBAAgB,UAC7B,iBAAMpB,UAAU,qCAAoC,SACjDf,EAAMyB,WAGX,eACEL,KAAM,iBACNgB,OAAO,SACPrB,UAAU,iCACVsB,IAAI,aAAY,UACjB,QAEC,gBAAKd,IAAKe,WAGd,gBAAKvB,UAAU,4BAA2B,SAC3B,QAD2B,EACvCf,EAAMuC,cAAM,aAAZ,EAAcC,KACb,SAACC,EAAWC,GAAa,eACP,QAAhB,EAAAD,EAAKE,mBAAW,aAAhB,EAAkBC,QAAS,IACzB,iBACE7B,UAAS,kBACP0B,EAAKE,YAAYC,OAAS,IAAMF,EAC5B,GACA,4CACH,WAGH,gBAAK3B,UAAU,wDAAuD,SACnE0B,EAAKI,OAES,QADX,EACLJ,EAAKE,mBAAW,aAAhB,EAAkBH,KAAI,SAAChC,GAAgB,OACtC,SAACD,EAAS,CAERC,MAAOA,EACPO,UAAU,WAFLP,EAAMa,IAGX,MAVCoB,EAAKK,GAab,QAKb,C","sources":["webpack:///./src/components/ButtonRender/index.tsx","webpack:///./src/components/group/GroupCard/index.tsx"],"sourcesContent":["// 该函数组件主要是为了统一处理Button按钮的loading\n\nimport { Button } from 'antd';\nimport { useState } from 'react';\n\ntype ButtonRenderProps = {\n onClick: () => void;\n text: string;\n} & Omit<React.ComponentProps<typeof Button>, 'onClick'>;\nconst ButtonRender: React.FC<ButtonRenderProps> = (props) => {\n const { text, onClick, ...restPorps } = props;\n const [loading, setLoading] = useState(false);\n return (\n <Button\n loading={loading}\n onClick={async () => {\n setLoading(true);\n try {\n await onClick();\n } finally {\n setLoading(false);\n }\n }}\n {...restPorps}\n >\n {text}\n </Button>\n );\n};\n\nexport default ButtonRender;\n","import * as api from '@/api/group';\nimport ButtonRender from '@/components/ButtonRender';\nimport rightArrowSvg from '@/static/imgs/right-arrow.svg';\nimport { message } from 'antd';\nimport classNames from 'classnames';\nimport { useState } from 'react';\nimport './index.scss';\n\ntype HomeGroup = {\n is_private: boolean;\n is_user_joined: boolean;\n logo: string;\n member_count: number;\n post_count: number;\n title: string;\n uid: string;\n user_has_pending_application: boolean;\n};\n\ntype GroupItemProps = {\n group: HomeGroup;\n className: string;\n};\nconst GroupItem: React.FC<GroupItemProps> = (props) => {\n const [isUserJoined, setIsUserJoined] = useState(props.group.is_user_joined);\n const [canJoin, setCanJoin] = useState<boolean>(\n !(props.group.user_has_pending_application || props.group.is_user_joined),\n );\n return (\n <div\n className={classNames('group-item w-356px', props.className)}\n data-flex=\"main:justify cross:center\"\n >\n <span\n className=\"text-hex-000 cursor-pointer\"\n onClick={() => {\n if (props.group.is_private) {\n if (isUserJoined) {\n window.location.href = `/group/groups/${props.group.uid}/`;\n } else {\n message.error('请先加入本圈子');\n }\n } else {\n window.location.href = `/group/groups/${props.group.uid}/`;\n }\n }}\n >\n <img className=\"h-40px w-40px rounded-4px\" src={props.group.logo} />\n <span className=\"ml-8px font-500 text-hex-1D2129\">\n {props.group.title}\n {props.group.is_private && (\n <span className=\"ml-4px text-12px p-2px bg-hex-3598E8 text-hex-fff rounded-3px\">\n 私\n </span>\n )}\n </span>\n {!props.group.is_private && (\n <span className=\"ml-8px\">\n {props.group.member_count}成员·讨论{props.group.post_count}\n </span>\n )}\n </span>\n <ButtonRender\n text={\n props.group.user_has_pending_application\n ? '待审核'\n : isUserJoined\n ? '已加入'\n : canJoin\n ? props.group.is_private\n ? '申请加入'\n : '加入'\n : '待审核'\n }\n onClick={async () => {\n await api.applyGroup(props.group.uid);\n if (props.group.is_private) {\n message.success('申请成功');\n setCanJoin(false);\n } else {\n message.success('加入成功');\n setIsUserJoined(true);\n }\n }}\n disabled={!canJoin}\n style={{ color: '#4E5969', fontSize: '12px' }}\n size=\"small\"\n className=\"join-button\"\n />\n </div>\n );\n};\n\ntype GroupCardProps = {\n title: string;\n subhead?: string;\n url: string; // 点击查看更多跳转地址\n groups: any;\n};\nconst GroupCard: React.FC<GroupCardProps> = (props) => {\n return (\n <div className=\"group-bar block h-308px\">\n <div\n className=\"px-20px h-60px flex justify-between items-center\"\n style={{ borderBottom: '1px solid #f2f3f5' }}\n >\n <div data-flex=\"cross:baseline\">\n <span className=\"text-20px font-500 text-hex-1d2129\">\n {props.title}\n </span>\n </div>\n <a\n href={'/group/groups/'}\n target=\"_blank\"\n className=\"text-hex-3598E8 cursor-pointer\"\n rel=\"noreferrer\"\n >\n 查看更多\n <img src={rightArrowSvg} />\n </a>\n </div>\n <div className=\"grid grid-cols-3 p-y-20px\">\n {props.groups?.map(\n (item: any, index: number) =>\n item.home_groups?.length > 0 && (\n <div\n className={`px-20px ${\n item.home_groups.length - 1 === index\n ? ''\n : 'border-r-1 border-r-solid border-hex-eee'\n }`}\n key={item.id}\n >\n <div className=\"group-module-title text-18px font-500 text-hex-1d2129\">\n {item.name}\n </div>\n {item.home_groups?.map((group: HomeGroup) => (\n <GroupItem\n key={group.uid}\n group={group}\n className=\"mt-20px\"\n />\n ))}\n </div>\n ),\n )}\n </div>\n </div>\n );\n};\n\nexport default GroupCard;\n"],"names":["props","text","onClick","restPorps","useState","loading","setLoading","GroupItem","group","is_user_joined","isUserJoined","setIsUserJoined","user_has_pending_application","canJoin","setCanJoin","className","classNames","is_private","window","location","href","uid","message","src","logo","title","member_count","post_count","ButtonRender","api","disabled","style","color","fontSize","size","borderBottom","target","rel","rightArrowSvg","groups","map","item","index","home_groups","length","name","id"],"sourceRoot":""}