Mercurial > public > simoleon
annotate Simoleon/Helpers/CurrencyRow.swift @ 29:c52966834f83
Add localised strings
author | Dennis Concepción Martín <dennisconcepcionmartin@gmail.com> |
---|---|
date | Thu, 22 Jul 2021 22:30:54 +0100 |
parents | c3dda63f50ed |
children | 7a6a7c677851 |
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 { |
21
c3dda63f50ed
Added Core Data and UI changes
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
19
diff
changeset
|
11 var currencyPair: String |
16
aec2e86e5dbd
Change design and icon
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
15
diff
changeset
|
12 let currencyMetadata: [String: CurrencyMetadataModel] = parseJson("CurrencyMetadata.json") |
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 { |
21
c3dda63f50ed
Added Core Data and UI changes
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
19
diff
changeset
|
16 let currencies = currencyPair.split(separator: "/") |
c3dda63f50ed
Added Core Data and UI changes
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
19
diff
changeset
|
17 Image(currencyMetadata[String(currencies[0])]!.flag) |
16
aec2e86e5dbd
Change design and icon
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
15
diff
changeset
|
18 .resizable() |
aec2e86e5dbd
Change design and icon
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
15
diff
changeset
|
19 .aspectRatio(contentMode: .fill) |
aec2e86e5dbd
Change design and icon
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
15
diff
changeset
|
20 .frame(width: 30, height: 30) |
aec2e86e5dbd
Change design and icon
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
15
diff
changeset
|
21 .clipShape(Circle()) |
aec2e86e5dbd
Change design and icon
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
15
diff
changeset
|
22 .overlay(Circle().stroke(Color(.systemGray), lineWidth: 1)) |
aec2e86e5dbd
Change design and icon
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
15
diff
changeset
|
23 |
21
c3dda63f50ed
Added Core Data and UI changes
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
19
diff
changeset
|
24 Image(currencyMetadata[String(currencies[1])]!.flag) |
c3dda63f50ed
Added Core Data and UI changes
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
19
diff
changeset
|
25 .resizable() |
c3dda63f50ed
Added Core Data and UI changes
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
19
diff
changeset
|
26 .aspectRatio(contentMode: .fill) |
c3dda63f50ed
Added Core Data and UI changes
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
19
diff
changeset
|
27 .frame(width: 30, height: 30) |
c3dda63f50ed
Added Core Data and UI changes
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
19
diff
changeset
|
28 .clipShape(Circle()) |
c3dda63f50ed
Added Core Data and UI changes
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
19
diff
changeset
|
29 .overlay(Circle().stroke(Color(.systemGray), lineWidth: 1)) |
c3dda63f50ed
Added Core Data and UI changes
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
19
diff
changeset
|
30 .offset(x: -20) |
c3dda63f50ed
Added Core Data and UI changes
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
19
diff
changeset
|
31 .padding(.trailing, -20) |
c3dda63f50ed
Added Core Data and UI changes
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
19
diff
changeset
|
32 |
29
c52966834f83
Add localised strings
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
21
diff
changeset
|
33 Text("From \(String(currencies[0])) to \(String(currencies[1]))", comment: "Conversion from one currency to another") |
21
c3dda63f50ed
Added Core Data and UI changes
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
19
diff
changeset
|
34 .fontWeight(.semibold) |
c3dda63f50ed
Added Core Data and UI changes
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
19
diff
changeset
|
35 .foregroundColor(Color("PlainButton")) |
c3dda63f50ed
Added Core Data and UI changes
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
19
diff
changeset
|
36 .padding(.leading) |
c3dda63f50ed
Added Core Data and UI changes
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
19
diff
changeset
|
37 |
c3dda63f50ed
Added Core Data and UI changes
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
19
diff
changeset
|
38 Spacer() |
13
cdc5f728b105
Minor UI updates
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
11
diff
changeset
|
39 } |
cdc5f728b105
Minor UI updates
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
11
diff
changeset
|
40 } |
11
a62e5e4a4f02
Implementing networking
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
10
diff
changeset
|
41 } |
6
3d6f56b0d4ed
Implementing first UI layout
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
42 |
3d6f56b0d4ed
Implementing first UI layout
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
43 struct CurrencyRow_Previews: PreviewProvider { |
3d6f56b0d4ed
Implementing first UI layout
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
44 static var previews: some View { |
21
c3dda63f50ed
Added Core Data and UI changes
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
19
diff
changeset
|
45 CurrencyRow(currencyPair: "USD/GBP") |
6
3d6f56b0d4ed
Implementing first UI layout
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
46 } |
3d6f56b0d4ed
Implementing first UI layout
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
47 } |