Skip to content
Snippets Groups Projects
ChatInputReply.swift 2.25 KiB
Newer Older
Bruno Muniz's avatar
Bruno Muniz committed
import UIKit
import Shared

final class ChatInputReply: UIView {

    let nameLabel = UILabel()
    let titleLabel = UILabel()
    let abortButton = UIButton()
    let messageLabel = UILabel()

    init() {
        super.init(frame: .zero)
        setup()
    }

    required init?(coder: NSCoder) { nil }

    func setup(message: String?, sender: String?) {
        guard let message = message else {
            isHidden = true
            return
        }

        isHidden = false
        messageLabel.text = message
        nameLabel.text = sender ?? "You"
    }

    private func setup() {
        titleLabel.text = "Replying to"
        messageLabel.numberOfLines = 2
        abortButton.setImage(Asset.replyAbort.image, for: .normal)

        nameLabel.font = Fonts.Mulish.bold.font(size: 11.0)
        titleLabel.font = Fonts.Mulish.regular.font(size: 12.0)
        messageLabel.font = Fonts.Mulish.regular.font(size: 11.0)

        nameLabel.textColor = Asset.neutralBody.color
        titleLabel.textColor = Asset.neutralBody.color
        messageLabel.textColor = Asset.neutralBody.color

        addSubview(nameLabel)
        addSubview(titleLabel)
        addSubview(abortButton)
        addSubview(messageLabel)

        setupConstraints()
    }

    private func setupConstraints() {
        titleLabel.snp.makeConstraints { make in
            make.top.equalToSuperview().offset(10)
            make.left.equalToSuperview().offset(19)
            make.right.lessThanOrEqualToSuperview()
            make.height.equalTo(15)
        }

        nameLabel.snp.makeConstraints { make in
            make.top.equalTo(titleLabel.snp.bottom).offset(11)
            make.left.equalTo(titleLabel)
            make.right.lessThanOrEqualToSuperview().offset(-30)
            make.height.equalTo(10)
        }

        messageLabel.snp.makeConstraints { make in
            make.left.equalToSuperview().offset(28)
            make.top.equalTo(nameLabel.snp.bottom).offset(4)
            make.right.equalToSuperview().offset(-41)
            make.bottom.equalToSuperview().offset(-10)
            make.height.equalTo(30)
        }

        abortButton.snp.makeConstraints { make in
            make.top.equalToSuperview().offset(12)
            make.right.equalToSuperview().offset(-12)
        }
    }
}