LoadableComponent

fun <T> LoadableComponent(preload: Optional<T>, loader: suspend LoadableComponentContext<T>.() -> T, block: LoadableComponentContext<T>.(T) -> Unit)(source)
fun <T> LoadableComponent(preload: T, loader: suspend LoadableComponentContext<T>.() -> T, block: LoadableComponentContext<T>.(T) -> Unit)(source)
fun <T> LoadableComponent(loader: suspend LoadableComponentContext<T>.() -> T, block: LoadableComponentContext<T>.(T) -> Unit)(source)

Showing data with ability to reload data

block will be shown when loader will complete loading. If you want to reload data, just call LoadableComponentContext.reload