| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- import Foundation
- @MainActor
- @Observable
- final class AIHistoryViewModel {
- var selectedFilter: AIHistoryFilter = .all
- var showDeleteAllConfirmation = false
- var entryPendingDeletion: AIHistoryEntry?
- private let historyManager: AIHistoryManager
- init(historyManager: AIHistoryManager = .shared) {
- self.historyManager = historyManager
- }
- var filteredEntries: [AIHistoryEntry] {
- historyManager.entries(matching: selectedFilter)
- }
- var isEmpty: Bool {
- historyManager.isEmpty
- }
- var hasFilteredEntries: Bool {
- !filteredEntries.isEmpty
- }
- func requestDelete(_ entry: AIHistoryEntry) {
- entryPendingDeletion = entry
- }
- func confirmDelete() {
- guard let entry = entryPendingDeletion else { return }
- historyManager.delete(id: entry.id)
- entryPendingDeletion = nil
- }
- func cancelDelete() {
- entryPendingDeletion = nil
- }
- func requestDeleteAll() {
- showDeleteAllConfirmation = true
- }
- func confirmDeleteAll() {
- historyManager.deleteAll()
- showDeleteAllConfirmation = false
- }
- func cancelDeleteAll() {
- showDeleteAllConfirmation = false
- }
- }
|