annotate GeoQuiz/Helpers/SettingsRow.swift @ 27:3f4b366d476d

add flag layout settings
author Dennis C. M. <dennis@denniscm.com>
date Thu, 10 Nov 2022 09:26:48 +0100
parents GeoQuiz/Helpers/FormLink.swift@425078c01194
children eb23effeede7
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
9
3540c7efc216 implement UserSettings
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
1 //
27
3f4b366d476d add flag layout settings
Dennis C. M. <dennis@denniscm.com>
parents: 26
diff changeset
2 // SettingsRow.swift
9
3540c7efc216 implement UserSettings
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
3 // GeoQuiz
3540c7efc216 implement UserSettings
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
4 //
3540c7efc216 implement UserSettings
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
5 // Created by Dennis Concepción Martín on 7/10/22.
3540c7efc216 implement UserSettings
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
6 //
3540c7efc216 implement UserSettings
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
7
3540c7efc216 implement UserSettings
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
8 import SwiftUI
3540c7efc216 implement UserSettings
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
9
27
3f4b366d476d add flag layout settings
Dennis C. M. <dennis@denniscm.com>
parents: 26
diff changeset
10 struct SettingsRow: View {
9
3540c7efc216 implement UserSettings
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
11 var color: Color
19
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents: 10
diff changeset
12 var symbol: String
9
3540c7efc216 implement UserSettings
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
13 var text: String
3540c7efc216 implement UserSettings
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
14 var url: URL
3540c7efc216 implement UserSettings
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
15
3540c7efc216 implement UserSettings
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
16 @Environment(\.openURL) var openURL
3540c7efc216 implement UserSettings
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
17
3540c7efc216 implement UserSettings
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
18 var body: some View {
3540c7efc216 implement UserSettings
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
19 Link(destination: url) {
3540c7efc216 implement UserSettings
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
20 HStack(alignment: .center, spacing: 20) {
27
3f4b366d476d add flag layout settings
Dennis C. M. <dennis@denniscm.com>
parents: 26
diff changeset
21 RoundedRectangle(cornerRadius: 5)
3f4b366d476d add flag layout settings
Dennis C. M. <dennis@denniscm.com>
parents: 26
diff changeset
22 .frame(width: 30, height: 30)
9
3540c7efc216 implement UserSettings
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
23 .foregroundColor(color)
27
3f4b366d476d add flag layout settings
Dennis C. M. <dennis@denniscm.com>
parents: 26
diff changeset
24 .overlay(
3f4b366d476d add flag layout settings
Dennis C. M. <dennis@denniscm.com>
parents: 26
diff changeset
25 Image(systemName: symbol)
3f4b366d476d add flag layout settings
Dennis C. M. <dennis@denniscm.com>
parents: 26
diff changeset
26 .foregroundColor(.white)
3f4b366d476d add flag layout settings
Dennis C. M. <dennis@denniscm.com>
parents: 26
diff changeset
27 )
9
3540c7efc216 implement UserSettings
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
28
3540c7efc216 implement UserSettings
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
29 Text(text)
3540c7efc216 implement UserSettings
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
30 .foregroundColor(.primary)
3540c7efc216 implement UserSettings
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
31 }
3540c7efc216 implement UserSettings
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
32 }
3540c7efc216 implement UserSettings
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
33 }
3540c7efc216 implement UserSettings
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
34 }
3540c7efc216 implement UserSettings
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
35
27
3f4b366d476d add flag layout settings
Dennis C. M. <dennis@denniscm.com>
parents: 26
diff changeset
36 struct SettingsRow_Previews: PreviewProvider {
9
3540c7efc216 implement UserSettings
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
37 static var previews: some View {
27
3f4b366d476d add flag layout settings
Dennis C. M. <dennis@denniscm.com>
parents: 26
diff changeset
38 SettingsRow(
9
3540c7efc216 implement UserSettings
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
39 color: .mayaBlue,
27
3f4b366d476d add flag layout settings
Dennis C. M. <dennis@denniscm.com>
parents: 26
diff changeset
40 symbol: "info",
9
3540c7efc216 implement UserSettings
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
41 text: "About",
3540c7efc216 implement UserSettings
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
42 url: URL(string: "https://dennistech.io")!
3540c7efc216 implement UserSettings
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
43 )
3540c7efc216 implement UserSettings
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
44 }
3540c7efc216 implement UserSettings
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
45 }