fix: Isolate views to @MainActor and use @ObservedObject for Swift 5.7 compatibility #56

Merged
gronod merged 1 commits from hotfix/macos12-mainactor-views into develop 2026-10-01 12:53:48 +01:00
5 changed files with 8 additions and 2 deletions
+2 -1
View File
@@ -4,8 +4,9 @@ import SwiftUI
/// Sidebar tab showing currently breached thresholds and the in-app
/// alert history log maintained by `AlertEngine`.
@MainActor
public struct AlertsView: View {
@State private var engine = AlertEngine.shared
@ObservedObject private var engine = AlertEngine.shared
public init() {}
+2
View File
@@ -1,5 +1,6 @@
import SwiftUI
@MainActor
public struct ContentView: View {
@StateObject private var store = SystemTelemetryStore.shared
@State private var selectedTab: String? = "Dashboard"
@@ -1220,6 +1221,7 @@ public struct ContentView: View {
}
// MARK: - Process Detail Inspector Sheet
@MainActor
struct ProcessDetailSheet: View {
let inspector: MMProcessDetailInspector
let pid: Int32
@@ -1,7 +1,8 @@
import SwiftUI
@MainActor
public struct QuickGlancePopoverView: View {
var store: SystemTelemetryStore
@ObservedObject var store: SystemTelemetryStore
public init(store: SystemTelemetryStore) {
self.store = store
@@ -5,6 +5,7 @@ import UserNotifications
/// Preferences UI for threshold alert rules. Bound directly to
/// `AlertEngine.shared.configuration`, which auto-persists to `UserDefaults`.
@MainActor
public struct AlertsSettingsView: View {
@ObservedObject private var engine = AlertEngine.shared
@State private var authorizationStatus: UNAuthorizationStatus = .notDetermined
+1
View File
@@ -2,6 +2,7 @@ import XCTest
import SwiftUI
@testable import MacMonitor
@MainActor
final class MMMenuBarTests: XCTestCase {
func testMenuBarStatusViewInitialization() {