105 lines
4 KiB
Swift
105 lines
4 KiB
Swift
|
import SwiftUI
|
||
|
|
||
|
struct GalleryView: View {
|
||
|
// @State private var selectedItems: [String] = []
|
||
|
|
||
|
var body: some View {
|
||
|
Text("test")
|
||
|
// Group {
|
||
|
// if store.state.sharingState.isGalleryAccessGranted {
|
||
|
// ForEach(store.state.sharingState.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)
|
||
|
// }
|
||
|
// }
|
||
|
// }
|
||
|
// }
|
||
|
}
|
||
|
}
|
||
|
|
||
|
private struct GridViewItem: View {
|
||
|
// let item: SharingGalleryItem
|
||
|
@Binding var selected: [String]
|
||
|
@State var isSelected = false
|
||
|
|
||
|
var body: some View {
|
||
|
Text("Test")
|
||
|
// if let data = item.thumbnail {
|
||
|
// ZStack {
|
||
|
// Image(uiImage: UIImage(data: data) ?? UIImage())
|
||
|
// .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 {
|
||
|
// isSelected.toggle()
|
||
|
// if isSelected {
|
||
|
// selected.append(item.id)
|
||
|
// } else {
|
||
|
// selected.removeAll { $0 == item.id }
|
||
|
// }
|
||
|
// }
|
||
|
// } else {
|
||
|
// ZStack {
|
||
|
// Rectangle()
|
||
|
// .fill(Color.Material.Background.light)
|
||
|
// .overlay {
|
||
|
// ProgressView()
|
||
|
// .foregroundColor(.Material.Elements.active)
|
||
|
// }
|
||
|
// .frame(width: Const.galleryGridSize, height: Const.galleryGridSize)
|
||
|
// }
|
||
|
// }
|
||
|
}
|
||
|
}
|