Mercurial > public > simoleon
annotate Simoleon/Helpers/CurrencyRow.swift @ 6:3d6f56b0d4ed
Implementing first UI layout
author | Dennis Concepción Martín <dennisconcepcionmartin@gmail.com> |
---|---|
date | Sun, 11 Jul 2021 18:03:56 +0100 |
parents | |
children | ed35ef4738b9 |
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 // |
3d6f56b0d4ed
Implementing first UI layout
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
5 // Created by Dennis Concepción Martín on 11/07/2021. |
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 { |
3d6f56b0d4ed
Implementing first UI layout
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
11 var currencyQuote: CurrencyQuoteModel |
3d6f56b0d4ed
Implementing first UI layout
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
12 let currencies: [String: CurrencyModel] = parseJson("Currencies.json") |
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 { |
3d6f56b0d4ed
Implementing first UI layout
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
15 VStack { |
3d6f56b0d4ed
Implementing first UI layout
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
16 RoundedRectangle(cornerRadius: 10) |
3d6f56b0d4ed
Implementing first UI layout
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
17 .rectangleModifier(Color("Bone"), 100) |
3d6f56b0d4ed
Implementing first UI layout
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
18 |
3d6f56b0d4ed
Implementing first UI layout
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
19 RoundedRectangle(cornerRadius: 10) |
3d6f56b0d4ed
Implementing first UI layout
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
20 .rectangleModifier(Color(.systemBackground), 100) |
3d6f56b0d4ed
Implementing first UI layout
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
21 .overlay( |
3d6f56b0d4ed
Implementing first UI layout
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
22 HStack { |
3d6f56b0d4ed
Implementing first UI layout
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
23 let symbols = currencyQuote.symbol.split(separator: "/") |
3d6f56b0d4ed
Implementing first UI layout
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
24 let mainCurrencyFlag = currencies[String(symbols[0])]!.flag |
3d6f56b0d4ed
Implementing first UI layout
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
25 let SecondaryCurrencyFlag = currencies[String(symbols[1])]!.flag |
3d6f56b0d4ed
Implementing first UI layout
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
26 |
3d6f56b0d4ed
Implementing first UI layout
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
27 SmallFlagsPair(mainCurrencyFlag: mainCurrencyFlag, secondaryCurrencyFlag: SecondaryCurrencyFlag) |
3d6f56b0d4ed
Implementing first UI layout
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
28 |
3d6f56b0d4ed
Implementing first UI layout
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
29 VStack(alignment: .leading) { |
3d6f56b0d4ed
Implementing first UI layout
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
30 Text("\(String(symbols[0]))") |
3d6f56b0d4ed
Implementing first UI layout
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
31 .fontWeight(.semibold) |
3d6f56b0d4ed
Implementing first UI layout
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
32 |
3d6f56b0d4ed
Implementing first UI layout
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
33 Text("\(String(symbols[1]))") |
3d6f56b0d4ed
Implementing first UI layout
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
34 .fontWeight(.semibold) |
3d6f56b0d4ed
Implementing first UI layout
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
35 } |
3d6f56b0d4ed
Implementing first UI layout
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
36 .padding(.horizontal) |
3d6f56b0d4ed
Implementing first UI layout
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
37 |
3d6f56b0d4ed
Implementing first UI layout
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
38 VStack(alignment: .leading) { |
3d6f56b0d4ed
Implementing first UI layout
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
39 Text("Bid") |
3d6f56b0d4ed
Implementing first UI layout
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
40 Text("\(currencyQuote.bid, specifier: "%.4f")") |
3d6f56b0d4ed
Implementing first UI layout
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
41 .fontWeight(.semibold) |
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 } |
3d6f56b0d4ed
Implementing first UI layout
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
44 .padding(.trailing) |
3d6f56b0d4ed
Implementing first UI layout
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
45 |
3d6f56b0d4ed
Implementing first UI layout
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
46 VStack(alignment: .leading) { |
3d6f56b0d4ed
Implementing first UI layout
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
47 Text("Ask") |
3d6f56b0d4ed
Implementing first UI layout
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
48 Text("\(currencyQuote.ask, specifier: "%.4f")") |
3d6f56b0d4ed
Implementing first UI layout
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
49 .fontWeight(.semibold) |
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 } |
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 ) |
3d6f56b0d4ed
Implementing first UI layout
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
54 .offset(x: -10.0, y: -120.0) |
3d6f56b0d4ed
Implementing first UI layout
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
55 .padding(.bottom, -120) |
3d6f56b0d4ed
Implementing first UI layout
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
56 } |
3d6f56b0d4ed
Implementing first UI layout
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
57 .padding(.leading, 10) |
3d6f56b0d4ed
Implementing first UI layout
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
58 .padding(.horizontal) |
3d6f56b0d4ed
Implementing first UI layout
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
59 } |
3d6f56b0d4ed
Implementing first UI layout
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
60 } |
3d6f56b0d4ed
Implementing first UI layout
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
61 |
3d6f56b0d4ed
Implementing first UI layout
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
62 struct CurrencyRow_Previews: PreviewProvider { |
3d6f56b0d4ed
Implementing first UI layout
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
63 static var previews: some View { |
3d6f56b0d4ed
Implementing first UI layout
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
64 let currencyQuote: CurrencyQuoteModel = parseJson("CurrencyQuoteData.json") |
3d6f56b0d4ed
Implementing first UI layout
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
65 |
3d6f56b0d4ed
Implementing first UI layout
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
66 CurrencyRow(currencyQuote: currencyQuote) |
3d6f56b0d4ed
Implementing first UI layout
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
67 } |
3d6f56b0d4ed
Implementing first UI layout
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff
changeset
|
68 } |