mirror of
https://github.com/ragestudio/comty.git
synced 2025-06-09 10:34:17 +00:00
added UserBadges
component
This commit is contained in:
parent
65cc1b5fba
commit
0a9b1f46c7
41
packages/app/src/components/UserBadges/index.jsx
Normal file
41
packages/app/src/components/UserBadges/index.jsx
Normal file
@ -0,0 +1,41 @@
|
||||
import React from "react"
|
||||
import * as antd from "antd"
|
||||
import Loadable from "react-loadable"
|
||||
|
||||
import { createIconRender } from "components/Icons"
|
||||
import { User } from "models"
|
||||
|
||||
export default React.memo((props) => {
|
||||
return React.createElement(Loadable({
|
||||
loader: async () => {
|
||||
let { user_id } = props
|
||||
|
||||
const badgesData = await User.getUserBadges(user_id).catch((err) => {
|
||||
console.error(err)
|
||||
|
||||
app.message.error("Failed to fetch user badges")
|
||||
|
||||
return null
|
||||
})
|
||||
|
||||
if (!badgesData) {
|
||||
return null
|
||||
}
|
||||
|
||||
return () => badgesData.map((badge, index) => {
|
||||
return <antd.Tooltip placement="bottom" title={badge.description ?? "An badge"}>
|
||||
<antd.Tag
|
||||
color={badge.color ?? "default"}
|
||||
key={index}
|
||||
id={badge.name}
|
||||
icon={createIconRender(badge.icon)}
|
||||
className="badge"
|
||||
>
|
||||
<span>{badge.label}</span>
|
||||
</antd.Tag>
|
||||
</antd.Tooltip>
|
||||
})
|
||||
},
|
||||
loading: antd.Skeleton,
|
||||
}))
|
||||
})
|
Loading…
x
Reference in New Issue
Block a user