Mercurial > public > geoquiz
view GeoQuiz/SettingsModalView.swift @ 14:136928bae534
add user profile
author | Dennis C. M. <dennis@denniscm.com> |
---|---|
date | Wed, 19 Oct 2022 07:56:33 +0200 |
parents | a793f33f05fb |
children | f140bb277c96 |
line wrap: on
line source
// // SettingsModalView.swift // GeoQuiz // // Created by Dennis Concepción Martín on 22/9/22. // import SwiftUI struct SettingsModalView: View { @ObservedObject var user: User @Environment(\.dismiss) var dismiss var lives: [Int] { var lives = [Int]() for i in stride(from: 5, to: 55, by: 5) { lives.append(i) } return lives } var body: some View { NavigationView { Form { Section { Picker("❤️ Lives", selection: $user.data.numberOfLives) { ForEach(lives, id: \.self) { numberOfLives in Text("\(numberOfLives)") .tag(numberOfLives) } } } header: { Text("Game") } footer: { Text("Number of lives at the beginning of each game.") } Section { Toggle("Haptics", isOn: $user.data.haptics) Toggle("Sound effects", isOn: $user.data.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(user: User()) } }