Skip to content

ModalScope

interface ModalScope

Receiver scope for modal layer content, exposing a way to close the modal.

Functions

AlertDialog

@Composable



fun ModalScope.AlertDialog(
    title: Component, 
    message: Component, 
    confirmText: Component = Component.literal("OK"), 
    onConfirm: () -> Unit = {}
)

Simple one-action modal for acknowledgements and warnings.

ChoiceDialog

@Composable



fun <T> ModalScope.ChoiceDialog(
    title: Component, 
    message: Component? = null, 
    choices: List<ModalChoice<T>>, 
    cancelText: Component = Component.literal("Cancel"), 
    onSelected: (T) -> Unit, 
    onCancel: () -> Unit = {}
)

Multi-choice modal that maps each option in choices to its own button, plus one cancel action.

ConfirmDialog

@Composable



fun ModalScope.ConfirmDialog(
    title: Component = Component.literal("Confirm Dialog"), 
    confirmText: Component = Component.literal("Confirm"), 
    cancelText: Component = Component.literal("Cancel"), 
    onConfirm: () -> Unit = {}, 
    onCancel: () -> Unit = {}, 
    content: @Composable



 () -> Unit
)

Generic confirm/cancel modal with fully custom content, rather than a fixed message layout like AlertDialog/PromptDialog/ChoiceDialog.

dismiss

abstract fun dismiss()

Dismisses (removes) the modal layer that owns this scope.

PromptDialog

@Composable



fun ModalScope.PromptDialog(
    title: Component, 
    initialValue: String = "", 
    prompt: Component = Component.literal("Enter a value:"), 
    confirmText: Component = Component.literal("Confirm"), 
    cancelText: Component = Component.literal("Cancel"), 
    validator: (String) -> Boolean = { true }, 
    onConfirm: (String) -> Unit, 
    onCancel: () -> Unit = {}
)

Input modal with an inline text field and explicit confirm/cancel actions.

WizardDialog

@Composable



fun ModalScope.WizardDialog(
    pages: List<WizardPage>, 
    state: WizardState = rememberWizardState(), 
    contentWidth: Int = DEFAULT_CONTENT_WIDTH, 
    contentHeight: Int? = null, 
    backText: Component = Component.literal("Back"), 
    cancelText: Component = Component.literal("Cancel"), 
    nextText: Component = Component.literal("Next"), 
    finishText: Component = Component.literal("Finish"), 
    transitionSpec: AnimationSpec = DEFAULT_SLIDE_SPEC, 
    onCancel: () -> Unit = {}, 
    onFinish: () -> Unit = {}
)

A Wizard in a modal's Surface, dismissing the modal on cancel and after finishing.