view LazyBear/UI/TranDetail.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
children
line wrap: on
line source

//
//  TranDetail.swift
//  LazyBear
//
//  Created by Dennis Concepción Martín on 7/3/21.
//

import SwiftUI

struct TranDetail: View {
    var transaction: InsiderTranModel
    
    var body: some View {
        NavigationView {
            Form {
                Section(header: Text("Insider information")) {
                    HStack {
                        Image(systemName: "person.fill")
                        Text(transaction.fullName?.capitalized ?? "-")
                    }
                    
                    if let postShares = transaction.postShares {
                        HStack {
                            Image(systemName: "number")
                            Text("\(postShares) shares owned")
                        }
                    }
                }
                
                Section(header: Text("Transaction information")) {
                    HStack {
                        Image(systemName: "calendar")
                        Text(transaction.transactionDate ?? "-")
                    }
                    
                    let direcIndirect = transaction.directIndirect ?? "-"
                    if direcIndirect == "D" {
                        Text("Direct transaction")
                    } else if direcIndirect == "I" {
                        Text("Indirect transaction")
                    }
                    
                    if let tranPrice = transaction.transactionPrice {
                        Text(String(format: "Price per share: $%.2f", tranPrice))
                    }
                    
                    if let tranShares = transaction.transactionShares {
                        Text("Shares transacted: \(tranShares)")
                    }
                    
                    if let tranValue = transaction.transactionValue {
                        Text(String(format: "Transaction value: $%.2f", tranValue))
                    }
                }
                
                if let tranType = transactionCodes[transaction.transactionCode ?? "-"] {
                    Section(header: Text("Transaction type")) {
                        Text(tranType)
                    }
                }
            }
            .navigationTitle("Transaction detail")
        }
    }
}

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