# HG changeset patch # User Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com> # Date 1614369620 0 # Node ID e15980164e2d159830275ed43898106b7361e0d1 # Parent 62828b2352f42c8ea41bcb82baea6d3ed35bf97f Update settings diff -r 62828b2352f4 -r e15980164e2d LazyBear/UI/Settings.swift --- a/LazyBear/UI/Settings.swift Fri Feb 26 20:00:00 2021 +0000 +++ b/LazyBear/UI/Settings.swift Fri Feb 26 20:00:20 2021 +0000 @@ -9,37 +9,28 @@ import CoreData struct Settings: View { - @Environment(\.managedObjectContext) private var moc - @State var theme = "" - + @FetchRequest(entity: UserSettings.entity(), + sortDescriptors: [NSSortDescriptor(keyPath: \UserSettings.changedAt, ascending: false)]) + var userSettings: FetchedResults + var body: some View { NavigationView { Form { - Picker("Themes", selection: $theme) { - ForEach(themes, id: \.name) { theme in - Text(theme.name) - .tag(theme.name) - } + let theme = userSettings.first?.theme ?? "Default" + let language = userSettings.first?.newsLanguage ?? "en" + ThemePicker(theme: theme) + NewsLanguagePicker(language: language) + + Section { + SettingRow(image: "at", text: "About", colour: .systemBlue) + SettingRow(image: "bag.fill", text: "Tip jar", colour: .systemGreen) + SettingRow(image: "suit.heart.fill", text: "Rate Lazybear", colour: .systemRed) + } - .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) - } - } }