min
07/22/2026, 10:22 AMpublic object LocalViewModelStoreOwner {
private val LocalViewModelStoreOwner =
compositionLocalWithHostDefaultOf(ViewModelStoreOwnerHostDefaultKey)
public val current: ViewModelStoreOwner?
@Composable get() = LocalViewModelStoreOwner.current
public infix fun provides(
viewModelStoreOwner: ViewModelStoreOwner
): ProvidedValue<ViewModelStoreOwner?> {
return LocalViewModelStoreOwner.provides(viewModelStoreOwner)
}
}
Why does it wrap a ProvidableCompositionLocal<ViewModelStoreOwner?> to manually reimplement its instance members? A wrapper typically exists to intercept and mediate access, but this object relays everything as-is.
Thread in Slack Conversationefemoney
07/23/2026, 8:57 AM