annotate LazyBear/Views/Home/Helpers/StockRow.swift @ 453:37c13ebda381

Improve hierarchy and minor bugs fixed
author Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
date Sun, 27 Jun 2021 14:18:29 +0200
parents 4255f94d0767
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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]
349
5ccceb527178 Implementing new internal API
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 346
diff changeset
14
343
ab909fc9ce55 Implement batch requests HomeView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
15 var body: some View {
ab909fc9ce55 Implement batch requests HomeView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
16 VStack(alignment: .leading) {
349
5ccceb527178 Implementing new internal API
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 346
diff changeset
17 HStack(alignment: .bottom) {
5ccceb527178 Implementing new internal API
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 346
diff changeset
18 VStack(alignment: .leading) {
424
6dd97877f575 Improve code, reorganize files
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 421
diff changeset
19 Text(adaptListTitle(listName))
349
5ccceb527178 Implementing new internal API
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 346
diff changeset
20 .font(.title3)
5ccceb527178 Implementing new internal API
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 346
diff changeset
21 .fontWeight(.semibold)
5ccceb527178 Implementing new internal API
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 346
diff changeset
22 .padding([.top, .horizontal])
5ccceb527178 Implementing new internal API
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 346
diff changeset
23
5ccceb527178 Implementing new internal API
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 346
diff changeset
24 Text("Real-time quotes")
5ccceb527178 Implementing new internal API
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 346
diff changeset
25 .font(.caption)
5ccceb527178 Implementing new internal API
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 346
diff changeset
26 .opacity(0.5)
5ccceb527178 Implementing new internal API
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 346
diff changeset
27 .padding(.horizontal)
5ccceb527178 Implementing new internal API
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 346
diff changeset
28 }
5ccceb527178 Implementing new internal API
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 346
diff changeset
29
5ccceb527178 Implementing new internal API
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 346
diff changeset
30 Spacer()
453
37c13ebda381 Improve hierarchy and minor bugs fixed
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 449
diff changeset
31 NavigationLink(destination: StockSheet(listName: adaptListTitle(listName), companies: companies)
37c13ebda381 Improve hierarchy and minor bugs fixed
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 449
diff changeset
32 .navigationTitle(adaptListTitle(listName))
37c13ebda381 Improve hierarchy and minor bugs fixed
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 449
diff changeset
33 ) {
37c13ebda381 Improve hierarchy and minor bugs fixed
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 449
diff changeset
34 HStack {
37c13ebda381 Improve hierarchy and minor bugs fixed
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 449
diff changeset
35 Text("See all")
37c13ebda381 Improve hierarchy and minor bugs fixed
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 449
diff changeset
36 Image(systemName: "chevron.right")
37c13ebda381 Improve hierarchy and minor bugs fixed
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 449
diff changeset
37 }
37c13ebda381 Improve hierarchy and minor bugs fixed
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 449
diff changeset
38 }
37c13ebda381 Improve hierarchy and minor bugs fixed
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 449
diff changeset
39 .padding(.horizontal)
349
5ccceb527178 Implementing new internal API
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 346
diff changeset
40 }
343
ab909fc9ce55 Implement batch requests HomeView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
41
ab909fc9ce55 Implement batch requests HomeView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
42 ScrollView(.horizontal, showsIndicators: false) {
ab909fc9ce55 Implement batch requests HomeView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
43 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
44 ForEach(companies, id: \.self) { company in
449
4255f94d0767 Minor updates
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 443
diff changeset
45 NavigationLink(destination:CompanyView(symbol: company.symbol, name: company.companyName)
4255f94d0767 Minor updates
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 443
diff changeset
46 .navigationTitle(company.symbol.uppercased())
443
ffbb1dbab531 InsiderRosterHelper implemented
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 432
diff changeset
47 ) {
ffbb1dbab531 InsiderRosterHelper implemented
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 432
diff changeset
48 StockItem(company: company)
ffbb1dbab531 InsiderRosterHelper implemented
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 432
diff changeset
49 }
ffbb1dbab531 InsiderRosterHelper implemented
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 432
diff changeset
50 .buttonStyle(PlainButtonStyle())
343
ab909fc9ce55 Implement batch requests HomeView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
51 }
ab909fc9ce55 Implement batch requests HomeView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
52 }
ab909fc9ce55 Implement batch requests HomeView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
53 .padding()
ab909fc9ce55 Implement batch requests HomeView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
54 }
ab909fc9ce55 Implement batch requests HomeView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
55 .frame(height: 250)
ab909fc9ce55 Implement batch requests HomeView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
56 }
424
6dd97877f575 Improve code, reorganize files
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 421
diff changeset
57 }
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 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
61 */
6dd97877f575 Improve code, reorganize files
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 421
diff changeset
62 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
63 if title == "mostactive" {
6dd97877f575 Improve code, reorganize files
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 421
diff changeset
64 return "Most active"
6dd97877f575 Improve code, reorganize files
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 421
diff changeset
65 } else {
6dd97877f575 Improve code, reorganize files
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 421
diff changeset
66 return title.capitalized
349
5ccceb527178 Implementing new internal API
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 346
diff changeset
67 }
346
80bfa88c6b0f Implementing Prop API
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 345
diff changeset
68 }
343
ab909fc9ce55 Implement batch requests HomeView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
69 }
ab909fc9ce55 Implement batch requests HomeView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
70
ab909fc9ce55 Implement batch requests HomeView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
71
345
fde2b30c719e Implementing Networking in ProfileView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 343
diff changeset
72 struct StockRectangleRow_Previews: PreviewProvider {
fde2b30c719e Implementing Networking in ProfileView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 343
diff changeset
73 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
74 StockRow(
425
4effac4733b0 Changing keys from API responses
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 424
diff changeset
75 listName: "mostactive",
4effac4733b0 Changing keys from API responses
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 424
diff changeset
76 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
77 )
345
fde2b30c719e Implementing Networking in ProfileView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 343
diff changeset
78 }
fde2b30c719e Implementing Networking in ProfileView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 343
diff changeset
79 }