You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

184 lines
6.6 KiB

  1. import UIKit
  2. class HomeAccountDetailView: UIView {
  3. private let accountDetailView: UIView = {
  4. let view = UIView(frame: .zero)
  5. view.backgroundColor = .themeWhite
  6. view.translatesAutoresizingMaskIntoConstraints = false
  7. return view
  8. }()
  9. private let accountNumberTitleLabel: UILabel = {
  10. let label = UILabel()
  11. label.translatesAutoresizingMaskIntoConstraints = false
  12. return label
  13. }()
  14. private let accountNumberValueLabel: UILabel = {
  15. let label = UILabel()
  16. label.translatesAutoresizingMaskIntoConstraints = false
  17. return label
  18. }()
  19. private let balanceTitleLabel: UILabel = {
  20. let label = UILabel()
  21. label.translatesAutoresizingMaskIntoConstraints = false
  22. return label
  23. }()
  24. private var balanceValueLabel: UILabel = {
  25. let label = UILabel()
  26. label.translatesAutoresizingMaskIntoConstraints = false
  27. return label
  28. }()
  29. private let copyButton: UIButton = {
  30. let button = UIButton()
  31. button.translatesAutoresizingMaskIntoConstraints = false
  32. return button
  33. }()
  34. private let uploadSlipButton: UIButton = {
  35. let button = UIButton()
  36. button.translatesAutoresizingMaskIntoConstraints = false
  37. return button
  38. }()
  39. private let exchangeRateView: UIView = {
  40. let view = UIView()
  41. view.translatesAutoresizingMaskIntoConstraints = false
  42. return view
  43. }()
  44. override init(frame: CGRect) {
  45. super.init(frame: .zero)
  46. setup()
  47. }
  48. // override func awakeFromNib() {
  49. // super.awakeFromNib()
  50. // setup()
  51. // }
  52. required init?(coder: NSCoder) {
  53. super.init(coder: coder)
  54. fatalError("init(coder:) has not been implemented")
  55. }
  56. func setup() {
  57. uiSetup()
  58. uiPropertiesSetup()
  59. }
  60. private func uiSetup() {
  61. self.addSubview(accountDetailView)
  62. accountDetailView.anchor(top: self.topAnchor,
  63. paddingTop: 0,
  64. bottom: self.bottomAnchor,
  65. paddingBottom: 0,
  66. left: self.leadingAnchor,
  67. paddingLeft: 0,
  68. right: self.trailingAnchor,
  69. paddingRight: 0,
  70. width: 0,
  71. height: 0)
  72. accountDetailView.addSubviews(accountNumberTitleLabel,
  73. accountNumberValueLabel,
  74. balanceTitleLabel,
  75. balanceValueLabel,
  76. copyButton,
  77. uploadSlipButton)
  78. accountDetailView.addShadow()
  79. accountNumberTitleLabel.anchor(top: accountDetailView.topAnchor,
  80. paddingTop: 16,
  81. bottom: nil,
  82. paddingBottom: 0,
  83. left: accountDetailView.leadingAnchor, paddingLeft: 16,
  84. right: accountDetailView.trailingAnchor, paddingRight: -16)
  85. accountNumberValueLabel.anchor(top: accountNumberTitleLabel.bottomAnchor,
  86. paddingTop: 4,
  87. bottom: nil,
  88. paddingBottom: 0,
  89. left: accountDetailView.leadingAnchor,
  90. paddingLeft: 16
  91. )
  92. copyButton.anchor(top: nil,
  93. bottom: nil,
  94. left: accountNumberValueLabel.trailingAnchor,
  95. paddingLeft: 4,
  96. width: 80,
  97. height: 80
  98. )
  99. copyButton.center(centerX: nil,
  100. paddingX: 0,
  101. centerY: accountNumberValueLabel.centerYAnchor,
  102. paddingY: 0)
  103. copyButton.anchorLessThanEqualTo(right: accountDetailView.trailingAnchor,
  104. paddingRight: -16)
  105. balanceTitleLabel.anchor(top: accountNumberValueLabel.bottomAnchor,
  106. paddingTop: 16,
  107. left: accountDetailView.leadingAnchor,
  108. paddingLeft: 16)
  109. balanceValueLabel.anchor(top: balanceTitleLabel.bottomAnchor,
  110. paddingTop: 4,
  111. bottom: accountDetailView.bottomAnchor,
  112. paddingBottom: -16,
  113. left: accountDetailView.leadingAnchor,
  114. paddingLeft: 16)
  115. uploadSlipButton.anchor(top: balanceTitleLabel.topAnchor,
  116. bottom: balanceValueLabel.bottomAnchor,
  117. right: accountDetailView.trailingAnchor,
  118. paddingRight: -16
  119. )
  120. }
  121. func uiPropertiesSetup() {
  122. accountDetailView.setupCornerRadius(20,maskedCorners: [.layerMinXMaxYCorner, .layerMaxXMaxYCorner])
  123. accountNumberTitleLabel.text = "account_number_text".localized()
  124. copyButton.setTitle("Copy", for: .normal)
  125. copyButton.setTitleColor(.red, for: .normal)
  126. balanceTitleLabel.text = "domestic_available_balance_text".localized()
  127. balanceValueLabel.text = "6482682342"
  128. uploadSlipButton.backgroundColor = .red
  129. uploadSlipButton.set(cornerRadius: 5)
  130. uploadSlipButton.setImage(UIImage(named: "chat"), for: .normal)
  131. uploadSlipButton.setTitle("Upload", for: .normal)
  132. uploadSlipButton.setTitleColor(.green, for: .normal)
  133. uploadSlipButton.contentEdgeInsets = UIEdgeInsets(top: 10,
  134. left: 10,
  135. bottom: 10,
  136. right: 20)
  137. }
  138. func setupData() {
  139. let availableBalance = GMEDB.shared.user.string(.availableBalance)
  140. balanceValueLabel.text = availableBalance
  141. let walletNumber = GMEDB.shared.user.string(.referralCode) ?? ""
  142. accountNumberValueLabel.text = walletNumber == "" ? "N/A" : walletNumber
  143. }
  144. func setAmount(_ amount: String) {
  145. balanceValueLabel.text = amount
  146. }
  147. }