Mercurial > public > lazybear
annotate LazyBear/Views/Home/Helpers/StockRow.swift @ 428:8c58ce834d95
Bug fixes and change assets
author | Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com> |
---|---|
date | Fri, 18 Jun 2021 12:43:17 +0200 |
parents | 4effac4733b0 |
children | 3ca32ff79630 |
rev | line source |
---|---|
343
ab909fc9ce55
Implement batch requests HomeView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
1 // |
357
eb97439e46cd
Implement ExtensiveList in HomeView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
349
diff
changeset
|
2 // StockRow.swift |
343
ab909fc9ce55
Implement batch requests HomeView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
3 // LazyBear |
ab909fc9ce55
Implement batch requests HomeView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
4 // |
ab909fc9ce55
Implement batch requests HomeView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
5 // Created by Dennis Concepción Martín on 28/3/21. |
ab909fc9ce55
Implement batch requests HomeView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
6 // |
ab909fc9ce55
Implement batch requests HomeView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
7 |
ab909fc9ce55
Implement batch requests HomeView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
8 import SwiftUI |
ab909fc9ce55
Implement batch requests HomeView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
9 |
ab909fc9ce55
Implement batch requests HomeView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
10 |
357
eb97439e46cd
Implement ExtensiveList in HomeView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
349
diff
changeset
|
11 struct StockRow: View { |
425
4effac4733b0
Changing keys from API responses
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
424
diff
changeset
|
12 var listName: String |
4effac4733b0
Changing keys from API responses
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
424
diff
changeset
|
13 var companies: [CompanyModel] |
4effac4733b0
Changing keys from API responses
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
424
diff
changeset
|
14 var showWatchlistSheet: Bool? |
417
5f21f7c23c5e
Add comments and clean code
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
388
diff
changeset
|
15 |
424
6dd97877f575
Improve code, reorganize files
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
421
diff
changeset
|
16 @State private var showList = false |
425
4effac4733b0
Changing keys from API responses
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
424
diff
changeset
|
17 @Environment(\.managedObjectContext) private var moc |
349
5ccceb527178
Implementing new internal API
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
346
diff
changeset
|
18 |
343
ab909fc9ce55
Implement batch requests HomeView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
19 var body: some View { |
ab909fc9ce55
Implement batch requests HomeView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
20 VStack(alignment: .leading) { |
349
5ccceb527178
Implementing new internal API
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
346
diff
changeset
|
21 HStack(alignment: .bottom) { |
5ccceb527178
Implementing new internal API
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
346
diff
changeset
|
22 VStack(alignment: .leading) { |
424
6dd97877f575
Improve code, reorganize files
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
421
diff
changeset
|
23 Text(adaptListTitle(listName)) |
349
5ccceb527178
Implementing new internal API
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
346
diff
changeset
|
24 .font(.title3) |
5ccceb527178
Implementing new internal API
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
346
diff
changeset
|
25 .fontWeight(.semibold) |
5ccceb527178
Implementing new internal API
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
346
diff
changeset
|
26 .padding([.top, .horizontal]) |
5ccceb527178
Implementing new internal API
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
346
diff
changeset
|
27 |
5ccceb527178
Implementing new internal API
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
346
diff
changeset
|
28 Text("Real-time quotes") |
5ccceb527178
Implementing new internal API
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
346
diff
changeset
|
29 .font(.caption) |
5ccceb527178
Implementing new internal API
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
346
diff
changeset
|
30 .opacity(0.5) |
5ccceb527178
Implementing new internal API
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
346
diff
changeset
|
31 .padding(.horizontal) |
5ccceb527178
Implementing new internal API
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
346
diff
changeset
|
32 } |
5ccceb527178
Implementing new internal API
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
346
diff
changeset
|
33 |
5ccceb527178
Implementing new internal API
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
346
diff
changeset
|
34 Spacer() |
424
6dd97877f575
Improve code, reorganize files
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
421
diff
changeset
|
35 Button("See all", action: { showList = true }) |
349
5ccceb527178
Implementing new internal API
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
346
diff
changeset
|
36 .buttonStyle(BorderlessButtonStyle()) |
5ccceb527178
Implementing new internal API
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
346
diff
changeset
|
37 .padding(.horizontal) |
5ccceb527178
Implementing new internal API
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
346
diff
changeset
|
38 } |
343
ab909fc9ce55
Implement batch requests HomeView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
39 |
ab909fc9ce55
Implement batch requests HomeView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
40 ScrollView(.horizontal, showsIndicators: false) { |
ab909fc9ce55
Implement batch requests HomeView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
41 HStack(spacing: 20) { |
425
4effac4733b0
Changing keys from API responses
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
424
diff
changeset
|
42 ForEach(companies, id: \.self) { company in |
4effac4733b0
Changing keys from API responses
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
424
diff
changeset
|
43 StockItem(company: company) |
343
ab909fc9ce55
Implement batch requests HomeView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
44 } |
ab909fc9ce55
Implement batch requests HomeView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
45 } |
ab909fc9ce55
Implement batch requests HomeView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
46 .padding() |
ab909fc9ce55
Implement batch requests HomeView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
47 } |
ab909fc9ce55
Implement batch requests HomeView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
48 .frame(height: 250) |
ab909fc9ce55
Implement batch requests HomeView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
49 } |
ab909fc9ce55
Implement batch requests HomeView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
50 .padding(.bottom) |
424
6dd97877f575
Improve code, reorganize files
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
421
diff
changeset
|
51 .sheet(isPresented: $showList) { |
425
4effac4733b0
Changing keys from API responses
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
424
diff
changeset
|
52 if showWatchlistSheet ?? false { |
428
8c58ce834d95
Bug fixes and change assets
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
425
diff
changeset
|
53 WatchlistSheet(listName: listName, apiCompanies: companies) |
425
4effac4733b0
Changing keys from API responses
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
424
diff
changeset
|
54 .environment(\.managedObjectContext, self.moc) |
4effac4733b0
Changing keys from API responses
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
424
diff
changeset
|
55 } else { |
4effac4733b0
Changing keys from API responses
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
424
diff
changeset
|
56 StockSheet(listName: adaptListTitle(listName), companies: companies) |
4effac4733b0
Changing keys from API responses
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
424
diff
changeset
|
57 } |
424
6dd97877f575
Improve code, reorganize files
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
421
diff
changeset
|
58 } |
6dd97877f575
Improve code, reorganize files
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
421
diff
changeset
|
59 } |
6dd97877f575
Improve code, reorganize files
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
421
diff
changeset
|
60 |
6dd97877f575
Improve code, reorganize files
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
421
diff
changeset
|
61 /* |
6dd97877f575
Improve code, reorganize files
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
421
diff
changeset
|
62 Get list keys (mostactive, losers, active) and adapt them to diplay |
6dd97877f575
Improve code, reorganize files
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
421
diff
changeset
|
63 */ |
6dd97877f575
Improve code, reorganize files
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
421
diff
changeset
|
64 private func adaptListTitle(_ title: String) -> String { |
6dd97877f575
Improve code, reorganize files
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
421
diff
changeset
|
65 if title == "mostactive" { |
6dd97877f575
Improve code, reorganize files
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
421
diff
changeset
|
66 return "Most active" |
6dd97877f575
Improve code, reorganize files
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
421
diff
changeset
|
67 } else { |
6dd97877f575
Improve code, reorganize files
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
421
diff
changeset
|
68 return title.capitalized |
349
5ccceb527178
Implementing new internal API
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
346
diff
changeset
|
69 } |
346
80bfa88c6b0f
Implementing Prop API
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
345
diff
changeset
|
70 } |
343
ab909fc9ce55
Implement batch requests HomeView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
71 } |
ab909fc9ce55
Implement batch requests HomeView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
72 |
ab909fc9ce55
Implement batch requests HomeView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff
changeset
|
73 |
345
fde2b30c719e
Implementing Networking in ProfileView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
343
diff
changeset
|
74 struct StockRectangleRow_Previews: PreviewProvider { |
fde2b30c719e
Implementing Networking in ProfileView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
343
diff
changeset
|
75 static var previews: some View { |
357
eb97439e46cd
Implement ExtensiveList in HomeView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
349
diff
changeset
|
76 StockRow( |
425
4effac4733b0
Changing keys from API responses
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
424
diff
changeset
|
77 listName: "mostactive", |
4effac4733b0
Changing keys from API responses
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
424
diff
changeset
|
78 companies: [CompanyModel(symbol: "aapl", companyName: "Apple Inc", latestPrice: 120.3, changePercent: 0.03, intradayPrices: [120.3])] |
346
80bfa88c6b0f
Implementing Prop API
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
345
diff
changeset
|
79 ) |
345
fde2b30c719e
Implementing Networking in ProfileView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
343
diff
changeset
|
80 } |
fde2b30c719e
Implementing Networking in ProfileView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
343
diff
changeset
|
81 } |