view LazyBear/UI/Settings.swift @ 173:c3420ae11bda

Update settings
author Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
date Sat, 20 Feb 2021 13:10:57 +0100
parents 125d268db489
children a896f0e0e625
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
        do {
            try moc.save()
            print("Core Data saved")
        } catch {
            print(error.localizedDescription)
        }
    }
}


struct Settings_Previews: PreviewProvider {
    static var previews: some View {
        return Settings()
    }
}