From 535bb0ff0f64d57be1074e33ceb42f598f80205b Mon Sep 17 00:00:00 2001 From: Christian Cleberg Date: Sat, 25 Apr 2026 00:41:34 -0500 Subject: DomainDig v4.1.0: Add a full local data reset flow in Data Management - add a destructive Delete All Data action with confirmation, progress, success, and failure handling - centralize wipe behavior in DataResetService instead of scattering delete logic in views - clear local persistence, temp/export files, integration secrets, notifications, caches, and in-memory app state - reset sync, purchase, and integration services after wipe so the app returns to a clean first-launch state Polish batch and empty-state UX - present the batch sweep summary after manual bulk searches complete, not only from Watchlist - align the Workflows empty state styling with other empty states by removing the extra background card treatment Bump the project version from 4.0.0 to 4.1.0 --- DomainDig/PurchaseService.swift | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'DomainDig/PurchaseService.swift') diff --git a/DomainDig/PurchaseService.swift b/DomainDig/PurchaseService.swift index af34a33..dbc31ba 100644 --- a/DomainDig/PurchaseService.swift +++ b/DomainDig/PurchaseService.swift @@ -196,6 +196,14 @@ final class PurchaseService { errorMessage = nil } + func resetCachedStateAfterLocalWipe() { + currentTier = Self.cachedTier + activeProductID = Self.cachedEntitlement?.activeProductID + statusMessage = nil + errorMessage = nil + applyDebugOverrideIfNeeded() + } + private func apply(transaction: Transaction) { guard Self.productIDs.contains(transaction.productID), transaction.revocationDate == nil else { return -- cgit v1.2.3