index.tsx 876 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. 'use client'
  2. import cn from 'classnames'
  3. interface IAvatarProps {
  4. name: string
  5. avatar?: string
  6. size?: number
  7. className?: string
  8. }
  9. const Avatar = ({
  10. name,
  11. avatar,
  12. size = 30,
  13. className
  14. }: IAvatarProps) => {
  15. const avatarClassName = `shrink-0 flex items-center rounded-full bg-primary-600`
  16. const style = { width: `${size}px`, height:`${size}px`, fontSize: `${size}px`, lineHeight: `${size}px` }
  17. if (avatar) {
  18. return (
  19. <img
  20. className={cn(avatarClassName, className)}
  21. style={style}
  22. alt={name}
  23. src={avatar}
  24. />
  25. )
  26. }
  27. return (
  28. <div
  29. className={cn(avatarClassName, className)}
  30. style={style}
  31. >
  32. <div
  33. className={`text-center text-white scale-[0.4]`}
  34. style={style}
  35. >
  36. {name[0].toLocaleUpperCase()}
  37. </div>
  38. </div>
  39. )
  40. }
  41. export default Avatar