mirror of
https://github.com/ragestudio/comty.git
synced 2025-06-11 11:34:15 +00:00
added UserBadges
component
This commit is contained in:
parent
eedd7b0f5b
commit
7a6ce80048
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