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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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 }