@@ -24,12 +24,10 @@ const DEFAULT_VALUES = {
2424 MARKER_SIZE : 32 ,
2525 TRACK_HEIGHT : 2.5 ,
2626 STEP : 1 ,
27- MARKER_COLOR : 'white' ,
28- SELECTED_TRACK_COLOR : '#2196F3' ,
29- UNSELECTED_TRACK_COLOR : '#CECECE' ,
3027 LEFT_MARKER_LABEL : 'Left handle' ,
3128 RIGHT_MARKER_LABEL : 'Right handle' ,
3229 MINIMUM_DISTANCE : MIN_MARKER_SPACING ,
30+ SHOW_MARKER_LINES : true ,
3331} ;
3432
3533const createDynamicStyles = ( props ) => ( {
@@ -40,20 +38,18 @@ const createDynamicStyles = (props) => ({
4038 track : {
4139 position : 'absolute' ,
4240 height : props . trackHeight ,
43- backgroundColor : props . unselectedTrackColor ,
4441 width : props . sliderWidth ,
4542 left : HORIZONTAL_PADDING ,
4643 } ,
4744 selectedTrack : {
4845 position : 'absolute' ,
4946 height : props . trackHeight ,
50- backgroundColor : props . selectedTrackColor ,
5147 } ,
5248 marker : {
5349 height : props . markerSize ,
5450 width : props . markerSize ,
5551 borderRadius : props . markerSize / 2 ,
56- backgroundColor : props . markerColor ,
52+ backgroundColor : 'white' , // Move default color here
5753 position : 'absolute' ,
5854 shadowColor : '#000' ,
5955 shadowOffset : { width : 0 , height : 2 } ,
@@ -82,8 +78,8 @@ const RangeSlider = forwardRef(
8278 step = DEFAULT_VALUES . STEP ,
8379
8480 // Style props
85- selectedStyle ,
86- unselectedStyle ,
81+ selectedTrackStyle ,
82+ unselectedTrackStyle ,
8783 markerStyle,
8884 pressedMarkerStyle,
8985 containerStyle,
@@ -93,13 +89,9 @@ const RangeSlider = forwardRef(
9389 markerSize = DEFAULT_VALUES . MARKER_SIZE ,
9490 trackHeight = DEFAULT_VALUES . TRACK_HEIGHT ,
9591 minimumDistance = DEFAULT_VALUES . MINIMUM_DISTANCE ,
96- markerColor = DEFAULT_VALUES . MARKER_COLOR ,
97- selectedTrackColor = DEFAULT_VALUES . SELECTED_TRACK_COLOR ,
98- unselectedTrackColor = DEFAULT_VALUES . UNSELECTED_TRACK_COLOR ,
9992
10093 // Behavior props
10194 enabled = true ,
102- snapsToStep = false ,
10395 allowOverlap = false ,
10496
10597 // Callback props
@@ -110,6 +102,9 @@ const RangeSlider = forwardRef(
110102 // Accessibility props
111103 leftMarkerAccessibilityLabel = DEFAULT_VALUES . LEFT_MARKER_LABEL ,
112104 rightMarkerAccessibilityLabel = DEFAULT_VALUES . RIGHT_MARKER_LABEL ,
105+
106+ // Marker lines prop
107+ showMarkerLines = DEFAULT_VALUES . SHOW_MARKER_LINES ,
113108 } ,
114109 ref
115110 ) => {
@@ -186,15 +181,13 @@ const RangeSlider = forwardRef(
186181 const leftValue = convertPositionToValue ( leftPosition ) ;
187182 const rightValue = convertPositionToValue ( rightPosition ) ;
188183
189- if ( snapsToStep ) {
190- return [
191- Math . round ( leftValue / step ) * step ,
192- Math . round ( rightValue / step ) * step ,
193- ] ;
194- }
195- return [ leftValue , rightValue ] ;
184+ // Always round values according to step size
185+ return [
186+ Math . round ( leftValue / step ) * step ,
187+ Math . round ( rightValue / step ) * step ,
188+ ] ;
196189 } ,
197- [ convertPositionToValue , step , snapsToStep ]
190+ [ convertPositionToValue , step ]
198191 ) ;
199192
200193 const leftGesture = useAnimatedGestureHandler ( {
@@ -293,9 +286,6 @@ const RangeSlider = forwardRef(
293286 sliderWidth,
294287 markerSize,
295288 trackHeight,
296- markerColor,
297- selectedTrackColor,
298- unselectedTrackColor,
299289 enabled,
300290 } ) ;
301291
@@ -306,12 +296,19 @@ const RangeSlider = forwardRef(
306296 < View
307297 style = { [ staticStyles . container , containerStyle , { direction : 'ltr' } ] }
308298 >
309- < View style = { [ dynamicStyles . track , unselectedStyle ] } />
299+ < View
300+ style = { [
301+ dynamicStyles . track ,
302+ { backgroundColor : '#CECECE' } , // Default color
303+ unselectedTrackStyle ,
304+ ] }
305+ />
310306
311307 < Animated . View
312308 style = { [
313309 dynamicStyles . selectedTrack ,
314- selectedStyle ,
310+ { backgroundColor : '#2196F3' } , // Default color
311+ selectedTrackStyle ,
315312 animatedTrackStyle ,
316313 ] }
317314 />
@@ -334,9 +331,13 @@ const RangeSlider = forwardRef(
334331 leftMarkerStyle ,
335332 ] }
336333 >
337- < View style = { staticStyles . markerLine } />
338- < View style = { staticStyles . markerLine } />
339- < View style = { staticStyles . markerLine } />
334+ { showMarkerLines && (
335+ < >
336+ < View style = { staticStyles . markerLine } />
337+ < View style = { staticStyles . markerLine } />
338+ < View style = { staticStyles . markerLine } />
339+ </ >
340+ ) }
340341 </ Animated . View >
341342 </ PanGestureHandler >
342343
@@ -358,9 +359,13 @@ const RangeSlider = forwardRef(
358359 rightMarkerStyle ,
359360 ] }
360361 >
361- < View style = { staticStyles . markerLine } />
362- < View style = { staticStyles . markerLine } />
363- < View style = { staticStyles . markerLine } />
362+ { showMarkerLines && (
363+ < >
364+ < View style = { staticStyles . markerLine } />
365+ < View style = { staticStyles . markerLine } />
366+ < View style = { staticStyles . markerLine } />
367+ </ >
368+ ) }
364369 </ Animated . View >
365370 </ PanGestureHandler >
366371 </ View >
@@ -404,8 +409,8 @@ RangeSlider.propTypes = {
404409 step : PropTypes . number ,
405410
406411 // Style props
407- selectedStyle : PropTypes . object ,
408- unselectedStyle : PropTypes . object ,
412+ selectedTrackStyle : PropTypes . object ,
413+ unselectedTrackStyle : PropTypes . object ,
409414 markerStyle : PropTypes . object ,
410415 pressedMarkerStyle : PropTypes . object ,
411416 containerStyle : PropTypes . object ,
@@ -415,13 +420,9 @@ RangeSlider.propTypes = {
415420 markerSize : PropTypes . number ,
416421 trackHeight : PropTypes . number ,
417422 minimumDistance : PropTypes . number ,
418- markerColor : PropTypes . string ,
419- selectedTrackColor : PropTypes . string ,
420- unselectedTrackColor : PropTypes . string ,
421423
422424 // Behavior props
423425 enabled : PropTypes . bool ,
424- snapsToStep : PropTypes . bool ,
425426 allowOverlap : PropTypes . bool ,
426427
427428 // Callback props
@@ -432,6 +433,9 @@ RangeSlider.propTypes = {
432433 // Accessibility props
433434 leftMarkerAccessibilityLabel : PropTypes . string ,
434435 rightMarkerAccessibilityLabel : PropTypes . string ,
436+
437+ // Marker lines prop
438+ showMarkerLines : PropTypes . bool ,
435439} ;
436440
437441RangeSlider . defaultProps = {
@@ -440,16 +444,13 @@ RangeSlider.defaultProps = {
440444 markerSize : DEFAULT_VALUES . MARKER_SIZE ,
441445 trackHeight : DEFAULT_VALUES . TRACK_HEIGHT ,
442446 enabled : true ,
443- snapsToStep : false ,
444447 allowOverlap : false ,
445- markerColor : DEFAULT_VALUES . MARKER_COLOR ,
446- selectedTrackColor : DEFAULT_VALUES . SELECTED_TRACK_COLOR ,
447- unselectedTrackColor : DEFAULT_VALUES . UNSELECTED_TRACK_COLOR ,
448448 onValuesChange : ( ) => { } ,
449449 onValuesChangeFinish : ( ) => { } ,
450450 onValuesChangeStart : ( ) => { } ,
451451 leftMarkerAccessibilityLabel : DEFAULT_VALUES . LEFT_MARKER_LABEL ,
452452 rightMarkerAccessibilityLabel : DEFAULT_VALUES . RIGHT_MARKER_LABEL ,
453+ showMarkerLines : DEFAULT_VALUES . SHOW_MARKER_LINES ,
453454} ;
454455
455456export default RangeSlider ;
0 commit comments