Guest User

Untitled

a guest
Dec 10th, 2022
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Swift 1.54 KB | Source Code | 0 0
  1. import SwiftUI
  2.  
  3.  
  4. struct ContentView: View {
  5.     @State private var users = [User]()
  6.    
  7.     var body: some View {
  8.         NavigationView() {
  9.             List(users) { user in
  10.                 NavigationLink {
  11.                     UserView(user: user)
  12.                 } label: {
  13.                     HStack {
  14.                         Circle()
  15.                             .fill(user.isActive ? .green : .red)
  16.                             .frame(width: 30)
  17.                         VStack(alignment: .leading) {
  18.                             Text(user.name)
  19.                                 .font(.title3)
  20.                             Text(user.email)
  21.                                 .font(.caption2)
  22.                         }
  23.                     }
  24.                 }
  25.             }
  26.             .navigationTitle("FriendFace")
  27.             .task {
  28.                 await fetchUsers()
  29.             }
  30.         }
  31.     }
  32.    
  33.     func fetchUsers() async {
  34.         guard users.isEmpty else { return }
  35.        
  36.         do {
  37.             let url = URL(string: "https://www.hackingwithswift.com/samples/friendface.json")!
  38.             let (data, _) = try await URLSession.shared.data(from: url)
  39.            
  40.             let decoder = JSONDecoder()
  41.             decoder.dateDecodingStrategy = .iso8601
  42.             users = try decoder.decode([User].self, from: data)
  43.         } catch {
  44.             print("Download failed")
  45.         }
  46.     }
  47. }
  48.  
  49. struct ContentView_Previews: PreviewProvider {
  50.     static var previews: some View {
  51.         ContentView()
  52.     }
  53. }
  54.  
Add Comment
Please, Sign In to add comment