Skip to content

Commit aa47c95

Browse files
committed
use VmStoreOwner instead of VmStore directly
1 parent 77f04fc commit aa47c95

File tree

2 files changed

+5
-5
lines changed

2 files changed

+5
-5
lines changed

Fruitties/iosApp/iosApp/IOSViewModelStoreOwner.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ class IOSViewModelStoreOwner: ObservableObject, ViewModelStoreOwner {
1414
extras: CreationExtras? = nil
1515
) -> T {
1616
do {
17-
return try viewModelStore.getViewModel(
17+
return try viewModel(
1818
modelClass: T.self,
1919
factory: factory,
2020
key: key,

Fruitties/shared/src/iosMain/kotlin/com/example/fruitties/di/viewmodel/ViewModelStoreUtil.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import kotlinx.cinterop.ObjCClass
1010
import kotlinx.cinterop.getOriginalKotlinClass
1111
import kotlin.reflect.KClass
1212

13+
1314
/**
1415
* This function allows retrieving any ViewModel from Swift Code with generics.
1516
* We only get [ObjCClass] type for the [modelClass], because the interop between Kotlin and Swift
@@ -18,7 +19,7 @@ import kotlin.reflect.KClass
1819
@Suppress("unused") // Android Studio is not aware of iOS usage.
1920
@OptIn(BetaInteropApi::class)
2021
@Throws(IllegalStateException::class)
21-
fun ViewModelStore.getViewModel(
22+
fun ViewModelStoreOwner.viewModel(
2223
modelClass: ObjCClass,
2324
factory: ViewModelProvider.Factory,
2425
key: String?,
@@ -28,6 +29,5 @@ fun ViewModelStore.getViewModel(
2829
val vmClass = getOriginalKotlinClass(modelClass) as? KClass<ViewModel>
2930
?: error("modelClass isn't a ViewModel type")
3031
val provider = ViewModelProvider.create(this, factory, extras ?: CreationExtras.Empty)
31-
return key?.let { provider[key, vmClass] } ?: provider[vmClass]
32-
}
33-
32+
return key?.let { provider.get(key, vmClass) } ?: provider.get(vmClass)
33+
}

0 commit comments

Comments
 (0)