LoadingModal

A full-screen SYSTEM overlay shown while a guard or entry definition is evaluating.

Automatically shown by evaluateWithThreshold when evaluation exceeds the configured loading threshold, and removed atomically once navigation commits.

Sits at the bottom of the SYSTEM layer (elevation = 0f) so that user-triggered SYSTEM modals (e.g. system alerts) always render above it.

Stacking order within RenderLayer.SYSTEM:

  • LoadingModalzIndex(9001f + 0f) = 9001f

  • Normal SYSTEM ModalzIndex(9001f + 1000f) = 10001f

Usage:

object AuthLoadingScreen : LoadingModal {
override val route = "auth-loading"
override val enterTransition = NavTransition.Fade
override val exitTransition = NavTransition.FadeOut
override val requiresAuth = false

@Composable
override fun Content(params: Params) { /* loading UI */}
}

Properties

Link copied to clipboard
open override val actionResource: ActionResource?
Link copied to clipboard
Link copied to clipboard
open override val dismissable: Boolean

When true (the default), the system back gesture/button dismisses this modal via navigateBack. Set to false for mandatory modals that must not be dismissed by the user. Also gates tapOutsideToDismiss — if this is false, tapping outside does nothing even when tapOutsideToDismiss is true.

Link copied to clipboard
open override val elevation: Float

Elevation within the layer (higher = on top)

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
open override val popEnterTransition: NavTransition?
Link copied to clipboard
open override val popExitTransition: NavTransition?
Link copied to clipboard
open override val renderLayer: RenderLayer

Which layer this navigatable should render in

Link copied to clipboard
abstract val requiresAuth: Boolean
Link copied to clipboard
abstract val route: String
Link copied to clipboard
open override val shouldDimBackground: Boolean
Link copied to clipboard
open override val tapOutsideToDismiss: Boolean

When true (the default), tapping on the dim background outside the modal content calls navigateBack. The dim layer always captures all taps regardless of this flag, preventing clicks from passing through to screens behind the modal.

Link copied to clipboard
open override val titleResource: TitleResource?

Functions

Link copied to clipboard
abstract fun Content(params: Params)
Link copied to clipboard
open suspend fun onLifecycleCreated(lifecycle: BackstackLifecycle)

Called when this navigatable is added to the backstack.

Link copied to clipboard
fun Navigatable.toNavigationEntry(path: String, params: Params = Params.empty(), stackPosition: Int = 0): NavigationEntry

Creates a NavigationEntry for this Navigatable at the given path.