Files
suixinkan_uikit/suixinkan/UI/Common/AppStatusBadge.swift

83 lines
2.2 KiB
Swift
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//
// AppStatusBadge.swift
// suixinkan
//
import SnapKit
import UIKit
/// / badge
final class AppStatusBadge: UIView {
///
enum Tone {
case info
case success
case warning
case danger
case neutral
}
private let label = UILabel()
override init(frame: CGRect) {
super.init(frame: frame)
AppFont.captionMedium.apply(to: label)
label.textAlignment = .center
addSubview(label)
label.snp.makeConstraints { make in
make.edges.equalToSuperview().inset(
UIEdgeInsets(
top: AppSpacing.xxs,
left: AppSpacing.xs,
bottom: AppSpacing.xxs,
right: AppSpacing.xs
)
)
}
layer.cornerRadius = AppRadius.xs
clipsToBounds = true
}
@available(*, unavailable)
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
///
func apply(tone: Tone, text: String) {
label.text = text
switch tone {
case .info:
label.textColor = AppColor.info
backgroundColor = AppColor.infoBackground
case .success:
label.textColor = AppColor.success
backgroundColor = AppColor.successBackground
case .warning:
label.textColor = AppColor.warning
backgroundColor = AppColor.warningBackground
case .danger:
label.textColor = AppColor.danger
backgroundColor = AppColor.dangerBackground
case .neutral:
label.textColor = AppColor.textTabInactive
backgroundColor = AppColor.inputBackground
}
}
/// Android OrderView
func applyOrderStatus(_ status: Int, text: String) {
switch status {
case 18, 20:
apply(tone: .info, text: text)
case 30:
apply(tone: .success, text: text)
case 50:
apply(tone: .danger, text: text)
default:
apply(tone: .warning, text: text)
}
}
}