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 = {}
)