Mercurial > public > lazybear
changeset 59:8a32a0e965be
Add InsidersDetailView
author | Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com> |
---|---|
date | Wed, 20 Jan 2021 13:11:11 +0100 |
parents | c9ee25555f21 |
children | 4b4fb0d84815 |
files | LazyBear.xcodeproj/project.pbxproj LazyBear.xcodeproj/project.xcworkspace/xcuserdata/dennis.xcuserdatad/UserInterfaceState.xcuserstate lazybear/Supply views/InsiderDetail.swift lazybear/Supply views/TransactionList.swift lazybear/Supply views/TransactionRow.swift |
diffstat | 5 files changed, 87 insertions(+), 15 deletions(-) [+] |
line wrap: on
line diff
--- a/LazyBear.xcodeproj/project.pbxproj Wed Jan 20 12:32:57 2021 +0100 +++ b/LazyBear.xcodeproj/project.pbxproj Wed Jan 20 13:11:11 2021 +0100 @@ -33,6 +33,7 @@ 959B940925B5F4BC00EEB802 /* LazyColumns.swift in Sources */ = {isa = PBXBuildFile; fileRef = 959B940825B5F4BC00EEB802 /* LazyColumns.swift */; }; 959B940C25B6058E00EEB802 /* StockStats.swift in Sources */ = {isa = PBXBuildFile; fileRef = 959B940B25B6058E00EEB802 /* StockStats.swift */; }; 95A06A0125B8432200866C00 /* PieChart.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95A06A0025B8432200866C00 /* PieChart.swift */; }; + 95A06A0525B84CA900866C00 /* InsiderDetail.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95A06A0425B84CA900866C00 /* InsiderDetail.swift */; }; 95A1ECAF25A36127001D4A21 /* InsiderTransaction.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95A1ECAE25A36127001D4A21 /* InsiderTransaction.swift */; }; 95A1ECB225A36230001D4A21 /* InsiderTransactionModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95A1ECB125A36230001D4A21 /* InsiderTransactionModel.swift */; }; 95A1ECC525A37541001D4A21 /* TransactionRow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95A1ECC425A37541001D4A21 /* TransactionRow.swift */; }; @@ -81,6 +82,7 @@ 959B940825B5F4BC00EEB802 /* LazyColumns.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = LazyColumns.swift; path = lazybear/Functions/LazyColumns.swift; sourceTree = SOURCE_ROOT; }; 959B940B25B6058E00EEB802 /* StockStats.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StockStats.swift; sourceTree = "<group>"; }; 95A06A0025B8432200866C00 /* PieChart.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PieChart.swift; sourceTree = "<group>"; }; + 95A06A0425B84CA900866C00 /* InsiderDetail.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InsiderDetail.swift; sourceTree = "<group>"; }; 95A1ECAE25A36127001D4A21 /* InsiderTransaction.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = InsiderTransaction.swift; path = lazybear/Functions/InsiderTransaction.swift; sourceTree = SOURCE_ROOT; }; 95A1ECB125A36230001D4A21 /* InsiderTransactionModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = InsiderTransactionModel.swift; path = lazybear/Models/InsiderTransactionModel.swift; sourceTree = SOURCE_ROOT; }; 95A1ECC425A37541001D4A21 /* TransactionRow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TransactionRow.swift; sourceTree = "<group>"; }; @@ -154,6 +156,7 @@ 950B7A0325B1E7E100E5DB5B /* TransactionList.swift */, 959B940B25B6058E00EEB802 /* StockStats.swift */, 95A06A0025B8432200866C00 /* PieChart.swift */, + 95A06A0425B84CA900866C00 /* InsiderDetail.swift */, ); name = "Supply views"; path = "lazybear/Supply views"; @@ -354,6 +357,7 @@ 954D997125A253A9001F7F60 /* Config.swift in Sources */, 95A1ECAF25A36127001D4A21 /* InsiderTransaction.swift in Sources */, 95D0012825B0C3A5007D45FD /* SizeClassView.swift in Sources */, + 95A06A0525B84CA900866C00 /* InsiderDetail.swift in Sources */, 9521A8BD259B93200000D417 /* Company.swift in Sources */, 9552A61F25B06580001CD0C8 /* SampleConfig.swift in Sources */, 954D992525A2123B001F7F60 /* HistoricalPricesModel.swift in Sources */,
Binary file LazyBear.xcodeproj/project.xcworkspace/xcuserdata/dennis.xcuserdatad/UserInterfaceState.xcuserstate has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/lazybear/Supply views/InsiderDetail.swift Wed Jan 20 13:11:11 2021 +0100 @@ -0,0 +1,55 @@ +// +// InsiderDetail.swift +// LazyBear +// +// Created by Dennis Concepción Martín on 20/1/21. +// + +import SwiftUI + +struct InsiderDetail: View { + @State var transaction: InsiderTransactionModel + + var body: some View { + NavigationView { + Form { + Section(header: Text("Owner")) { + SectionBody(image: "person.fill", data: transaction.reporting_owner) + } + + Section(header: Text("Date YYYY/MM/DD")) { + SectionBody(image: "calendar", data: transaction.transaction_date) + } + + Section(header: Text("Securities transacted")) { + SectionBody(image: "number", data: String(transaction.number_securities_transacted)) + } + + Section(header: Text("Transaction type")) { + let data = transaction.transaction_type.components(separatedBy: "-")[1] + SectionBody(image: "dollarsing.circle", data: data) + SectionBody(image: "info.circle", data: "Type: " + transaction.transaction_type) + } + + } + } + } +} + +struct SectionBody: View { + @State var image: String + @State var data: String + + var body: some View { + HStack { + Image(systemName: image) + Text(data) + } + } +} + +struct InsiderDetail_Previews: PreviewProvider { + static var previews: some View { + InsiderDetail(transaction: InsiderTransactionModel(acquisition_disposition: "A", transaction_date: "2020-01-01", reporting_owner: "steve jobs", transaction_type: "F-SomeStuff", number_securities_transacted: 12345)) + } +}
--- a/lazybear/Supply views/TransactionList.swift Wed Jan 20 12:32:57 2021 +0100 +++ b/lazybear/Supply views/TransactionList.swift Wed Jan 20 13:11:11 2021 +0100 @@ -13,7 +13,7 @@ var body: some View { List { ForEach(transaction.result, id:\.self) { trans in - TransactionRow(trans: trans) + TransactionRow(transaction: trans) } } }
--- a/lazybear/Supply views/TransactionRow.swift Wed Jan 20 12:32:57 2021 +0100 +++ b/lazybear/Supply views/TransactionRow.swift Wed Jan 20 13:11:11 2021 +0100 @@ -8,23 +8,36 @@ import SwiftUI struct TransactionRow: View { - var trans: InsiderTransactionModel + @State var transaction: InsiderTransactionModel + @State var showingDetails = false var body: some View { - VStack(alignment: .leading) { - HStack { - Image(systemName: "person.fill") - Text(trans.reporting_owner.capitalized) - Spacer() - Text(String(trans.number_securities_transacted)) - .foregroundColor(colourShares(type: trans.acquisition_disposition)) + Button(action: { self.showingDetails.toggle() }) { + VStack(alignment: .leading) { + HStack { + Image(systemName: "person.fill") + Text(transaction.reporting_owner.capitalized) + Spacer() + Text(String(transaction.number_securities_transacted)) + .foregroundColor(colourShares(type: transaction.acquisition_disposition)) + } + HStack { + Image(systemName: "calendar") + Text(transaction.transaction_date) + } } - HStack { - Image(systemName: "calendar") - Text(trans.transaction_date) - } + .padding() } - .padding() + .sheet(isPresented: $showingDetails) { + InsiderDetail(transaction: + InsiderTransactionModel( + acquisition_disposition: transaction.acquisition_disposition, + transaction_date: transaction.transaction_date, + reporting_owner: transaction.reporting_owner, + transaction_type: transaction.transaction_type, + number_securities_transacted: transaction.number_securities_transacted) + ) + } } func colourShares(type: String) -> Color { @@ -39,6 +52,6 @@ struct TransactionRow_Previews: PreviewProvider { static var previews: some View { - TransactionRow(trans: InsiderTransactionModel(acquisition_disposition: "A", transaction_date: "2020-01-01", reporting_owner: "steve jobs", transaction_type: "F-SomeStuff", number_securities_transacted: 12345)) + TransactionRow(transaction: InsiderTransactionModel(acquisition_disposition: "A", transaction_date: "2020-01-01", reporting_owner: "steve jobs", transaction_type: "F-SomeStuff", number_securities_transacted: 12345)) } }