Untitled

 avatar
unknown
kotlin
2 years ago
340 B
6
Indexable
sealed interface Loadable<out T> {
  object Loading: Loadable<Nothing>

  data class Ready<out T>(val value: T): Loadable<T>
}

@Composable
fun <T> LoadableContent(
  loadable: Loadable<T>,
  content: @Composable (T) -> Unit
) {
  when (loadable) {
    Loadable.Loading -> SpinLoader()
    is Loadable.Ready -> content(loadable.value)
  }
}
Editor is loading...