Mercurial > public > lazybear
view 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 source
// // TransactionList.swift // LazyBear // // Created by Dennis Concepción Martín on 7/6/21. // import SwiftUI struct TransactionList: View { var transactions: [InsiderTransactionModel] @State private var showFullList = false var body: some View { 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(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) } } } } } }