view LazyBear/UI/TransRow.swift @ 244:724916624385

Implement Insider View
author Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
date Sun, 07 Mar 2021 11:25:42 +0100
parents 46b503fcb0f9
children 14f2f6ea69f8
line wrap: on
line source

//
//  InsiderRow.swift
//  LazyBear
//
//  Created by Dennis Concepción Martín on 5/3/21.
//

import SwiftUI

struct TransRow: View {
    var transaction: InsiderTranModel
    @State private var showingDetail = false
    
    var body: some View {
        Button(action: { self.showingDetail = true }) {
            HStack(alignment: .top) {
                VStack(alignment: .leading) {
                    Text(transaction.fullName?.capitalized ?? "-")
                        .fontWeight(.semibold)
                    
                    if let date = transaction.transactionDate {
                        Text(date)
                    }
                }
                
                Spacer()
                if let shares = transaction.transactionShares ?? 0 {
                    Text("\(shares)")
                        .foregroundColor(shares < 0 ? Color(.systemRed): Color(.systemGreen))
                        .fontWeight(.semibold)
                }
            }
        }
        .buttonStyle(PlainButtonStyle())
        .sheet(isPresented: $showingDetail) {
            TranDetail(transaction: transaction)
        }
    }
}

struct TransRow_Previews: PreviewProvider {
    static var previews: some View {
        TransRow(transaction: InsiderTranModel(directIndirect: "D", transactionDate: "2020-02-04", fullName: "WAGNER SUSAN", postShares: 886126, transactionCode: "M", transactionPrice: 13.20, transactionShares: 12345, transactionValue: 123456.50))
    }
}