Mercurial > public > lazybear
view LazyBear/UI/Settings.swift @ 255:6977df9241a6
Modify NavigationViewStyle
author | Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com> |
---|---|
date | Fri, 12 Mar 2021 17:40:11 +0100 |
parents | bbb2a47fac02 |
children | cc260d53fcf8 |
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 { @FetchRequest(entity: UserSettings.entity(), sortDescriptors: [NSSortDescriptor(keyPath: \UserSettings.changedAt, ascending: false)]) var userSettings: FetchedResults<UserSettings> let setting = SettingMetadata() @Environment(\.colorScheme) var colorScheme // Detect dark mode var body: some View { NavigationView { Form { ThemePicker(theme: userSettings.first?.theme ?? "Default") LanguagePicker(language: userSettings.first?.newsLanguage ?? "en") NavigationLink(destination: IconPicker()) { Text("App icon") } Section(footer: IexAttribution(text: "Data provided by IEX Cloud").padding(.top)) { ForEach((0...3), id: \.self) { index in Link(destination: URL(string: setting.links[index])!) { HStack { SettingRow(image: setting.images[index], text: setting.texts[index], colour: setting.colours[index]) FakeLinkArrow() } } .foregroundColor(colorScheme == .dark ? .white: .black) } } } .navigationTitle("Settings 👨🏻🔧") } .navigationViewStyle(StackNavigationViewStyle()) } } struct FakeLinkArrow: View { var body: some View { Spacer() Image(systemName: "chevron.right") .font(Font.body.weight(.semibold)) .imageScale(.small) .opacity(0.2) } } class SettingMetadata { var links = ["https://lazybear.app", "https://apps.apple.com/us/app/lazybear/id1534612943", "https://github.com/DennisTechnologies/Lazybear-App/issues", "https://github.com/DennisTechnologies/Lazybear-App/discussions"] var images = ["at", "suit.heart.fill", "ladybug.fill", "message.fill"] var texts = ["About", "Rate Lazybear", "Bug tracker", "Community"] var colours: [UIColor] = [.systemBlue, .systemRed, .systemYellow, .systemTeal] } struct Settings_Previews: PreviewProvider { static var previews: some View { return Settings() } }