fun SettingsItem()

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,
        )
    }
}