import UIKit class HomeAccountDetailView: UIView { private let accountDetailView: UIView = { let view = UIView(frame: .zero) view.backgroundColor = .themeWhite view.translatesAutoresizingMaskIntoConstraints = false return view }() private let accountNumberTitleLabel: UILabel = { let label = UILabel() label.translatesAutoresizingMaskIntoConstraints = false return label }() private let accountNumberValueLabel: UILabel = { let label = UILabel() label.translatesAutoresizingMaskIntoConstraints = false return label }() private let balanceTitleLabel: UILabel = { let label = UILabel() label.translatesAutoresizingMaskIntoConstraints = false return label }() private var balanceValueLabel: UILabel = { let label = UILabel() label.translatesAutoresizingMaskIntoConstraints = false return label }() private let copyButton: UIButton = { let button = UIButton() button.translatesAutoresizingMaskIntoConstraints = false return button }() private let uploadSlipButton: UIButton = { let button = UIButton() button.translatesAutoresizingMaskIntoConstraints = false return button }() private let exchangeRateView: UIView = { let view = UIView() view.translatesAutoresizingMaskIntoConstraints = false return view }() override init(frame: CGRect) { super.init(frame: .zero) setup() } // override func awakeFromNib() { // super.awakeFromNib() // setup() // } required init?(coder: NSCoder) { super.init(coder: coder) fatalError("init(coder:) has not been implemented") } func setup() { uiSetup() uiPropertiesSetup() } private func uiSetup() { self.addSubview(accountDetailView) accountDetailView.anchor(top: self.topAnchor, paddingTop: 0, bottom: self.bottomAnchor, paddingBottom: 0, left: self.leadingAnchor, paddingLeft: 0, right: self.trailingAnchor, paddingRight: 0, width: 0, height: 0) accountDetailView.addSubviews(accountNumberTitleLabel, accountNumberValueLabel, balanceTitleLabel, balanceValueLabel, copyButton, uploadSlipButton) accountDetailView.addShadow() accountNumberTitleLabel.anchor(top: accountDetailView.topAnchor, paddingTop: 16, bottom: nil, paddingBottom: 0, left: accountDetailView.leadingAnchor, paddingLeft: 16, right: accountDetailView.trailingAnchor, paddingRight: -16) accountNumberValueLabel.anchor(top: accountNumberTitleLabel.bottomAnchor, paddingTop: 4, bottom: nil, paddingBottom: 0, left: accountDetailView.leadingAnchor, paddingLeft: 16 ) copyButton.anchor(top: nil, bottom: nil, left: accountNumberValueLabel.trailingAnchor, paddingLeft: 4, width: 80, height: 80 ) copyButton.center(centerX: nil, paddingX: 0, centerY: accountNumberValueLabel.centerYAnchor, paddingY: 0) copyButton.anchorLessThanEqualTo(right: accountDetailView.trailingAnchor, paddingRight: -16) balanceTitleLabel.anchor(top: accountNumberValueLabel.bottomAnchor, paddingTop: 16, left: accountDetailView.leadingAnchor, paddingLeft: 16) balanceValueLabel.anchor(top: balanceTitleLabel.bottomAnchor, paddingTop: 4, bottom: accountDetailView.bottomAnchor, paddingBottom: -16, left: accountDetailView.leadingAnchor, paddingLeft: 16) uploadSlipButton.anchor(top: balanceTitleLabel.topAnchor, bottom: balanceValueLabel.bottomAnchor, right: accountDetailView.trailingAnchor, paddingRight: -16 ) } func uiPropertiesSetup() { accountDetailView.setupCornerRadius(20,maskedCorners: [.layerMinXMaxYCorner, .layerMaxXMaxYCorner]) accountNumberTitleLabel.text = "account_number_text".localized() copyButton.setTitle("Copy", for: .normal) copyButton.setTitleColor(.red, for: .normal) balanceTitleLabel.text = "domestic_available_balance_text".localized() balanceValueLabel.text = "6482682342" uploadSlipButton.backgroundColor = .red uploadSlipButton.set(cornerRadius: 5) uploadSlipButton.setImage(UIImage(named: "chat"), for: .normal) uploadSlipButton.setTitle("Upload", for: .normal) uploadSlipButton.setTitleColor(.green, for: .normal) uploadSlipButton.contentEdgeInsets = UIEdgeInsets(top: 10, left: 10, bottom: 10, right: 20) } func setupData() { let availableBalance = GMEDB.shared.user.string(.availableBalance) balanceValueLabel.text = availableBalance let walletNumber = GMEDB.shared.user.string(.referralCode) ?? "" accountNumberValueLabel.text = walletNumber == "" ? "N/A" : walletNumber } func setAmount(_ amount: String) { balanceValueLabel.text = amount } }