From d0d73cb660dbdee64166a88d9df7e4509c385ce4 Mon Sep 17 00:00:00 2001 From: Radix Bot Date: Wed, 18 Mar 2026 16:27:01 +0800 Subject: [PATCH] fix(slider): onValueCommit not called when range narrows to single value MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes radix-ui/primitives#3698 When dragging a range slider thumb to overlap another (e.g. [105, 107] → [105, 105]), onValueCommit was never fired because handleSlideEnd compared individual thumb values using valueIndexToChangeRef.current, but indexOf returns 0 for both thumbs when they overlap. The fix compares the full value arrays using String(values) !== String(prevValues), matching the approach already used in updateValues. --- packages/react/slider/src/slider.tsx | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/packages/react/slider/src/slider.tsx b/packages/react/slider/src/slider.tsx index 018000f48..b827e0a3b 100644 --- a/packages/react/slider/src/slider.tsx +++ b/packages/react/slider/src/slider.tsx @@ -119,9 +119,7 @@ const Slider = React.forwardRef( } function handleSlideEnd() { - const prevValue = valuesBeforeSlideStartRef.current[valueIndexToChangeRef.current]; - const nextValue = values[valueIndexToChangeRef.current]; - const hasChanged = nextValue !== prevValue; + const hasChanged = String(values) !== String(valuesBeforeSlideStartRef.current); if (hasChanged) onValueCommit(values); }