Files
kangkang/康康/Features/Home/RecentItemRow.swift
link2026 77a4ee1c37 缺少代码差异信息,无法生成具体的commit message。请提供code differences内容以便分析并生成符合Angular规范的提交信息。
当您提供代码差异后,我将按照以下格式生成:

```
<type>(<scope>): <subject>

<body>
```

其中type会根据更改类型选择(feat、fix、docs、style、refactor等),scope表示影响范围,subject简要描述变更内容,body详细说明修改内容。
2026-06-07 14:17:18 +08:00

60 lines
1.6 KiB
Swift

import SwiftUI
enum RecentItemStatus {
case high, archive, diary
var dotColor: Color {
switch self {
case .high: return Tj.Palette.brick
case .archive: return Tj.Palette.ink2
case .diary: return Tj.Palette.leaf
}
}
var valueColor: Color {
switch self {
case .high: return Tj.Palette.brick
default: return Tj.Palette.text2
}
}
}
struct RecentItemRow: View {
let date: String
let type: String
let name: String
let value: String?
let status: RecentItemStatus
var body: some View {
HStack(spacing: 12) {
RoundedRectangle(cornerRadius: 3, style: .continuous)
.fill(status.dotColor)
.frame(width: 6, height: 40)
VStack(alignment: .leading, spacing: 2) {
Text("\(date) · \(type)")
.font(.tjScaled( 11))
.tracking(0.3)
.foregroundStyle(Tj.Palette.text3)
.lineLimit(1)
Text(name)
.font(.tjScaled( 14, weight: .medium))
.foregroundStyle(Tj.Palette.text)
.lineLimit(1)
.truncationMode(.tail)
}
Spacer(minLength: 8)
if let value {
Text(value)
.font(.tjScaled( 12, weight: .semibold, design: .monospaced))
.foregroundStyle(status.valueColor)
.lineLimit(1)
.fixedSize()
}
}
.padding(12)
.tjCard(bordered: true)
}
}