import SwiftUI import SwiftData struct HistoryView: View { @Query private var items: [HistoryItem] = [] private var unlockCount: Int { items.count { $0.response == .unlocked } } private var percentage: Double { guard items.count > 0 else { return 0 } return Double(unlockCount * 100) / Double(items.count) } private var requestNumberText: String { guard items.count != 1 else { return "1 Request" } return "\(items.count) Requests" } var body: some View { NavigationView { List { HStack { Text(requestNumberText) .foregroundColor(.primary) .font(.body) Spacer() Text(String(format: "%d successful (%.1f %%)", unlockCount, percentage)) .foregroundColor(.secondary) .font(.footnote) } ForEach(items) {entry in HistoryListItem(entry: entry) } } .navigationTitle("History") } } } #Preview { do { let config = ModelConfiguration(isStoredInMemoryOnly: true) let container = try ModelContainer(for: HistoryItem.self, configurations: config) let item = HistoryItem.mock container.mainContext.insert(item) try container.mainContext.save() return HistoryView() .modelContainer(container) } catch { fatalError("Failed to create model container.") } }