import SwiftUI struct ARProjectTankImage: View { let tank: Tank @Environment(\.tankCatalog) private var catalog @State private var image: UIImage? @State private var failed = false var body: some View { Group { if let image { Image(uiImage: image).resizable().scaledToFit() } else if failed { Image(systemName: "cube.transparent").foregroundStyle(.secondary) .accessibilityLabel("Tankvorschau nicht verfügbar") } else { ProgressView().controlSize(.small) } } .task(id: tank) { image = nil failed = false await Task.yield() guard !Task.isCancelled else { return } if let definition = catalog.definition(for: tank) { image = TankThumbnailRenderer.shared.image(for: definition) } failed = image == nil } } }