diff --git a/modules/internal/src/main/kotlin/org/polyfrost/oneconfig/internal/ui/components/Common.kt b/modules/internal/src/main/kotlin/org/polyfrost/oneconfig/internal/ui/components/Common.kt index 068ef6807..74d71484a 100644 --- a/modules/internal/src/main/kotlin/org/polyfrost/oneconfig/internal/ui/components/Common.kt +++ b/modules/internal/src/main/kotlin/org/polyfrost/oneconfig/internal/ui/components/Common.kt @@ -16,9 +16,13 @@ import org.polyfrost.oneconfig.internal.ui.sound.UiSounds @Composable fun rememberInteractionSource() = remember { MutableInteractionSource() } -fun Modifier.onClick(interactionSource: MutableInteractionSource, onClick: () -> Unit) = clickable( +fun Modifier.onClick(interactionSource: MutableInteractionSource, onClick: () -> Unit) = + onClick(interactionSource, true, onClick) + +fun Modifier.onClick(interactionSource: MutableInteractionSource, enabled: Boolean, onClick: () -> Unit) = clickable( interactionSource = interactionSource, indication = null, + enabled = enabled, onClick = { UiSounds.play(UiSoundEvent.CLICK) onClick() diff --git a/modules/internal/src/main/kotlin/org/polyfrost/oneconfig/internal/ui/components/settings/NumberOption.kt b/modules/internal/src/main/kotlin/org/polyfrost/oneconfig/internal/ui/components/settings/NumberOption.kt index 1ada138dc..6ee34dde7 100644 --- a/modules/internal/src/main/kotlin/org/polyfrost/oneconfig/internal/ui/components/settings/NumberOption.kt +++ b/modules/internal/src/main/kotlin/org/polyfrost/oneconfig/internal/ui/components/settings/NumberOption.kt @@ -119,7 +119,7 @@ fun NumberSpinner( Box( modifier = Modifier .size(18.dp, 13.dp) - .onClick(upInteraction) { commit(formatSpinnerValue((value + step).coerceIn(min, max))) }, + .onClick(upInteraction, value < max) { commit(formatSpinnerValue((value + step).coerceIn(min, max))) }, contentAlignment = Alignment.Center, ) { Icon("up", modifier = Modifier.size(14.dp), color = upColor) @@ -128,7 +128,7 @@ fun NumberSpinner( Box( modifier = Modifier .size(18.dp, 13.dp) - .onClick(downInteraction) { commit(formatSpinnerValue((value - step).coerceIn(min, max))) }, + .onClick(downInteraction, value > min) { commit(formatSpinnerValue((value - step).coerceIn(min, max))) }, contentAlignment = Alignment.Center, ) { Icon("down", modifier = Modifier.size(14.dp), color = downColor)