Skip to content

Commit 61a6fb6

Browse files
committed
GH-22 add ObservedViewModel wrappedValue setter
1 parent 67742b6 commit 61a6fb6

1 file changed

Lines changed: 10 additions & 3 deletions

File tree

KMMViewModelSwiftUI/ObservedViewModel.swift

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,19 @@ public struct ObservedViewModel<ViewModel: KMMViewModel>: DynamicProperty {
1515

1616
@ObservedObject private var observableObject: ObservableViewModel<ViewModel>
1717

18-
/// The underlying `KMMViewModel` referenced by the `ObservedViewModel`.
19-
public var wrappedValue: ViewModel { observableObject.viewModel }
20-
2118
/// A projection of the observed `KMMViewModel` that creates bindings to its properties using dynamic member lookup.
2219
public var projectedValue: ObservableViewModel<ViewModel>.Projection
2320

21+
/// The underlying `KMMViewModel` referenced by the `ObservedViewModel`.
22+
public var wrappedValue: ViewModel {
23+
get { observableObject.viewModel }
24+
set {
25+
let observableObject = observableViewModel(for: newValue)
26+
self.observableObject = observableObject
27+
self.projectedValue = ObservableViewModel.Projection(observableObject)
28+
}
29+
}
30+
2431
@available(*, deprecated)
2532
public init(_ projectedValue: ObservableViewModel<ViewModel>.Projection) {
2633
self.observableObject = projectedValue.observableObject

0 commit comments

Comments
 (0)