Mercurial > public > lazybear
view LazyBear/UI/Settings.swift @ 193:47d61727054a
Fix crash when nil UserSettings
author | Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com> |
---|---|
date | Fri, 26 Feb 2021 15:17:57 +0000 |
parents | a896f0e0e625 |
children | e15980164e2d |
line wrap: on
line source
// // Settings.swift // LazyBear // // Created by Dennis Concepción Martín on 19/2/21. // import SwiftUI import CoreData struct Settings: View { @Environment(\.managedObjectContext) private var moc @State var theme = "" var body: some View { NavigationView { Form { Picker("Themes", selection: $theme) { ForEach(themes, id: \.name) { theme in Text(theme.name) .tag(theme.name) } } .onChange(of: theme, perform: { theme in save(change: theme) }) } .navigationTitle("Settings 👨🏻🔧") } } private func save(change: Any) { let userSettings = UserSettings(context: moc) userSettings.theme = change as? String userSettings.changedAt = Date() do { try moc.save() print("Core Data saved") } catch { print(error.localizedDescription) } } } struct Settings_Previews: PreviewProvider { static var previews: some View { return Settings() } }