annotate GeoQuiz/Components/LinkHelper.swift @ 10:a793f33f05fb

refactor code and fix layout
author Dennis C. M. <dennis@denniscm.com>
date Sat, 08 Oct 2022 21:36:40 +0200
parents GeoQuiz/Helpers/LinkComponent.swift@3540c7efc216
children f140bb277c96
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 //
10
a793f33f05fb refactor code and fix layout
Dennis C. M. <dennis@denniscm.com>
parents: 9
diff changeset
2 // LinkHelper.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
3540c7efc216 implement UserSettings
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
10 struct LinkComponent: View {
3540c7efc216 implement UserSettings
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
11 var color: Color
3540c7efc216 implement UserSettings
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
12 var iconName: String
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) {
3540c7efc216 implement UserSettings
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
21 Image(systemName: iconName)
3540c7efc216 implement UserSettings
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
22 .imageScale(.large)
3540c7efc216 implement UserSettings
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
23 .foregroundColor(color)
3540c7efc216 implement UserSettings
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
24
3540c7efc216 implement UserSettings
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
25 Text(text)
3540c7efc216 implement UserSettings
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
26 .foregroundColor(.primary)
3540c7efc216 implement UserSettings
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
27 }
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 }
3540c7efc216 implement UserSettings
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
30 }
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 struct LinkComponent_Previews: PreviewProvider {
3540c7efc216 implement UserSettings
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
33 static var previews: some View {
3540c7efc216 implement UserSettings
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
34 LinkComponent(
3540c7efc216 implement UserSettings
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
35 color: .mayaBlue,
3540c7efc216 implement UserSettings
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
36 iconName: "info.circle.fill",
3540c7efc216 implement UserSettings
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
37 text: "About",
3540c7efc216 implement UserSettings
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
38 url: URL(string: "https://dennistech.io")!
3540c7efc216 implement UserSettings
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
39 )
3540c7efc216 implement UserSettings
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
40 }
3540c7efc216 implement UserSettings
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
41 }