import React, { useEffect, useState } from 'react'; import Dialog from '@mui/material/Dialog'; import { createTheme, ThemeProvider } from '@mui/material/styles'; const darkTheme = createTheme({ palette: { mode: 'dark' } }); const DIALOG_SX = { '& .MuiDialog-paper': { background: '#07090d', backgroundImage: ` linear-gradient(rgba(35, 111, 135, 0.08) 1px, transparent 1px), linear-gradient(90deg, rgba(35, 111, 135, 0.08) 1px, transparent 1px) `, backgroundSize: '46px 46px', border: '1px solid rgba(35, 111, 135, 0.4)', borderRadius: '12px', boxShadow: '0 0 80px rgba(35, 111, 135, 0.15), 0 32px 80px rgba(0,0,0,0.9)', width: '580px', maxWidth: '94vw', overflow: 'hidden', color: '#fff', }, '& .MuiBackdrop-root': { background: 'rgba(2, 4, 8, 0.88)', backdropFilter: 'blur(4px)', }, }; const RESULT_META = { win: { label: 'Victory', color: '#5ee89a', bg: 'rgba(42,158,96,0.15)', border: 'rgba(42,158,96,0.4)', icon: 'fa-trophy', }, loss: { label: 'Defeated', color: '#f67d52', bg: 'rgba(173,10,5,0.15)', border: 'rgba(173,10,5,0.4)', icon: 'fa-flag', }, draw: { label: 'Draw', color: '#95cff5', bg: 'rgba(149,207,245,0.1)', border: 'rgba(149,207,245,0.3)', icon: 'fa-minus', }, }; function Avatar({ name, color, avatarUrl }) { const isRed = 'red' === color; const initials = (name || '?').slice(0, 2).toUpperCase(); const gradient = isRed ? 'linear-gradient(135deg, rgba(173,10,5,0.6) 0%, rgba(246,125,82,0.4) 100%)' : 'linear-gradient(135deg, rgba(35,111,135,0.6) 0%, rgba(41,128,185,0.4) 100%)'; const glow = isRed ? '0 0 0 3px rgba(173,10,5,0.2), 0 0 28px rgba(173,10,5,0.35)' : '0 0 0 3px rgba(35,111,135,0.2), 0 0 28px rgba(35,111,135,0.35)'; const border = isRed ? 'rgba(173,10,5,0.5)' : 'rgba(35,111,135,0.5)'; const textColor = isRed ? '#f67d52' : '#95cff5'; return (