diff options
| author | Christian Cleberg <[email protected]> | 2026-04-23 22:15:20 -0500 |
|---|---|---|
| committer | Christian Cleberg <[email protected]> | 2026-04-23 22:15:20 -0500 |
| commit | f045a5d339a796f40a9e958436ebc6f5314bdab8 (patch) | |
| tree | c1d122f3ed7a9110dfcd001c86a56ed67980dfcc /DomainDig/WatchlistView.swift | |
| parent | 6c23daaaba2a954220ece2afa7193dbdcad55c22 (diff) | |
| download | domain-dig-f045a5d339a796f40a9e958436ebc6f5314bdab8.tar.gz domain-dig-f045a5d339a796f40a9e958436ebc6f5314bdab8.tar.bz2 domain-dig-f045a5d339a796f40a9e958436ebc6f5314bdab8.zip | |
feat(v3.4.0): add backup, restore, and data portability
• introduce versioned DomainDig backup format
• add full backup export/import with merge and replace modes
• implement data validation and conflict handling
• add partial exports for tracked domains, workflows, and history
• add Data Portability settings section
• support Files/iCloud Drive import and export
• harden migrations for evolving local models
• extend CLI with backup export and validation
Diffstat (limited to 'DomainDig/WatchlistView.swift')
| -rw-r--r-- | DomainDig/WatchlistView.swift | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/DomainDig/WatchlistView.swift b/DomainDig/WatchlistView.swift index b4e5011..968914f 100644 --- a/DomainDig/WatchlistView.swift +++ b/DomainDig/WatchlistView.swift @@ -287,6 +287,18 @@ struct WatchlistRowView: View { .font(appDensity.font(.caption2)) .foregroundStyle(.secondary) + HStack(spacing: 8) { + Text(trackedDomain.monitoringEnabled ? "Monitoring on" : "Monitoring off") + if let lastMonitoredAt = trackedDomain.lastMonitoredAt { + Text("Checked \(lastMonitoredAt.formatted(date: .omitted, time: .shortened))") + } + if let lastAlertAt = trackedDomain.lastAlertAt { + Text("Alert \(lastAlertAt.formatted(date: .omitted, time: .shortened))") + } + } + .font(appDensity.font(.caption2)) + .foregroundStyle(.secondary) + indicatorRow if let note = trackedDomain.note?.trimmingCharacters(in: .whitespacesAndNewlines), !note.isEmpty { @@ -400,6 +412,15 @@ struct TrackedDomainDetailView: View { } Button { + viewModel.toggleMonitoring(for: liveTrackedDomain) + } label: { + Label( + liveTrackedDomain.monitoringEnabled ? "Disable Monitoring" : "Enable Monitoring", + systemImage: liveTrackedDomain.monitoringEnabled ? "bell.slash" : "bell" + ) + } + + Button { noteDraft = liveTrackedDomain.note ?? "" isEditingNote = true } label: { |
