// // AddMoodHeaderView.swift // Feels // // Created by Trey Tartt on 1/5/22. // import Foundation import SwiftUI import CoreData struct AddMoodHeaderView: View { @AppStorage(UserDefaultsStore.Keys.theme.rawValue, store: GroupUserDefaults.groupDefaults) private var theme: Theme = .system @AppStorage(UserDefaultsStore.Keys.moodTint.rawValue, store: GroupUserDefaults.groupDefaults) private var moodTint: MoodTints = .Default @AppStorage(UserDefaultsStore.Keys.textColor.rawValue, store: GroupUserDefaults.groupDefaults) private var textColor: Color = DefaultTextColor.textColor @State var onboardingData = OnboardingDataDataManager.shared.savedOnboardingData let addItemHeaderClosure: ((Mood, Date) -> Void) init(addItemHeaderClosure: @escaping ((Mood, Date) -> Void)) { self.addItemHeaderClosure = addItemHeaderClosure } var body: some View { ZStack { theme.currentTheme.secondaryBGColor VStack { Text(ShowBasedOnVoteLogics.getVotingTitle(onboardingData: onboardingData)) .font(.title) .foregroundColor(textColor) .padding() HStack{ ForEach(Mood.allValues) { mood in VStack { Button(action: { addItem(withMood: mood) }, label: { mood.icon .resizable() .frame(width: CGFloat(50), height: CGFloat(50), alignment: .center) .foregroundColor(moodTint.color(forMood: mood)) }) //Text(mood.strValue) }.frame(minWidth: 0, maxWidth: .infinity) } } } .padding([.leading, .trailing, .bottom]) } .background( theme.currentTheme.secondaryBGColor ) .cornerRadius(Constants.viewsCornerRaidus, corners: [.topLeft, .topRight, .bottomLeft, .bottomRight]) .frame(minHeight: 88, maxHeight: 150) .frame(minWidth: 0, maxWidth: .infinity) } private func addItem(withMood mood: Mood) { let date = ShowBasedOnVoteLogics.getCurrentVotingDate(onboardingData: onboardingData) addItemHeaderClosure(mood, date) } } struct AddMoodHeaderView_Previews: PreviewProvider { static var previews: some View { Group { AddMoodHeaderView(addItemHeaderClosure: { (_,_) in }).environment(\.managedObjectContext, PersistenceController.shared.viewContext) AddMoodHeaderView(addItemHeaderClosure: { (_,_) in }).preferredColorScheme(.dark).environment(\.managedObjectContext, PersistenceController.shared.viewContext) AddMoodHeaderView(addItemHeaderClosure: { (_,_) in }).environment(\.managedObjectContext, PersistenceController.shared.viewContext) AddMoodHeaderView(addItemHeaderClosure: { (_,_) in }).preferredColorScheme(.dark).environment(\.managedObjectContext, PersistenceController.shared.viewContext) } } }