import SwiftUI struct GalleryView: View { // @EnvironmentObject var attachments: AttachmentsStore @Binding var selectedItems: [String] var body: some View { Text("dumb") // Group { // if attachments.galleryAccessGranted { // ForEach(attachments.galleryItems) { item in // GridViewItem(item: item, selected: $selectedItems) // } // } else { // Button { // openAppSettings() // } label: { // ZStack { // Rectangle() // .fill(Color.Material.Background.light) // .overlay { // VStack { // Image(systemName: "photo") // .foregroundColor(.Material.Elements.active) // .font(.system(size: 30)) // Text("Allow gallery access") // .foregroundColor(.Material.Text.main) // .font(.body3) // } // } // .frame(height: 100) // } // } // } // } // .task { // await attachments.checkGalleryAuthorization() // } } } private struct GridViewItem: View { // @State var item: GalleryItem // @Binding var selected: [String] var body: some View { Text("dumb") // if let img = item.thumbnail { // ZStack { // img // .resizable() // .aspectRatio(contentMode: .fill) // .frame(width: Const.galleryGridSize, height: Const.galleryGridSize) // .clipped() // if let duration = item.duration { // VStack { // Spacer() // HStack { // Spacer() // Text(duration) // .foregroundColor(.Material.Text.white) // .font(.sub1) // .shadow(color: .black, radius: 2) // .padding(4) // } // } // } // if isSelected { // VStack { // HStack { // Spacer() // Circle() // .frame(width: 30, height: 30) // .shadow(color: .black, radius: 2) // .foregroundColor(.Material.Shape.white) // .overlay { // Image(systemName: "checkmark") // .foregroundColor(.Material.Elements.active) // .font(.body3) // } // .padding(4) // } // Spacer() // } // } // } // .onTapGesture { // if isSelected { // selected.removeAll { $0 == item.id } // } else { // selected.append(item.id) // } // } // } else { // ZStack { // Rectangle() // .fill(Color.Material.Background.light) // .overlay { // ProgressView() // .foregroundColor(.Material.Elements.active) // } // .frame(width: Const.galleryGridSize, height: Const.galleryGridSize) // } // .task { // if item.thumbnail == nil { // try? await item.fetchThumbnail() // } // } // } } private var isSelected: Bool { false // selected.contains(item.id) } }