Files
MLBApp/mlbTVOS/Views/Components/TeamLogoView.swift
2026-03-26 15:37:31 -05:00

39 lines
1.0 KiB
Swift

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)
}
}
}