deepsite / PlayerProfile.jsx
AchyuthKolli's picture
Upload 49 files
b074e91 verified
raw
history blame
2.01 kB
import React from 'react';
import { User } from 'lucide-react';
interface Props {
position: string;
name: string;
profilePic?: string | null;
isActive?: boolean;
isCurrentUser?: boolean;
}
export const PlayerProfile: React.FC<Props> = ({ position, name, profilePic, isActive = false, isCurrentUser = false }) => {
return (
<div
className={`pointer-events-auto flex flex-col items-center gap-2 p-3 rounded-lg transition-all ${
isActive
? 'bg-amber-500/90 border-2 border-amber-300 shadow-lg shadow-amber-500/50 scale-110'
: isCurrentUser
? 'bg-blue-900/80 border-2 border-blue-500/50'
: 'bg-slate-800/80 border-2 border-slate-600/50'
}`}
>
{/* Avatar with Profile Picture */}
<div className={`w-12 h-12 rounded-full flex items-center justify-center overflow-hidden ${
isActive
? 'bg-amber-400 border-2 border-white'
: isCurrentUser
? 'bg-blue-600 border-2 border-blue-400'
: 'bg-slate-700 border-2 border-slate-500'
}`}>
{profilePic ? (
<img src={profilePic} alt={name} className="w-full h-full object-cover" />
) : (
<User className={`w-6 h-6 ${
isActive ? 'text-white' : isCurrentUser ? 'text-blue-200' : 'text-slate-300'
}`} />
)}
</div>
{/* Name */}
<div className="text-center">
<p className={`text-xs font-bold ${
isActive ? 'text-amber-100' : isCurrentUser ? 'text-blue-100' : 'text-slate-200'
}`}>
{name}
</p>
<p className={`text-[10px] ${
isActive ? 'text-amber-200' : isCurrentUser ? 'text-blue-300' : 'text-slate-400'
}`}>
{position}
</p>
</div>
{/* Active Turn Indicator */}
{isActive && (
<div className="absolute -top-2 -right-2 w-5 h-5 bg-green-500 border-2 border-white rounded-full animate-pulse" />
)}
</div>
);
};