From f92b0a6c2963a0ee8d933c6cf88e83bf5bc6aa63 Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Tue, 29 Sep 2026 18:12:47 +0200 Subject: [PATCH] Migrate Slider to the SliderState API material3 1.5.0-alpha28 removed the value-based Slider overload that accepts custom thumb and track. Keep the public signature of our wrapper and remember a SliderState internally, as the deprecated material3 overload does. Co-Authored-By: Claude Opus 5.5 (1M context) --- .../libraries/designsystem/theme/components/Slider.kt | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/Slider.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/Slider.kt index 7b6e6f3062..33176832be 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/Slider.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/theme/components/Slider.kt @@ -18,6 +18,7 @@ import androidx.compose.foundation.layout.height import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.SliderColors import androidx.compose.material3.SliderDefaults +import androidx.compose.material3.SliderState import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.getValue @@ -60,16 +61,16 @@ fun Slider( } } } + val sliderState = remember(steps, valueRange) { SliderState(value = value, steps = steps, trackRange = valueRange) } + sliderState.value = value androidx.compose.material3.Slider( - value = value, + state = sliderState, onValueChange = onValueChange, modifier = modifier, enabled = enabled, - valueRange = valueRange, - steps = steps, onValueChangeFinished = onValueChangeFinish, colors = colors, - thumb = { + thumb = { _ -> if (useCustomLayout) { SliderDefaults.Thumb( modifier = Modifier.drawWithContent {