import SwiftUI
import PhotosUI

struct ContentView: View {
   @State private var selected: PhotosPickerItem?
   @State private var picture: UIImage?

   var body: some View {
      VStack {
         PhotosPicker(selection: $selected, matching: .images, photoLibrary: .shared()) { Text("Select a photo") }
            .buttonStyle(.borderedProminent)
         Image(uiImage: picture ?? UIImage(named: "nopicture")!)
            .resizable()
            .scaledToFit()
         Spacer()
      }.padding()
      .onChange(of: selected, initial: false) { old, item in
         Task {
            if let data = try? await item?.loadTransferable(type: Data.self) {
               picture = UIImage(data: data)
            }
         }
      }
   }
}