comparison LazyBear/Views/Company/Helpers/InsiderList.swift @ 412:a7c9dd0c5822

Main insider view implemented
author Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
date Tue, 08 Jun 2021 11:46:58 +0200
parents 681fb377235e
children 2984d8946342
comparison
equal deleted inserted replaced
411:681fb377235e 412:a7c9dd0c5822
7 7
8 import SwiftUI 8 import SwiftUI
9 9
10 struct InsiderList: View { 10 struct InsiderList: View {
11 var insiderSummary: [InsiderRosterModel] 11 var insiderSummary: [InsiderRosterModel]
12 var numberOfRows: Int
13
14 @State private var showFullList = false 12 @State private var showFullList = false
15 13
16 var body: some View { 14 var body: some View {
17 VStack(alignment: .leading) { 15 VStack(alignment: .leading) {
18 HStack { 16 HStack {
25 } 23 }
26 24
27 // Get total shares owned by the top 10 insiders 25 // Get total shares owned by the top 10 insiders
28 let totalPositions = insiderSummary.map { $0.position }.reduce(0, +) 26 let totalPositions = insiderSummary.map { $0.position }.reduce(0, +)
29 VStack(alignment: .leading, spacing: 20) { 27 VStack(alignment: .leading, spacing: 20) {
30 ForEach(insiderSummary.prefix(numberOfRows), id: \.self) { insider in 28 ForEach(insiderSummary.prefix(3), id: \.self) { insider in
31 29
32 // Compute percentage of ownership for each insider 30 // Compute percentage of ownership for each insider
33 let percentage = Double(insider.position) / Double(totalPositions) 31 let percentage = Double(insider.position) / Double(totalPositions)
34 32
35 InsiderRow(percentageOfWidth: CGFloat(percentage), insiderRoster: insider) 33 InsiderRow(percentageOfWidth: CGFloat(percentage), insiderRoster: insider)
43 } 41 }
44 42
45 struct InsiderList_Previews: PreviewProvider { 43 struct InsiderList_Previews: PreviewProvider {
46 static var previews: some View { 44 static var previews: some View {
47 InsiderList(insiderSummary: 45 InsiderList(insiderSummary:
48 [InsiderRosterModel(entityName: "Dennis Concepcion", position: 1234, reportDate: 1234567)], 46 [InsiderRosterModel(entityName: "Dennis Concepcion", position: 1234, reportDate: 1234567)]
49 numberOfRows: 3) 47 )
50 } 48 }
51 } 49 }
52 50
53 struct InsiderFullList: View { 51 struct InsiderFullList: View {
54 var insiderSummary: [InsiderRosterModel] 52 var insiderSummary: [InsiderRosterModel]