// // Kities.swift // comments // // Created by Георгий Сигалев on 11.03.2024. // import Foundation import SwiftUI import Alamofire import SDWebImage import SDWebImageSwiftUI struct CatResponse: Identifiable, Decodable { var id: String var url: String var width: Int var height: Int } func fetchKities() async -> CatResponse? { let result = await AF.request("https://api.thecatapi.com/v1/images/search").serializingDecodable([CatResponse].self).result var data: [CatResponse] = [] do { try data = result.get() } catch { return nil } return data[0] } struct KityView: View { @State var url: String? @Environment(\.dismiss) private var dismiss @ViewBuilder var body: some View{ VStack { if url != nil { WebImage(url: URL(string: url!)) } else { Text("Загрузка...") } }.task { guard let cat = (await fetchKities()) else { dismiss() return } self.url = cat.url } } }