import SwiftUI struct TeamLogoView: View { let team: TeamInfo var size: CGFloat = 64 var body: some View { AsyncImage(url: team.logoURL) { phase in switch phase { case .success(let image): image .resizable() .aspectRatio(contentMode: .fit) case .failure: fallbackLogo default: fallbackLogo .redacted(reason: .placeholder) } } .frame(width: size, height: size) .overlay( Circle() .strokeBorder(.white.opacity(0.1), lineWidth: 1) ) } @ViewBuilder private var fallbackLogo: some View { ZStack { Circle() .fill(TeamAssets.color(for: team.code).gradient) Text(team.code.prefix(3)) .font(.system(size: size * 0.3, weight: .heavy, design: .rounded)) .foregroundStyle(.white) } } }