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.
This commit is contained in:
Arkadiusz Fal
2025-11-15 19:41:19 +01:00
parent 8b889da2ef
commit 97ae843013

View File

@@ -121,13 +121,17 @@ struct HomeView: View {
updateTask = Task { updateTask = Task {
async let favoritesUpdates: Void = { async let favoritesUpdates: Void = {
for await _ in Defaults.updates(.favorites) { for await _ in Defaults.updates(.favorites) {
await MainActor.run {
favoritesChanged.toggle() favoritesChanged.toggle()
} }
}
}() }()
async let widgetsUpdates: Void = { async let widgetsUpdates: Void = {
for await _ in Defaults.updates(.widgetsSettings) { for await _ in Defaults.updates(.widgetsSettings) {
await MainActor.run {
favoritesChanged.toggle() favoritesChanged.toggle()
} }
}
}() }()
_ = await(favoritesUpdates, widgetsUpdates) _ = await(favoritesUpdates, widgetsUpdates)
} }
@@ -143,13 +147,17 @@ struct HomeView: View {
updateTask = Task { updateTask = Task {
async let favoritesUpdates: Void = { async let favoritesUpdates: Void = {
for await _ in Defaults.updates(.favorites) { for await _ in Defaults.updates(.favorites) {
await MainActor.run {
favoritesChanged.toggle() favoritesChanged.toggle()
} }
}
}() }()
async let widgetsUpdates: Void = { async let widgetsUpdates: Void = {
for await _ in Defaults.updates(.widgetsSettings) { for await _ in Defaults.updates(.widgetsSettings) {
await MainActor.run {
favoritesChanged.toggle() favoritesChanged.toggle()
} }
}
}() }()
_ = await(favoritesUpdates, widgetsUpdates) _ = await(favoritesUpdates, widgetsUpdates)
} }