view LazyBear/UI/NewsLanguagePicker.swift @ 233:108fe992c703

Fix bugs
author Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
date Tue, 02 Mar 2021 18:46:04 +0000
parents dac0c8a7d92d
children
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: \.code) { 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")
    }
}