//
//  ImagePickerGrid.swift
//  Feels (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)
    @AppStorage(UserDefaultsStore.Keys.textColor.rawValue, store: GroupUserDefaults.groupDefaults) private var textColor: Color = DefaultTextColor.textColor
    
    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)
                            .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
            
        })
    }
}
