Mercurial > public > simoleon
annotate Simoleon/Helpers/CurrencyRow.swift @ 154:8afba86ab8dd
Refactor code
author | Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com> |
---|---|
date | Wed, 25 Aug 2021 10:43:12 +0100 |
parents | 2584fd74235a |
children |
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 { |
75
b6f8661300f2
Added isLocked to CurrencyPairs
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
62
diff
changeset
|
11 var currencyPairName: String |
77
1069c33d3a42
Added new method to show unlocked content
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
75
diff
changeset
|
12 var isLocked: Bool? |
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 HStack { |
152
2584fd74235a
Add new currencies
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
150
diff
changeset
|
16 let currencyDetails: [String: CurrencyDetailsModel] = try! read(json: "CurrencyDetails.json") |
75
b6f8661300f2
Added isLocked to CurrencyPairs
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
62
diff
changeset
|
17 let currencies = currencyPairName.split(separator: "/") |
152
2584fd74235a
Add new currencies
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
150
diff
changeset
|
18 Image(currencyDetails[String(currencies[0])]!.flag) |
16
aec2e86e5dbd
Change design and icon
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
15
diff
changeset
|
19 .resizable() |
aec2e86e5dbd
Change design and icon
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
15
diff
changeset
|
20 .aspectRatio(contentMode: .fill) |
aec2e86e5dbd
Change design and icon
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
15
diff
changeset
|
21 .frame(width: 30, height: 30) |
aec2e86e5dbd
Change design and icon
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
15
diff
changeset
|
22 .clipShape(Circle()) |
95
04feeb708833
Minor UI updates
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
77
diff
changeset
|
23 .overlay(Circle().stroke(Color(.secondaryLabel), lineWidth: 1)) |
16
aec2e86e5dbd
Change design and icon
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
15
diff
changeset
|
24 |
152
2584fd74235a
Add new currencies
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents:
150
diff
changeset
|
25 Image(currencyDetails[String(currencies[1])]!.flag) |
21
c3dda63f50ed
Added Core Data and UI changes
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
19
diff
changeset
|
26 .resizable() |
c3dda63f50ed
Added Core Data and UI changes
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
19
diff
changeset
|
27 .aspectRatio(contentMode: .fill) |
c3dda63f50ed
Added Core Data and UI changes
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
19
diff
changeset
|
28 .frame(width: 30, height: 30) |
c3dda63f50ed
Added Core Data and UI changes
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
19
diff
changeset
|
29 .clipShape(Circle()) |
95
04feeb708833
Minor UI updates
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
77
diff
changeset
|
30 .overlay(Circle().stroke(Color(.secondaryLabel), lineWidth: 1)) |
21
c3dda63f50ed
Added Core Data and UI changes
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
19
diff
changeset
|
31 .offset(x: -20) |
c3dda63f50ed
Added Core Data and UI changes
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
19
diff
changeset
|
32 .padding(.trailing, -20) |
c3dda63f50ed
Added Core Data and UI changes
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
19
diff
changeset
|
33 |
62
c7b6249ab745
uncomment localized texts
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
50
diff
changeset
|
34 Text("From \(String(currencies[0])) to \(String(currencies[1]))") |
21
c3dda63f50ed
Added Core Data and UI changes
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
19
diff
changeset
|
35 .fontWeight(.semibold) |
c3dda63f50ed
Added Core Data and UI changes
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
19
diff
changeset
|
36 .foregroundColor(Color("PlainButton")) |
c3dda63f50ed
Added Core Data and UI changes
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
19
diff
changeset
|
37 .padding(.leading) |
c3dda63f50ed
Added Core Data and UI changes
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
19
diff
changeset
|
38 |
c3dda63f50ed
Added Core Data and UI changes
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
19
diff
changeset
|
39 Spacer() |
77
1069c33d3a42
Added new method to show unlocked content
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
75
diff
changeset
|
40 |
1069c33d3a42
Added new method to show unlocked content
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
75
diff
changeset
|
41 if isLocked ?? false { |
1069c33d3a42
Added new method to show unlocked content
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
75
diff
changeset
|
42 Image(systemName: "lock") |
95
04feeb708833
Minor UI updates
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
77
diff
changeset
|
43 .foregroundColor(.secondary) |
77
1069c33d3a42
Added new method to show unlocked content
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
75
diff
changeset
|
44 } |
13
cdc5f728b105
Minor UI updates
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
11
diff
changeset
|
45 } |
cdc5f728b105
Minor UI updates
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
11
diff
changeset
|
46 } |
11
a62e5e4a4f02
Implementing networking
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
10
diff
changeset
|
47 } |
6
3d6f56b0d4ed
Implementing first UI layout
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
48 |
3d6f56b0d4ed
Implementing first UI layout
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
49 struct CurrencyRow_Previews: PreviewProvider { |
3d6f56b0d4ed
Implementing first UI layout
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
50 static var previews: some View { |
95
04feeb708833
Minor UI updates
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
77
diff
changeset
|
51 CurrencyRow(currencyPairName: "USD/GBP", isLocked: true) |
6
3d6f56b0d4ed
Implementing first UI layout
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
52 } |
3d6f56b0d4ed
Implementing first UI layout
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
53 } |