From 97ae843013a7c47f59c6c55f1f05d9968554af5c Mon Sep 17 00:00:00 2001 From: Arkadiusz Fal Date: Sat, 15 Nov 2025 19:41:19 +0100 Subject: [PATCH] Fix main actor isolation warnings in HomeView Wrap favoritesChanged.toggle() calls in MainActor.run blocks to ensure main actor-isolated state mutations happen on the correct actor context. This resolves Swift concurrency warnings when updating state from nonisolated async contexts. --- Shared/Home/HomeView.swift | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/Shared/Home/HomeView.swift b/Shared/Home/HomeView.swift index 13b59a07..a042f0c9 100644 --- a/Shared/Home/HomeView.swift +++ b/Shared/Home/HomeView.swift @@ -121,15 +121,19 @@ struct HomeView: View { updateTask = Task { async let favoritesUpdates: Void = { for await _ in Defaults.updates(.favorites) { - favoritesChanged.toggle() + await MainActor.run { + favoritesChanged.toggle() + } } }() async let widgetsUpdates: Void = { for await _ in Defaults.updates(.widgetsSettings) { - favoritesChanged.toggle() + await MainActor.run { + favoritesChanged.toggle() + } } }() - _ = await (favoritesUpdates, widgetsUpdates) + _ = await(favoritesUpdates, widgetsUpdates) } } .onDisappear { @@ -143,15 +147,19 @@ struct HomeView: View { updateTask = Task { async let favoritesUpdates: Void = { for await _ in Defaults.updates(.favorites) { - favoritesChanged.toggle() + await MainActor.run { + favoritesChanged.toggle() + } } }() async let widgetsUpdates: Void = { for await _ in Defaults.updates(.widgetsSettings) { - favoritesChanged.toggle() + await MainActor.run { + favoritesChanged.toggle() + } } }() - _ = await (favoritesUpdates, widgetsUpdates) + _ = await(favoritesUpdates, widgetsUpdates) } } }