From ae6cb7dc7d0aebcc4aa143e7f1dbb1bdc81b3964 Mon Sep 17 00:00:00 2001 From: psavarmattas Date: Sat, 15 Aug 2026 00:38:15 +0100 Subject: [PATCH] fix: real Xcode compile errors from Swift 6 strict concurrency MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - SettingsView: ternary between .secondary (HierarchicalShapeStyle) and .red (Color) doesn't unify — both sides now explicit Color. - CollectionRowView: passing OutlineIconMapping.sfSymbolName as a bare function reference to flatMap loses its (inferred default) MainActor isolation; wrapping it in a closure keeps the call inside body's already-MainActor context. - NetworkMonitor: [weak self] was captured on NWPathMonitor's non-isolated pathUpdateHandler closure, which must cross into the inner @MainActor Task — moved the weak capture onto the Task closure itself instead, which is where it's actually used. --- Outpost/Features/Account/SettingsView.swift | 2 +- Outpost/Features/Collections/CollectionRowView.swift | 2 +- Outpost/Support/NetworkMonitor.swift | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Outpost/Features/Account/SettingsView.swift b/Outpost/Features/Account/SettingsView.swift index 6b63636..6a9df19 100644 --- a/Outpost/Features/Account/SettingsView.swift +++ b/Outpost/Features/Account/SettingsView.swift @@ -126,7 +126,7 @@ struct SettingsView: View { if let lastFullSyncSummary { Text(fullSyncSummaryText(lastFullSyncSummary)) .font(.caption) - .foregroundStyle(lastFullSyncSummary.errors.isEmpty ? .secondary : .red) + .foregroundStyle(lastFullSyncSummary.errors.isEmpty ? Color.secondary : Color.red) } } } diff --git a/Outpost/Features/Collections/CollectionRowView.swift b/Outpost/Features/Collections/CollectionRowView.swift index 913b9e0..6eb363e 100644 --- a/Outpost/Features/Collections/CollectionRowView.swift +++ b/Outpost/Features/Collections/CollectionRowView.swift @@ -10,7 +10,7 @@ struct CollectionRowView: View { } icon: { if let emoji = collection.emojiIcon { Text(emoji) - } else if let symbolName = collection.icon.flatMap(OutlineIconMapping.sfSymbolName) { + } else if let symbolName = collection.icon.flatMap({ OutlineIconMapping.sfSymbolName(for: $0) }) { Image(systemName: symbolName) .foregroundStyle(tintColor) } else { diff --git a/Outpost/Support/NetworkMonitor.swift b/Outpost/Support/NetworkMonitor.swift index 4c2fd5b..1c37dd9 100644 --- a/Outpost/Support/NetworkMonitor.swift +++ b/Outpost/Support/NetworkMonitor.swift @@ -14,9 +14,9 @@ final class NetworkMonitor { private let queue = DispatchQueue(label: "com.outpost.network-monitor") init() { - monitor.pathUpdateHandler = { [weak self] path in + monitor.pathUpdateHandler = { path in let online = path.status == .satisfied - Task { @MainActor in + Task { @MainActor [weak self] in self?.isOnline = online } }