DomposableScreenScaffold

fun DomposableScreenScaffold(modifier: DomposableModifier = DomposableModifier, insets: DomposableInsets = DomposableInsets(), topBar: @Composable () -> Unit = {}, bottomBar: @Composable () -> Unit = {}, navigation: @Composable () -> Unit = {}, contextual: @Composable () -> Unit = {}, floatingAction: @Composable () -> Unit = {}, floatingActionPosition: DomposableScaffoldFabPosition = DomposableScaffoldFabPosition.End, snackbar: @Composable () -> Unit = {}, overlays: @Composable () -> Unit = {}, appearance: DomposableSurfaceAppearance? = null, content: @Composable DomposableScaffoldScope.() -> Unit)

Screen chrome without imposing a state model, ViewModel, DI container, or navigator.


fun <T> DomposableScreenScaffold(state: DomposableScreenState<T>, modifier: DomposableModifier = DomposableModifier, insets: DomposableInsets = DomposableInsets(), topBar: @Composable () -> Unit = {}, bottomBar: @Composable () -> Unit = {}, navigation: @Composable () -> Unit = {}, contextual: @Composable () -> Unit = {}, floatingAction: @Composable () -> Unit = {}, floatingActionPosition: DomposableScaffoldFabPosition = DomposableScaffoldFabPosition.End, snackbar: @Composable () -> Unit = {}, overlays: @Composable () -> Unit = {}, appearance: DomposableSurfaceAppearance? = null, loading: @Composable DomposableScaffoldScope.() -> Unit = { DomposableProgress(DomposableProgressProps()) }, error: @Composable DomposableScaffoldScope.(DomposableScreenState.Error) -> Unit = { failure -> DomposableBanner(DomposableBannerProps(failure.message, isError = true)) failure.retry?.let { DomposableButton("Retry", it) } }, content: @Composable DomposableScaffoldScope.(T) -> Unit)

Optional loading/error convenience; applications can supply their own state and chrome.