// // OverallStatiscticView.swift // Lockdown // // Created by Aliaksandr Dvoineu on 18.04.23. // Copyright © 2023 Confirmed Inc. All rights reserved. // import UIKit struct OverallStatiscticViewModel { let enabled: Int let disabled: Int let requests: Int let blocked: Int } final class BoxLabelView: UIView { // MARK: - Properties lazy var boxView: UIView = { let view = UIView() view.layer.cornerRadius = 4 view.layer.borderColor = UIColor.lightGray.cgColor view.layer.borderWidth = 1 view.anchors.height.equal(85) return view }() lazy var numberLabel: UILabel = { let label = UILabel() label.textColor = .label label.font = fontBold24 label.textAlignment = .center return label }() lazy var boxTitle: UILabel = { let label = UILabel() label.textColor = .label label.font = fontRegular14 label.textAlignment = .center return label }() private lazy var stackView: UIStackView = { let stackView = UIStackView() stackView.addArrangedSubview(boxView) stackView.addArrangedSubview(boxTitle) stackView.axis = .vertical stackView.distribution = .fillProportionally stackView.spacing = 8 return stackView }() // MARK: - Initializer override init(frame: CGRect) { super.init(frame: frame) configureUI() } @available(*, unavailable) required init?(coder: NSCoder) { fatalError("init(coder:) has not been implemented") } // MARK: - Functions private func configureUI() { addSubview(stackView) stackView.anchors.edges.pin() boxView.addSubview(numberLabel) numberLabel.anchors.centerX.align() numberLabel.anchors.centerY.align() } } final class OverallStatiscticView: UIView { // MARK: - Properties lazy var enabledBoxView: BoxLabelView = { let box = BoxLabelView() box.numberLabel.text = "7" box.boxTitle.text = "Enabled" return box }() lazy var disabledBoxView: BoxLabelView = { let box = BoxLabelView() box.numberLabel.text = "3" box.boxTitle.text = "Disabled" return box }() lazy var blockedBoxView: BoxLabelView = { let box = BoxLabelView() box.numberLabel.text = "0.2K" box.boxTitle.text = "Blocked" return box }() private lazy var stackView: UIStackView = { let stackView = UIStackView() stackView.addArrangedSubview(enabledBoxView) stackView.addArrangedSubview(disabledBoxView) stackView.addArrangedSubview(blockedBoxView) stackView.axis = .horizontal stackView.distribution = .fillEqually stackView.alignment = .center stackView.spacing = 8 return stackView }() // MARK: - Initializer override init(frame: CGRect) { super.init(frame: frame) configureUI() } @available(*, unavailable) required init?(coder: NSCoder) { fatalError("init(coder:) has not been implemented") } // MARK: - Functions private func configureUI() { addSubview(stackView) stackView.anchors.top.marginsPin() stackView.anchors.bottom.marginsPin() stackView.anchors.leading.pin() stackView.anchors.trailing.pin() } func configure(with model: OverallStatiscticViewModel) { } }