Mercurial > public > lazybear
diff LazyBear/Views/Company/Helpers/TransactionList.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 | 5f21f7c23c5e |
line wrap: on
line diff
--- a/LazyBear/Views/Company/Helpers/TransactionList.swift Mon Jun 07 20:59:52 2021 +0200 +++ b/LazyBear/Views/Company/Helpers/TransactionList.swift Tue Jun 08 11:46:58 2021 +0200 @@ -8,13 +8,74 @@ import SwiftUI struct TransactionList: View { + var transactions: [InsiderTransactionModel] + @State private var showFullList = false + var body: some View { - Text(/*@START_MENU_TOKEN@*/"Hello, World!"/*@END_MENU_TOKEN@*/) + VStack(alignment: .leading) { + HStack { + Text("Latest transactions") + .font(.title3) + .fontWeight(.semibold) + + Spacer() + Button("See all", action: { showFullList = true }) + } + + VStack(alignment: .leading, spacing: 20) { + ForEach(transactions.prefix(3), id: \.self) { transaction in + TransactionRow(transaction: transaction) + } + } + } + .sheet(isPresented: $showFullList) { + TransactionFullList(transactions: transactions) + } } } struct TransactionList_Previews: PreviewProvider { static var previews: some View { - TransactionList() + TransactionList(transactions: + [ + InsiderTransactionModel(filingDate: "2020-01-01", + fullName: "Dennis Concepcion", + postShares: 1234, + reportedTitle: "Director", + transactionCode: "S", + transactionPrice: 20.08, + transactionShares: 12345, + transactionValue: 1234567.0 + ) + ] + ) } } + +struct TransactionFullList: View { + var transactions: [InsiderTransactionModel] + @Environment(\.presentationMode) private var presentationTransactionFullList + + var body: some View { + NavigationView { + ScrollView { + VStack(alignment: .leading, spacing: 20) { + ForEach(transactions, id: \.self) { transaction in + TransactionRow(transaction: transaction) + } + } + .padding() + } + .navigationTitle("Latest transactions") + .navigationBarTitleDisplayMode(.inline) + .toolbar { + ToolbarItem(placement: .navigationBarLeading) { + Button(action: { presentationTransactionFullList.wrappedValue.dismiss() }) { + Image(systemName: "multiply") + .imageScale(.large) + } + } + } + } + } +}