Mercurial > public > lazybear
annotate LazyBear/Views/Company/Helpers/StatsView.swift @ 415:34f9e408b861
Minor UI Updates and tests
author | Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com> |
---|---|
date | Wed, 09 Jun 2021 12:49:17 +0200 |
parents | |
children | 1662a41e2c1a |
rev | line source |
---|---|
415
34f9e408b861
Minor UI Updates and tests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
1 // |
34f9e408b861
Minor UI Updates and tests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
2 // StatsView.swift |
34f9e408b861
Minor UI Updates and tests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
3 // LazyBear |
34f9e408b861
Minor UI Updates and tests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
4 // |
34f9e408b861
Minor UI Updates and tests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
5 // Created by Dennis Concepción Martín on 9/6/21. |
34f9e408b861
Minor UI Updates and tests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
6 // |
34f9e408b861
Minor UI Updates and tests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
7 |
34f9e408b861
Minor UI Updates and tests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
8 import SwiftUI |
34f9e408b861
Minor UI Updates and tests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
9 |
34f9e408b861
Minor UI Updates and tests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
10 struct StatsView: View { |
34f9e408b861
Minor UI Updates and tests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
11 var keyStats: KeyStatsModel |
34f9e408b861
Minor UI Updates and tests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
12 @Environment(\.presentationMode) private var presentationStatsView |
34f9e408b861
Minor UI Updates and tests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
13 |
34f9e408b861
Minor UI Updates and tests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
14 var body: some View { |
34f9e408b861
Minor UI Updates and tests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
15 NavigationView { |
34f9e408b861
Minor UI Updates and tests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
16 Form { |
34f9e408b861
Minor UI Updates and tests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
17 let mirror = Mirror(reflecting: keyStats) |
34f9e408b861
Minor UI Updates and tests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
18 ForEach(Array(mirror.children), id: \.label) { child in |
34f9e408b861
Minor UI Updates and tests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
19 HStack { |
34f9e408b861
Minor UI Updates and tests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
20 let label = String(child.label!) |
34f9e408b861
Minor UI Updates and tests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
21 |
34f9e408b861
Minor UI Updates and tests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
22 Text("\(label)".capitalized) |
34f9e408b861
Minor UI Updates and tests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
23 .fontWeight(.semibold) |
34f9e408b861
Minor UI Updates and tests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
24 |
34f9e408b861
Minor UI Updates and tests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
25 // Unwrap optional value |
34f9e408b861
Minor UI Updates and tests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
26 if let doubleValue = child.value as? Double { |
34f9e408b861
Minor UI Updates and tests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
27 Text("\(doubleValue)") |
34f9e408b861
Minor UI Updates and tests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
28 } else if let intValue = child.value as? Int { |
34f9e408b861
Minor UI Updates and tests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
29 Text("\(intValue)") |
34f9e408b861
Minor UI Updates and tests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
30 } else if let stringValue = child.value as? String { |
34f9e408b861
Minor UI Updates and tests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
31 Text("\(stringValue)") |
34f9e408b861
Minor UI Updates and tests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
32 } else { |
34f9e408b861
Minor UI Updates and tests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
33 Text("NaN") |
34f9e408b861
Minor UI Updates and tests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
34 } |
34f9e408b861
Minor UI Updates and tests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
35 } |
34f9e408b861
Minor UI Updates and tests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
36 } |
34f9e408b861
Minor UI Updates and tests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
37 } |
34f9e408b861
Minor UI Updates and tests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
38 .navigationTitle("Key statistics") |
34f9e408b861
Minor UI Updates and tests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
39 .navigationBarTitleDisplayMode(.inline) |
34f9e408b861
Minor UI Updates and tests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
40 .toolbar { |
34f9e408b861
Minor UI Updates and tests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
41 ToolbarItem(placement: .navigationBarLeading) { |
34f9e408b861
Minor UI Updates and tests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
42 Button(action: { presentationStatsView.wrappedValue.dismiss() }) { |
34f9e408b861
Minor UI Updates and tests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
43 Image(systemName: "multiply") |
34f9e408b861
Minor UI Updates and tests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
44 .imageScale(.large) |
34f9e408b861
Minor UI Updates and tests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
45 } |
34f9e408b861
Minor UI Updates and tests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
46 } |
34f9e408b861
Minor UI Updates and tests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
47 } |
34f9e408b861
Minor UI Updates and tests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
48 } |
34f9e408b861
Minor UI Updates and tests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
49 } |
34f9e408b861
Minor UI Updates and tests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
50 } |
34f9e408b861
Minor UI Updates and tests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
51 |
34f9e408b861
Minor UI Updates and tests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
52 |
34f9e408b861
Minor UI Updates and tests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
53 struct StatsView_Previews: PreviewProvider { |
34f9e408b861
Minor UI Updates and tests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
54 static var previews: some View { |
34f9e408b861
Minor UI Updates and tests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
55 StatsView(keyStats: |
34f9e408b861
Minor UI Updates and tests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
56 KeyStatsModel(avg10Volume: 123, |
34f9e408b861
Minor UI Updates and tests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
57 avg30Volume: 123, |
34f9e408b861
Minor UI Updates and tests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
58 beta: 123.12, |
34f9e408b861
Minor UI Updates and tests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
59 companyName: "Apple inc", |
34f9e408b861
Minor UI Updates and tests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
60 day200MovingAvg: 123.4, |
34f9e408b861
Minor UI Updates and tests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
61 day30ChangePercent: 123.4, |
34f9e408b861
Minor UI Updates and tests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
62 day50MovingAvg: 123.4, |
34f9e408b861
Minor UI Updates and tests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
63 day5ChangePercent: 123.4, |
34f9e408b861
Minor UI Updates and tests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
64 dividendYield: 123.4, |
34f9e408b861
Minor UI Updates and tests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
65 employees: 123, |
34f9e408b861
Minor UI Updates and tests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
66 exDividendDate: "2020-01-01", |
34f9e408b861
Minor UI Updates and tests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
67 float: 123, |
34f9e408b861
Minor UI Updates and tests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
68 marketcap: 123, |
34f9e408b861
Minor UI Updates and tests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
69 maxChangePercent: 123.4, |
34f9e408b861
Minor UI Updates and tests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
70 month1ChangePercent: 123.4, |
34f9e408b861
Minor UI Updates and tests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
71 month3ChangePercent: 123.4, |
34f9e408b861
Minor UI Updates and tests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
72 month6ChangePercent: 123.4, |
34f9e408b861
Minor UI Updates and tests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
73 nextDividendDate: "2020-01-01", |
34f9e408b861
Minor UI Updates and tests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
74 nextEarningsDate: "2020-01-01", |
34f9e408b861
Minor UI Updates and tests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
75 peRatio: 123.4, |
34f9e408b861
Minor UI Updates and tests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
76 sharesOutstanding: 123, |
34f9e408b861
Minor UI Updates and tests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
77 ttmDividendRate: 123.4, |
34f9e408b861
Minor UI Updates and tests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
78 ttmEPS: 123.4, |
34f9e408b861
Minor UI Updates and tests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
79 week52Change: 123.4, |
34f9e408b861
Minor UI Updates and tests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
80 week52High: 123.4, |
34f9e408b861
Minor UI Updates and tests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
81 week52HighSplitAdjustOnly: 123.4, |
34f9e408b861
Minor UI Updates and tests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
82 week52Low: 123.4, |
34f9e408b861
Minor UI Updates and tests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
83 week52LowSplitAdjustOnly: 123.4, |
34f9e408b861
Minor UI Updates and tests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
84 year1ChangePercent: 123.4, |
34f9e408b861
Minor UI Updates and tests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
85 year2ChangePercent: 123.4, |
34f9e408b861
Minor UI Updates and tests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
86 year5ChangePercent: 123.4, |
34f9e408b861
Minor UI Updates and tests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
87 ytdChangePercent: 123.4 |
34f9e408b861
Minor UI Updates and tests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
88 ) |
34f9e408b861
Minor UI Updates and tests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
89 ) |
34f9e408b861
Minor UI Updates and tests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
90 } |
34f9e408b861
Minor UI Updates and tests
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
91 } |