Mercurial > public > lazybear
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] |