Rebuild order list UI to strictly match Android OrderView and DepositOrderCard.

Add OrderTokens and shared order components, restore filter bar pills, list loading states, and role-specific card layouts with deposit badge mapping tests.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-07-07 09:12:06 +08:00
parent 87696a4774
commit fe84a7e8f4
17 changed files with 1235 additions and 379 deletions

View File

@ -0,0 +1,49 @@
//
// OrderActionButton.swift
// suixinkan
//
import SnapKit
import UIKit
/// Android `AppButton`
final class OrderActionButton: UIButton {
enum Style {
case destructiveLight
case primaryFilled
case primaryLight
case dangerFilled
}
init(title: String, style: Style) {
super.init(frame: .zero)
setTitle(title, for: .normal)
titleLabel?.font = .app(.subtitle)
layer.cornerRadius = AppRadius.sm
clipsToBounds = true
switch style {
case .destructiveLight:
setTitleColor(AppColor.danger, for: .normal)
backgroundColor = AppColor.dangerBackground
case .primaryFilled:
setTitleColor(.white, for: .normal)
backgroundColor = AppColor.primary
case .primaryLight:
setTitleColor(AppColor.primary, for: .normal)
backgroundColor = OrderTokens.chipBackground
layer.cornerRadius = AppRadius.lg
case .dangerFilled:
setTitleColor(.white, for: .normal)
backgroundColor = AppColor.danger
}
snp.makeConstraints { make in
make.height.equalTo(OrderTokens.actionButtonHeight)
}
}
@available(*, unavailable)
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}