Mercurial > public > geoquiz
view GeoQuiz/SettingsModalView.swift @ 9:3540c7efc216
implement UserSettings
author | Dennis C. M. <dennis@denniscm.com> |
---|---|
date | Fri, 07 Oct 2022 18:50:38 +0200 |
parents | d945e52b0704 |
children | a793f33f05fb |
line wrap: on
line source
// // SettingsModalView.swift // GeoQuiz // // Created by Dennis Concepción Martín on 22/9/22. // import SwiftUI struct SettingsModalView: View { @Environment(\.dismiss) var dismiss @StateObject var user = User() var body: some View { NavigationView { Form { Section { Picker("Number of lives", selection: $user.settings.numberOfLives) { ForEach(1..<11) { numberOfLives in Text("\(numberOfLives)") .tag(numberOfLives) } } } header: { Text("Game") } Section { Toggle("Haptics", isOn: $user.settings.haptics) Toggle("Sound effects", isOn: $user.settings.sound) } header: { Text("Effects") } Section { LinkComponent( color: .mayaBlue, iconName: "info.circle.fill", text: "About", url: URL(string: "https://dennistech.io")! ) LinkComponent( color: .atomicTangerine, iconName: "ant.circle.fill", text: "Report bugs", url: URL(string: "mailto:dmartin@dennistech.io")! ) LinkComponent( color: .blueBell, iconName: "message.circle.fill", text: "Twitter", url: URL(string: "https://twitter.com/dennistech_")! ) } header: { Text("Get in touch") } } .navigationTitle("Settings") .toolbar { ToolbarItem(placement: .cancellationAction) { Button { dismiss() } label: { Label("Exit", systemImage: "multiply") } } } } } } struct SettingsModalView_Previews: PreviewProvider { static var previews: some View { SettingsModalView() } }