From d77636c0538aa5266d8d7cf7c7994227f7b5a762 Mon Sep 17 00:00:00 2001 From: Saad Nadeem Date: Thu, 13 Aug 2026 19:34:52 -0400 Subject: [PATCH] fix(ui): disable slider arrows at limits --- .../polyfrost/oneconfig/internal/ui/components/Common.kt | 6 +++++- .../internal/ui/components/settings/NumberOption.kt | 4 ++-- 2 files changed, 7 insertions(+), 3 deletions(-) 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)