annotate Simoleon/Helpers/CurrencyRow.swift @ 17:4a81e39186f1 v1.0

Minor UI changes
author Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
date Thu, 15 Jul 2021 20:24:13 +0100
parents aec2e86e5dbd
children 94fd7ac93060
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
6
3d6f56b0d4ed Implementing first UI layout
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
1 //
3d6f56b0d4ed Implementing first UI layout
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
2 // CurrencyRow.swift
3d6f56b0d4ed Implementing first UI layout
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
3 // Simoleon
3d6f56b0d4ed Implementing first UI layout
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
4 //
16
aec2e86e5dbd Change design and icon
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 15
diff changeset
5 // Created by Dennis Concepción Martín on 15/07/2021.
6
3d6f56b0d4ed Implementing first UI layout
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
6 //
3d6f56b0d4ed Implementing first UI layout
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
7
3d6f56b0d4ed Implementing first UI layout
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
8 import SwiftUI
3d6f56b0d4ed Implementing first UI layout
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
9
3d6f56b0d4ed Implementing first UI layout
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
10 struct CurrencyRow: View {
16
aec2e86e5dbd Change design and icon
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 15
diff changeset
11 let currencyMetadata: [String: CurrencyMetadataModel] = parseJson("CurrencyMetadata.json")
aec2e86e5dbd Change design and icon
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 15
diff changeset
12 var currency: String
6
3d6f56b0d4ed Implementing first UI layout
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
13
3d6f56b0d4ed Implementing first UI layout
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
14 var body: some View {
16
aec2e86e5dbd Change design and icon
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 15
diff changeset
15 let currencies = currency.components(separatedBy: "/")
aec2e86e5dbd Change design and icon
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 15
diff changeset
16 let mainCurrency = String(currencies[0])
aec2e86e5dbd Change design and icon
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 15
diff changeset
17 let secondaryCurrency = String(currencies[1])
aec2e86e5dbd Change design and icon
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 15
diff changeset
18 HStack {
aec2e86e5dbd Change design and icon
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 15
diff changeset
19 Image(currencyMetadata[mainCurrency]!.flag)
aec2e86e5dbd Change design and icon
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 15
diff changeset
20 .resizable()
aec2e86e5dbd Change design and icon
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 15
diff changeset
21 .aspectRatio(contentMode: .fill)
aec2e86e5dbd Change design and icon
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 15
diff changeset
22 .frame(width: 30, height: 30)
aec2e86e5dbd Change design and icon
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 15
diff changeset
23 .clipShape(Circle())
aec2e86e5dbd Change design and icon
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 15
diff changeset
24 .overlay(Circle().stroke(Color(.systemGray), lineWidth: 1))
aec2e86e5dbd Change design and icon
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 15
diff changeset
25
aec2e86e5dbd Change design and icon
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 15
diff changeset
26 Image(currencyMetadata[secondaryCurrency]!.flag)
aec2e86e5dbd Change design and icon
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 15
diff changeset
27 .resizable()
aec2e86e5dbd Change design and icon
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 15
diff changeset
28 .aspectRatio(contentMode: .fill)
aec2e86e5dbd Change design and icon
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 15
diff changeset
29 .frame(width: 30, height: 30)
aec2e86e5dbd Change design and icon
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 15
diff changeset
30 .clipShape(Circle())
aec2e86e5dbd Change design and icon
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 15
diff changeset
31 .overlay(Circle().stroke(Color(.systemGray), lineWidth: 1))
aec2e86e5dbd Change design and icon
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 15
diff changeset
32 .offset(x: -20)
aec2e86e5dbd Change design and icon
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 15
diff changeset
33 .padding(.trailing, -20)
aec2e86e5dbd Change design and icon
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 15
diff changeset
34
aec2e86e5dbd Change design and icon
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 15
diff changeset
35 VStack(alignment: .leading) {
aec2e86e5dbd Change design and icon
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 15
diff changeset
36 Text("\(currency)")
aec2e86e5dbd Change design and icon
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 15
diff changeset
37 .fontWeight(.semibold)
aec2e86e5dbd Change design and icon
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 15
diff changeset
38
aec2e86e5dbd Change design and icon
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 15
diff changeset
39 Text("\(currencyMetadata[mainCurrency]!.name)/\(currencyMetadata[secondaryCurrency]!.name)")
aec2e86e5dbd Change design and icon
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 15
diff changeset
40 .font(.footnote)
aec2e86e5dbd Change design and icon
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 15
diff changeset
41 .fontWeight(.semibold)
aec2e86e5dbd Change design and icon
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 15
diff changeset
42 .opacity(0.5)
aec2e86e5dbd Change design and icon
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 15
diff changeset
43 .lineLimit(1)
aec2e86e5dbd Change design and icon
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 15
diff changeset
44 }
15
a02f463aa906 Testing three column ipad navigation
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 14
diff changeset
45 .padding(.horizontal)
13
cdc5f728b105 Minor UI updates
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 11
diff changeset
46 }
17
4a81e39186f1 Minor UI changes
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 16
diff changeset
47 .padding(.vertical, 7)
13
cdc5f728b105 Minor UI updates
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 11
diff changeset
48 }
11
a62e5e4a4f02 Implementing networking
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 10
diff changeset
49 }
6
3d6f56b0d4ed Implementing first UI layout
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
50
3d6f56b0d4ed Implementing first UI layout
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
51 struct CurrencyRow_Previews: PreviewProvider {
3d6f56b0d4ed Implementing first UI layout
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
52 static var previews: some View {
16
aec2e86e5dbd Change design and icon
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 15
diff changeset
53 CurrencyRow(currency: "USD/GBP")
6
3d6f56b0d4ed Implementing first UI layout
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
54 }
3d6f56b0d4ed Implementing first UI layout
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
55 }