| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 | '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
 |