List sheet
A bottom sheet with a title, a lazy list body and a pinned footer, for pickers and short forms.

var open by remember {
mutableStateOf(
value = false,
)
}
var selected by remember {
mutableStateOf(
value = "Gate A",
)
}
JengaButton(
text = "List sheet",
onClick = { open = true },
variant = JengaButtonVariant.Outline,
)
if (open) {
JengaListSheet(
onDismissRequest = { open = false },
title = "Select a gate",
subtitle =
buildAnnotatedString {
append(
text = "Scanning at ",
)
withStyle(
style = SpanStyle(
fontWeight = FontWeight.SemiBold,
),
) {
append(
text = selected,
)
}
},
footer = {
JengaButton(
text = "Done",
onClick = { open = false },
modifier = Modifier.weight(
weight = 1f,
),
)
},
content = {
items(
items = listOf(
"Gate A",
"Gate B",
"Gate C",
),
) { gate ->
JengaRadioListItem(
headline = gate,
selected = gate == selected,
onClick = { selected = gate },
)
}
},
)
}