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(.system(size: 11)) .tracking(0.3) .foregroundStyle(Tj.Palette.text3) .lineLimit(1) Text(name) .font(.system(size: 14, weight: .medium)) .foregroundStyle(Tj.Palette.text) .lineLimit(1) .truncationMode(.tail) } Spacer(minLength: 8) if let value { Text(value) .font(.system(size: 12, weight: .semibold, design: .monospaced)) .foregroundStyle(status.valueColor) .lineLimit(1) .fixedSize() } } .padding(12) .tjCard(bordered: true) } }