Spaces:
Build error
Build error
'use client' | |
import { useState } from 'react' | |
import cn from '@/utils/classnames' | |
type AvatarProps = { | |
name: string | |
avatar?: string | |
size?: number | |
className?: string | |
textClassName?: string | |
} | |
const Avatar = ({ | |
name, | |
avatar, | |
size = 30, | |
className, | |
textClassName, | |
}: AvatarProps) => { | |
const avatarClassName = 'shrink-0 flex items-center rounded-full bg-primary-600' | |
const style = { width: `${size}px`, height: `${size}px`, fontSize: `${size}px`, lineHeight: `${size}px` } | |
const [imgError, setImgError] = useState(false) | |
const handleError = () => { | |
setImgError(true) | |
} | |
if (avatar && !imgError) { | |
return ( | |
<img | |
className={cn(avatarClassName, className)} | |
style={style} | |
alt={name} | |
src={avatar} | |
onError={handleError} | |
/> | |
) | |
} | |
return ( | |
<div | |
className={cn(avatarClassName, className)} | |
style={style} | |
> | |
<div | |
className={cn(textClassName, 'text-center text-white scale-[0.4]')} | |
style={style} | |
> | |
{name[0].toLocaleUpperCase()} | |
</div> | |
</div> | |
) | |
} | |
export default Avatar | |