From 37b02e5ee360d61751951b77b7b556165a3af1fc Mon Sep 17 00:00:00 2001 From: Christian Cleberg Date: Wed, 22 Apr 2026 11:46:52 -0500 Subject: feat(v3.0.0): unify platform architecture and introduce feature tiers * consolidate DomainReport as canonical data model * add feature tier system (free/pro/data+ scaffolding) * apply clean feature gating across workflows and tracking * refactor app structure for maintainability * standardize navigation and settings * add data lifecycle controls * ensure consistency across UI, export, and CLI * stabilize internal inspection API --- DomainDig/WatchlistView.swift | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) (limited to 'DomainDig/WatchlistView.swift') diff --git a/DomainDig/WatchlistView.swift b/DomainDig/WatchlistView.swift index a434705..fcb5a16 100644 --- a/DomainDig/WatchlistView.swift +++ b/DomainDig/WatchlistView.swift @@ -55,7 +55,7 @@ struct WatchlistView: View { } .listRowBackground(Color(.systemGray6).opacity(0.5)) } else { - if let limitMessage = PremiumAccessService.trackedDomainLimitMessage(currentCount: viewModel.trackedDomains.count) { + if let limitMessage = FeatureAccessService.trackedDomainLimitMessage(currentCount: viewModel.trackedDomains.count) { Section { Text(limitMessage) .font(appDensity.font(.caption)) @@ -108,12 +108,19 @@ struct WatchlistView: View { shareTrackedDomains(format: .text) } - Button("Export CSV") { - shareTrackedDomains(format: .csv) - } + if FeatureAccessService.hasAccess(to: .advancedExports) { + Button("Export CSV") { + shareTrackedDomains(format: .csv) + } - Button("Export JSON") { - shareTrackedDomains(format: .json) + Button("Export JSON") { + shareTrackedDomains(format: .json) + } + } else { + Button("CSV Export • Available in Pro") {} + .disabled(true) + Button("JSON Export • Available in Pro") {} + .disabled(true) } } label: { Image(systemName: "line.3.horizontal.decrease.circle") -- cgit v1.2.3