2022-04-17 12:46:06 +08:00
|
|
|
import { resizeImage } from '../utils/common'
|
|
|
|
import useUser from '../hooks/useUser'
|
|
|
|
import SvgIcon from './SvgIcon'
|
2022-05-12 02:45:43 +08:00
|
|
|
import cx from 'classnames'
|
|
|
|
import { useNavigate } from 'react-router-dom'
|
2022-04-17 12:46:06 +08:00
|
|
|
|
|
|
|
const Avatar = ({ size }: { size?: string }) => {
|
|
|
|
const navigate = useNavigate()
|
|
|
|
const { data: user } = useUser()
|
|
|
|
|
|
|
|
const avatarUrl = user?.profile?.avatarUrl
|
|
|
|
? resizeImage(user?.profile?.avatarUrl ?? '', 'sm')
|
|
|
|
: ''
|
|
|
|
|
|
|
|
return (
|
|
|
|
<>
|
|
|
|
{avatarUrl ? (
|
|
|
|
<img
|
|
|
|
src={avatarUrl}
|
|
|
|
onClick={() => navigate('/login')}
|
2022-05-12 02:45:43 +08:00
|
|
|
className={cx(
|
2022-04-17 12:46:06 +08:00
|
|
|
'app-region-no-drag rounded-full bg-gray-100 dark:bg-gray-700',
|
|
|
|
size || 'h-9 w-9'
|
|
|
|
)}
|
|
|
|
/>
|
|
|
|
) : (
|
|
|
|
<div onClick={() => navigate('/login')}>
|
|
|
|
<SvgIcon
|
|
|
|
name='user'
|
2022-05-12 02:45:43 +08:00
|
|
|
className={cx(
|
2022-04-17 12:46:06 +08:00
|
|
|
'rounded-full bg-black/[.06] p-1 text-gray-500 dark:bg-white/5',
|
|
|
|
size || 'h-9 w-9'
|
|
|
|
)}
|
|
|
|
/>
|
|
|
|
</div>
|
|
|
|
)}
|
|
|
|
</>
|
|
|
|
)
|
|
|
|
}
|
|
|
|
|
|
|
|
export default Avatar
|