fediversion/frontend/components/ui/user-avatar.tsx
fullsizemalt b4cddf41ea feat: Initialize Fediversion multi-band platform
- Fork elmeg-demo codebase for multi-band support
- Add data importer infrastructure with base class
- Create band-specific importers:
  - phish.py: Phish.net API v5
  - grateful_dead.py: Grateful Stats API
  - setlistfm.py: Dead & Company, Billy Strings (Setlist.fm)
- Add spec-kit configuration for Gemini
- Update README with supported bands and architecture
2025-12-28 12:39:28 -08:00

42 lines
949 B
TypeScript

"use client"
import { cn } from "@/lib/utils"
interface UserAvatarProps {
bgColor?: string
text?: string
username?: string
size?: "sm" | "md" | "lg" | "xl"
className?: string
}
const sizeClasses = {
sm: "h-8 w-8 text-xs",
md: "h-10 w-10 text-sm",
lg: "h-16 w-16 text-xl",
xl: "h-32 w-32 text-4xl",
}
export function UserAvatar({
bgColor = "#3B82F6",
text,
username = "",
size = "md",
className
}: UserAvatarProps) {
// If no custom text, use first letter of username
const displayText = text || username.charAt(0).toUpperCase() || "?"
return (
<div
className={cn(
"rounded-full flex items-center justify-center font-bold text-white shadow-md select-none",
sizeClasses[size],
className
)}
style={{ backgroundColor: bgColor }}
>
{displayText}
</div>
)
}