Mercurial > public > lazybear
view LazyBear/UI/NewsLanguagePicker.swift @ 201:5c7a662c2d4e
Add languages settings
author | Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com> |
---|---|
date | Fri, 26 Feb 2021 20:01:03 +0000 |
parents | |
children | dac0c8a7d92d |
line wrap: on
line source
// // NewsLanguagePicker.swift // LazyBear // // Created by Dennis Concepción Martín on 26/2/21. // import SwiftUI struct NewsLanguagePicker: View { @Environment(\.managedObjectContext) private var moc @State var language: String var body: some View { Picker("News language", selection: $language) { ForEach(newsLanguages, id: \.self) { language in Text("\(language.flag) \(language.name)") .tag(language.code) } } .onChange(of: language, perform: { language in save(change: language) }) } private func save(change: Any) { let userSettings = UserSettings(context: moc) userSettings.changedAt = Date() userSettings.newsLanguage = change as? String do { try moc.save() print("Settings saved") } catch { print(error.localizedDescription) } } } struct NewsLanguagePicker_Previews: PreviewProvider { static var previews: some View { NewsLanguagePicker(language: "en") } }