// // ImagePickerGrid.swift // Reflect (iOS) // // Created by Trey Tartt on 3/12/22. // import SwiftUI struct ImagePickerGridView: View { @AppStorage(UserDefaultsStore.Keys.theme.rawValue, store: GroupUserDefaults.groupDefaults) private var theme: Theme = .system @Environment(\.presentationMode) var presentationMode @State var column = Array(repeating: GridItem(.flexible(), spacing: 10), count: 7) let pickedImageClosure: ((CustomWidgeImageOptions) -> Void) private var textColor: Color { theme.currentTheme.labelColor } let imageOptions = CustomWidgeImageOptions.allCases.sorted(by: { $0.rawValue < $1.rawValue }) var body: some View { VStack { ScrollView { LazyVGrid(columns: column,spacing: 10, content: { ForEach(imageOptions, id:\.self.rawValue) { item in Image(item.rawValue) .resizable() .scaledToFit() .frame(width: 40, height: 40) .foregroundColor(textColor) .accessibilityIdentifier(AccessibilityID.CustomWidget.imageOption(item.rawValue)) .onTapGesture { pickedImageClosure(item) presentationMode.wrappedValue.dismiss() } } }) } .padding() Spacer() } .background( theme.currentTheme.bg .edgesIgnoringSafeArea(.all) ) } } struct ImagePickerGridView_Previews: PreviewProvider { static var previews: some View { ImagePickerGridView(pickedImageClosure: { image in }) } }