summaryrefslogtreecommitdiff
path: root/DomainDig/HistoryView.swift
diff options
context:
space:
mode:
Diffstat (limited to 'DomainDig/HistoryView.swift')
-rw-r--r--DomainDig/HistoryView.swift20
1 files changed, 19 insertions, 1 deletions
diff --git a/DomainDig/HistoryView.swift b/DomainDig/HistoryView.swift
index 9505c12..3bda59d 100644
--- a/DomainDig/HistoryView.swift
+++ b/DomainDig/HistoryView.swift
@@ -5,6 +5,7 @@ struct HistoryView: View {
@Bindable var viewModel: DomainViewModel
@Environment(\.dismiss) private var dismiss
@State private var showClearAllConfirmation = false
+ @State private var showWorkflowAddSheet = false
private var groupedHistory: [HistoryGroup] {
HistoryGroup.groups(for: viewModel.filteredHistory)
@@ -105,6 +106,12 @@ struct HistoryView: View {
Button("Clear All", role: .destructive) {
showClearAllConfirmation = true
}
+
+ if !viewModel.filteredHistory.isEmpty {
+ Button("Add to Workflow") {
+ showWorkflowAddSheet = true
+ }
+ }
} label: {
Image(systemName: "line.3.horizontal.decrease.circle")
}
@@ -121,6 +128,13 @@ struct HistoryView: View {
} message: {
Text("This will delete all saved history entries. This cannot be undone.")
}
+ .sheet(isPresented: $showWorkflowAddSheet) {
+ WorkflowBulkAddSheet(
+ viewModel: viewModel,
+ title: "Add History Domains",
+ availableDomains: Array(Set(viewModel.filteredHistory.map(\.domain))).sorted()
+ )
+ }
.onChange(of: viewModel.rerunNavigationToken) { _, _ in
dismiss()
}
@@ -170,6 +184,7 @@ struct HistoryDetailView: View {
confidence: snapshot.availabilityConfidence,
snapshotNote: entry.note,
trackedDomain: viewModel.trackedDomains.first(where: { $0.domain.lowercased() == entry.domain.lowercased() }),
+ workflows: viewModel.workflowsContaining(domain: entry.domain),
trackingLimitMessage: nil,
onTrack: {
_ = viewModel.trackDomain(domain: entry.domain, availabilityStatus: entry.availabilityResult?.status)
@@ -178,7 +193,10 @@ struct HistoryDetailView: View {
guard let trackedDomain = viewModel.trackedDomains.first(where: { $0.domain.lowercased() == entry.domain.lowercased() }) else { return }
viewModel.togglePinned(for: trackedDomain)
},
- onEditNote: nil
+ onEditNote: nil,
+ onAddToWorkflow: nil,
+ onOpenWorkflow: nil,
+ onRunWorkflow: nil
)
.padding(.top, appDensity.metrics.sectionSpacing)
OwnershipSectionView(