diff --git a/Sources/Model/User Interface/App/App.swift b/Sources/Model/User Interface/App/App.swift index 3f06841..3a9758f 100644 --- a/Sources/Model/User Interface/App/App.swift +++ b/Sources/Model/User Interface/App/App.swift @@ -113,11 +113,9 @@ extension App { withObservationTracking { _ = scene } onChange: { - Task { - StateManager.updateState(id: app.storage.stateStorage.first?.value.id ?? .init()) - StateManager.updateViews() - observe() - } + StateManager.updateState(id: app.storage.stateStorage.first?.value.id ?? .init()) + StateManager.updateViews() + observe() } } diff --git a/Sources/View/StateWrapper.swift b/Sources/View/StateWrapper.swift index f836c1a..2eecad3 100644 --- a/Sources/View/StateWrapper.swift +++ b/Sources/View/StateWrapper.swift @@ -85,11 +85,9 @@ struct StateWrapper: ConvenienceWidget { withObservationTracking { _ = content() } onChange: { - Task { - StateManager.updateState(id: storage.state.first?.value.id ?? .init()) - StateManager.updateViews() - observe(storage: storage) - } + StateManager.updateState(id: storage.state.first?.value.id ?? .init()) + StateManager.updateViews() + observe(storage: storage) } } diff --git a/Tests/DemoApp/DemoApp.swift b/Tests/DemoApp/DemoApp.swift index f795cec..9e9a90a 100644 --- a/Tests/DemoApp/DemoApp.swift +++ b/Tests/DemoApp/DemoApp.swift @@ -60,14 +60,15 @@ struct DemoView: View { } +@available(macOS 14, *) struct TestView: View { - @State private var test = "Label" + @State private var test = TestModel() var view: Body { Backend2.TestWidget4() - Backend1.Button(test) { - test = "\(Int.random(in: 1...10))" + Backend1.Button(test.test) { + test.test = "\(Int.random(in: 1...10))" } Backend1.Menu("Hi") { Backend1.Menu("World") {