annotate LazyBear/Views/Global Helpers/StockRow.swift @ 421:9b7af8e83d12

Change intraday prices model
author Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
date Sat, 12 Jun 2021 15:20:04 +0200
parents 5f21f7c23c5e
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 {
346
80bfa88c6b0f Implementing Prop API
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 345
diff changeset
12 var listName: String
375
f3cb5bdea8e5 Update Codable requests in HomeView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 357
diff changeset
13 var list: [String: QuoteModel]
421
9b7af8e83d12 Change intraday prices model
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 417
diff changeset
14 var intradayPrices: [String: [Double]]?
379
a7e2c5a7b4f6 Implement onDelete in watchlists
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 375
diff changeset
15 var addOnDelete: Bool
417
5f21f7c23c5e Add comments and clean code
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 388
diff changeset
16
5f21f7c23c5e Add comments and clean code
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 388
diff changeset
17 @State private var showExtensiveList = false
343
ab909fc9ce55 Implement batch requests HomeView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
18
388
79c39987aaa4 Implementing Watchlists in ProfileView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 379
diff changeset
19 @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
20
343
ab909fc9ce55 Implement batch requests HomeView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
21 var body: some View {
ab909fc9ce55 Implement batch requests HomeView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
22 VStack(alignment: .leading) {
349
5ccceb527178 Implementing new internal API
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 346
diff changeset
23 HStack(alignment: .bottom) {
5ccceb527178 Implementing new internal API
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 346
diff changeset
24 VStack(alignment: .leading) {
375
f3cb5bdea8e5 Update Codable requests in HomeView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 357
diff changeset
25 Text(listName)
349
5ccceb527178 Implementing new internal API
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 346
diff changeset
26 .font(.title3)
5ccceb527178 Implementing new internal API
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 346
diff changeset
27 .fontWeight(.semibold)
5ccceb527178 Implementing new internal API
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 346
diff changeset
28 .padding([.top, .horizontal])
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 Text("Real-time quotes")
5ccceb527178 Implementing new internal API
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 346
diff changeset
31 .font(.caption)
5ccceb527178 Implementing new internal API
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 346
diff changeset
32 .opacity(0.5)
5ccceb527178 Implementing new internal API
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 346
diff changeset
33 .padding(.horizontal)
5ccceb527178 Implementing new internal API
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 346
diff changeset
34 }
5ccceb527178 Implementing new internal API
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 346
diff changeset
35
5ccceb527178 Implementing new internal API
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 346
diff changeset
36 Spacer()
5ccceb527178 Implementing new internal API
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 346
diff changeset
37 Button("See all", action: { self.showExtensiveList = true })
5ccceb527178 Implementing new internal API
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 346
diff changeset
38 .buttonStyle(BorderlessButtonStyle())
5ccceb527178 Implementing new internal API
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 346
diff changeset
39 .padding(.horizontal)
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) {
375
f3cb5bdea8e5 Update Codable requests in HomeView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 357
diff changeset
44 ForEach(Array(list.keys.sorted()), id: \.self) { companySymbol in
f3cb5bdea8e5 Update Codable requests in HomeView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 357
diff changeset
45 StockItem(symbol: companySymbol, company: list[companySymbol]!, intradayPrices: intradayPrices?[companySymbol], orientation: .vertical)
343
ab909fc9ce55 Implement batch requests HomeView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
46 }
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 .padding()
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 .frame(height: 250)
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 .padding(.bottom)
349
5ccceb527178 Implementing new internal API
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 346
diff changeset
53 .sheet(isPresented: $showExtensiveList) {
379
a7e2c5a7b4f6 Implement onDelete in watchlists
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 375
diff changeset
54 ExtensiveList(listName: listName, list: list, intradayPrices: intradayPrices, latestCurrencies: nil, addOnDelete: addOnDelete)
388
79c39987aaa4 Implementing Watchlists in ProfileView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 379
diff changeset
55 .environment(\.managedObjectContext, self.moc)
79c39987aaa4 Implementing Watchlists in ProfileView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 379
diff changeset
56
349
5ccceb527178 Implementing new internal API
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 346
diff changeset
57 }
346
80bfa88c6b0f Implementing Prop API
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 345
diff changeset
58 }
343
ab909fc9ce55 Implement batch requests HomeView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
59 }
ab909fc9ce55 Implement batch requests HomeView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
60
ab909fc9ce55 Implement batch requests HomeView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents:
diff changeset
61
345
fde2b30c719e Implementing Networking in ProfileView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 343
diff changeset
62 struct StockRectangleRow_Previews: PreviewProvider {
fde2b30c719e Implementing Networking in ProfileView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 343
diff changeset
63 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
64 StockRow(
375
f3cb5bdea8e5 Update Codable requests in HomeView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 357
diff changeset
65 listName: "Gainers",
f3cb5bdea8e5 Update Codable requests in HomeView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 357
diff changeset
66 list: ["AAPL": QuoteModel(changePercent: 0.03, companyName: "Apple Inc", latestPrice: 130.3)],
421
9b7af8e83d12 Change intraday prices model
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 417
diff changeset
67 intradayPrices: ["AAPL": [130.2]], addOnDelete: false
346
80bfa88c6b0f Implementing Prop API
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 345
diff changeset
68 )
345
fde2b30c719e Implementing Networking in ProfileView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 343
diff changeset
69 }
fde2b30c719e Implementing Networking in ProfileView
Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
parents: 343
diff changeset
70 }