// // ReportFooterView.swift // Mastodon // // Created by ihugo on 2021/4/22. // import UIKit final class ReportFooterView: UIView { enum Step: Int { case one case two } lazy var stackview: UIStackView = { let view = UIStackView() view.axis = .vertical view.alignment = .fill view.spacing = 8 view.translatesAutoresizingMaskIntoConstraints = false return view }() lazy var nextStepButton: PrimaryActionButton = { let button = PrimaryActionButton() button.setTitle(L10n.Common.Controls.Actions.continue, for: .normal) button.translatesAutoresizingMaskIntoConstraints = false return button }() lazy var skipButton: UIButton = { let button = UIButton(type: .system) button.tintColor = Asset.Colors.brandBlue.color button.setTitle(L10n.Common.Controls.Actions.skip, for: .normal) button.translatesAutoresizingMaskIntoConstraints = false return button }() var step: Step = .one { didSet { switch step { case .one: nextStepButton.setTitle(L10n.Common.Controls.Actions.continue, for: .normal) skipButton.setTitle(L10n.Common.Controls.Actions.skip, for: .normal) case .two: nextStepButton.setTitle(L10n.Scene.Report.send, for: .normal) skipButton.setTitle(L10n.Scene.Report.skipToSend, for: .normal) } } } override init(frame: CGRect) { super.init(frame: frame) self.backgroundColor = Asset.Colors.Background.elevatedPrimary.color stackview.addArrangedSubview(nextStepButton) stackview.addArrangedSubview(skipButton) addSubview(stackview) NSLayoutConstraint.activate([ stackview.topAnchor.constraint( equalTo: self.topAnchor, constant: ReportView.continuTopMargin ), stackview.leadingAnchor.constraint( equalTo: self.readableContentGuide.leadingAnchor, constant: ReportView.horizontalMargin ), stackview.bottomAnchor.constraint( equalTo: self.safeAreaLayoutGuide.bottomAnchor, constant: -1 * ReportView.skipBottomMargin ), stackview.trailingAnchor.constraint( equalTo: self.readableContentGuide.trailingAnchor, constant: -1 * ReportView.horizontalMargin ), nextStepButton.heightAnchor.constraint( equalToConstant: ReportView.buttonHeight ), skipButton.heightAnchor.constraint( equalTo: nextStepButton.heightAnchor ) ]) } required init?(coder: NSCoder) { fatalError("init(coder:) has not been implemented") } } #if canImport(SwiftUI) && DEBUG import SwiftUI struct ReportFooterView_Previews: PreviewProvider { static var previews: some View { Group { UIViewPreview(width: 375) { () -> UIView in return ReportFooterView(frame: CGRect(origin: .zero, size: CGSize(width: 375, height: 164))) } .previewLayout(.fixed(width: 375, height: 164)) } } } #endif