in ui-components/src/commonMain/kotlin/org/jetbrains/kotlinconf/ui/components/SettingsItem.kt [30:81]
fun SettingsItem(
title: String,
enabled: Boolean,
onToggle: (Boolean) -> Unit,
modifier: Modifier = Modifier,
note: String? = null,
) {
val interactionSource = remember { MutableInteractionSource() }
Row(
modifier
.fillMaxWidth()
.clip(KotlinConfTheme.shapes.roundedCornerMd)
.background(KotlinConfTheme.colors.tileBackground)
.toggleable(
value = enabled,
enabled = true,
role = Role.Switch,
onValueChange = { onToggle(!enabled) },
interactionSource = interactionSource,
indication = LocalIndication.current,
)
.padding(16.dp),
verticalAlignment = Alignment.CenterVertically,
horizontalArrangement = Arrangement.spacedBy(12.dp),
) {
Column(
verticalArrangement = Arrangement.spacedBy(4.dp),
modifier = Modifier.weight(1f)
) {
Text(
text = title,
style = KotlinConfTheme.typography.h3,
)
if (note != null) {
Text(
text = note,
style = KotlinConfTheme.typography.text2,
color = KotlinConfTheme.colors.secondaryText,
)
}
}
Toggle(
enabled = enabled,
onToggle = onToggle,
modifier = Modifier
.focusProperties { canFocus = false }
.clearAndSetSemantics {},
interactionSource = interactionSource,
)
}
}