summaryrefslogtreecommitdiff
path: root/DomainDig/WatchlistView.swift
diff options
context:
space:
mode:
authorChristian Cleberg <[email protected]>2026-07-20 16:22:28 -0500
committerChristian Cleberg <[email protected]>2026-07-20 16:27:59 -0500
commitbb18197860ffdb491f010648ec903003b6e1bb65 (patch)
treee569d7cdeb1c14c7eab889cb7fac1ea9813e6efe /DomainDig/WatchlistView.swift
parent083dfa723739eedd409ea8a6ae27332e48515210 (diff)
downloaddomain-dig-bb18197860ffdb491f010648ec903003b6e1bb65.tar.gz
domain-dig-bb18197860ffdb491f010648ec903003b6e1bb65.tar.bz2
domain-dig-bb18197860ffdb491f010648ec903003b6e1bb65.zip
v4.8.3: Clear SonarCloud new-code issues
Fixes the 4 reported bugs and ~97 code smells flagged in the new-code period. No behavior changes. Bugs (swift:S3923) — DomainInspectionService's confidenceFor* helpers each returned `error == nil ? .low : .low`, an inert conditional. Simplified to `return .low` and dropped the now-unused `error` parameter. Smells: - Merged 14 identical `.empty`/`.error` switch branches in DomainViewModel - Consolidated duplicate implementations (clearPresentedResults/reset, String.nonEmpty/nilIfEmpty, ExportFormat.id/fileExtension) - Extracted nested ternaries into TLSGrade.tone, EmailSecurityGrade.tone, and ChangeImpactClassification.color; removed ContentView.impactColor and the duplicate mapping in BatchResultsView - Documented empty closures and singleton inits - Marked unused protocol-conformance parameters `_` - Renamed CloudSyncTrigger.`import` to `imported` (raw value preserved) and SSLSessionDelegate's _serverTrust/_tlsMetadata - Merged nested ifs in the DER parser; flattened closure nesting in PortScanService and IntegrationService - Replaced two-case switches with if/else Left open: S107 (init parameter counts), S115 (constants mirroring DoH and ipapi JSON keys), S1075 (false positives on https:// literals), and two S117 hits on SwiftUI $binding shorthand. These want a Won't Fix resolution in SonarCloud, not a code change.
Diffstat (limited to 'DomainDig/WatchlistView.swift')
-rw-r--r--DomainDig/WatchlistView.swift12
1 files changed, 6 insertions, 6 deletions
diff --git a/DomainDig/WatchlistView.swift b/DomainDig/WatchlistView.swift
index 5670e5e..389ae91 100644
--- a/DomainDig/WatchlistView.swift
+++ b/DomainDig/WatchlistView.swift
@@ -169,13 +169,13 @@ struct WatchlistView: View {
shareTrackedDomains(format: .pdf)
}
} else {
- Button("CSV Export • Available in Pro") {}
+ Button("CSV Export • Available in Pro") { /* Inert: disabled Pro upsell affordance. */ }
.disabled(true)
- Button("JSON Export • Available in Pro") {}
+ Button("JSON Export • Available in Pro") { /* Inert: disabled Pro upsell affordance. */ }
.disabled(true)
- Button("Markdown Export • Available in Pro") {}
+ Button("Markdown Export • Available in Pro") { /* Inert: disabled Pro upsell affordance. */ }
.disabled(true)
- Button("PDF Export • Available in Pro") {}
+ Button("PDF Export • Available in Pro") { /* Inert: disabled Pro upsell affordance. */ }
.disabled(true)
}
} label: {
@@ -250,7 +250,7 @@ struct WatchlistView: View {
Button("Save") {
viewModel.saveCurrentWatchlistView(name: newSavedViewName)
}
- Button("Cancel", role: .cancel) {}
+ Button("Cancel", role: .cancel) { /* Dismiss only; SwiftUI closes the alert. */ }
} message: {
Text("Saves the current tag, filter, and sort as a reusable preset.")
}
@@ -736,7 +736,7 @@ struct TrackedDomainDetailView: View {
viewModel.rerunInspection(for: liveTrackedDomain, useSnapshotResolver: true)
}
}
- Button("Cancel", role: .cancel) {}
+ Button("Cancel", role: .cancel) { /* Dismiss only; SwiftUI closes the alert. */ }
} message: {
Text(viewModel.resolverMismatchNote(for: liveTrackedDomain) ?? "Choose how to reproduce the most recent snapshot.")
}