// // ThemePicker.swift // Feels (iOS) // // Created by Trey Tartt on 4/2/22. // import SwiftUI struct ThemePickerView: View { @AppStorage(UserDefaultsStore.Keys.theme.rawValue, store: GroupUserDefaults.groupDefaults) private var theme: Theme = .system @AppStorage(UserDefaultsStore.Keys.textColor.rawValue, store: GroupUserDefaults.groupDefaults) private var textColor: Color = DefaultTextColor.textColor var body: some View { ZStack { theme.currentTheme.secondaryBGColor VStack { HStack { Spacer() ForEach(Theme.allCases, id:\.rawValue) { aTheme in Button(action: { textColor = aTheme.currentTheme.labelColor theme = aTheme EventLogger.log(event: "change_theme_id", withData: ["id": aTheme.rawValue]) }, label: { VStack { aTheme.currentTheme.preview .overlay( Circle() .stroke(Color(UIColor.systemGray), style: StrokeStyle(lineWidth: 2)) ) Text(aTheme.title) .foregroundColor(textColor) .font(.body) } }) .contentShape(Rectangle()) .background( RoundedRectangle(cornerRadius: 10, style: .continuous) .fill(theme == aTheme ? theme.currentTheme.bgColor : .clear) .padding(-5) ) Spacer() } } .padding(.top) } .padding() } .fixedSize(horizontal: false, vertical: true) .cornerRadius(Constants.viewsCornerRaidus, corners: [.topLeft, .topRight, .bottomLeft, .bottomRight]) } } struct ThemePickerView_Previews: PreviewProvider { static var previews: some View { ThemePickerView() } }