@@ -24,12 +24,10 @@ const DEFAULT_VALUES = {
24
24
MARKER_SIZE : 32 ,
25
25
TRACK_HEIGHT : 2.5 ,
26
26
STEP : 1 ,
27
- MARKER_COLOR : 'white' ,
28
- SELECTED_TRACK_COLOR : '#2196F3' ,
29
- UNSELECTED_TRACK_COLOR : '#CECECE' ,
30
27
LEFT_MARKER_LABEL : 'Left handle' ,
31
28
RIGHT_MARKER_LABEL : 'Right handle' ,
32
29
MINIMUM_DISTANCE : MIN_MARKER_SPACING ,
30
+ SHOW_MARKER_LINES : true ,
33
31
} ;
34
32
35
33
const createDynamicStyles = ( props ) => ( {
@@ -40,20 +38,18 @@ const createDynamicStyles = (props) => ({
40
38
track : {
41
39
position : 'absolute' ,
42
40
height : props . trackHeight ,
43
- backgroundColor : props . unselectedTrackColor ,
44
41
width : props . sliderWidth ,
45
42
left : HORIZONTAL_PADDING ,
46
43
} ,
47
44
selectedTrack : {
48
45
position : 'absolute' ,
49
46
height : props . trackHeight ,
50
- backgroundColor : props . selectedTrackColor ,
51
47
} ,
52
48
marker : {
53
49
height : props . markerSize ,
54
50
width : props . markerSize ,
55
51
borderRadius : props . markerSize / 2 ,
56
- backgroundColor : props . markerColor ,
52
+ backgroundColor : 'white' , // Move default color here
57
53
position : 'absolute' ,
58
54
shadowColor : '#000' ,
59
55
shadowOffset : { width : 0 , height : 2 } ,
@@ -82,8 +78,8 @@ const RangeSlider = forwardRef(
82
78
step = DEFAULT_VALUES . STEP ,
83
79
84
80
// Style props
85
- selectedStyle ,
86
- unselectedStyle ,
81
+ selectedTrackStyle ,
82
+ unselectedTrackStyle ,
87
83
markerStyle,
88
84
pressedMarkerStyle,
89
85
containerStyle,
@@ -93,13 +89,9 @@ const RangeSlider = forwardRef(
93
89
markerSize = DEFAULT_VALUES . MARKER_SIZE ,
94
90
trackHeight = DEFAULT_VALUES . TRACK_HEIGHT ,
95
91
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 ,
99
92
100
93
// Behavior props
101
94
enabled = true ,
102
- snapsToStep = false ,
103
95
allowOverlap = false ,
104
96
105
97
// Callback props
@@ -110,6 +102,9 @@ const RangeSlider = forwardRef(
110
102
// Accessibility props
111
103
leftMarkerAccessibilityLabel = DEFAULT_VALUES . LEFT_MARKER_LABEL ,
112
104
rightMarkerAccessibilityLabel = DEFAULT_VALUES . RIGHT_MARKER_LABEL ,
105
+
106
+ // Marker lines prop
107
+ showMarkerLines = DEFAULT_VALUES . SHOW_MARKER_LINES ,
113
108
} ,
114
109
ref
115
110
) => {
@@ -186,15 +181,13 @@ const RangeSlider = forwardRef(
186
181
const leftValue = convertPositionToValue ( leftPosition ) ;
187
182
const rightValue = convertPositionToValue ( rightPosition ) ;
188
183
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
+ ] ;
196
189
} ,
197
- [ convertPositionToValue , step , snapsToStep ]
190
+ [ convertPositionToValue , step ]
198
191
) ;
199
192
200
193
const leftGesture = useAnimatedGestureHandler ( {
@@ -293,9 +286,6 @@ const RangeSlider = forwardRef(
293
286
sliderWidth,
294
287
markerSize,
295
288
trackHeight,
296
- markerColor,
297
- selectedTrackColor,
298
- unselectedTrackColor,
299
289
enabled,
300
290
} ) ;
301
291
@@ -306,12 +296,19 @@ const RangeSlider = forwardRef(
306
296
< View
307
297
style = { [ staticStyles . container , containerStyle , { direction : 'ltr' } ] }
308
298
>
309
- < View style = { [ dynamicStyles . track , unselectedStyle ] } />
299
+ < View
300
+ style = { [
301
+ dynamicStyles . track ,
302
+ { backgroundColor : '#CECECE' } , // Default color
303
+ unselectedTrackStyle ,
304
+ ] }
305
+ />
310
306
311
307
< Animated . View
312
308
style = { [
313
309
dynamicStyles . selectedTrack ,
314
- selectedStyle ,
310
+ { backgroundColor : '#2196F3' } , // Default color
311
+ selectedTrackStyle ,
315
312
animatedTrackStyle ,
316
313
] }
317
314
/>
@@ -334,9 +331,13 @@ const RangeSlider = forwardRef(
334
331
leftMarkerStyle ,
335
332
] }
336
333
>
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
+ ) }
340
341
</ Animated . View >
341
342
</ PanGestureHandler >
342
343
@@ -358,9 +359,13 @@ const RangeSlider = forwardRef(
358
359
rightMarkerStyle ,
359
360
] }
360
361
>
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
+ ) }
364
369
</ Animated . View >
365
370
</ PanGestureHandler >
366
371
</ View >
@@ -404,8 +409,8 @@ RangeSlider.propTypes = {
404
409
step : PropTypes . number ,
405
410
406
411
// Style props
407
- selectedStyle : PropTypes . object ,
408
- unselectedStyle : PropTypes . object ,
412
+ selectedTrackStyle : PropTypes . object ,
413
+ unselectedTrackStyle : PropTypes . object ,
409
414
markerStyle : PropTypes . object ,
410
415
pressedMarkerStyle : PropTypes . object ,
411
416
containerStyle : PropTypes . object ,
@@ -415,13 +420,9 @@ RangeSlider.propTypes = {
415
420
markerSize : PropTypes . number ,
416
421
trackHeight : PropTypes . number ,
417
422
minimumDistance : PropTypes . number ,
418
- markerColor : PropTypes . string ,
419
- selectedTrackColor : PropTypes . string ,
420
- unselectedTrackColor : PropTypes . string ,
421
423
422
424
// Behavior props
423
425
enabled : PropTypes . bool ,
424
- snapsToStep : PropTypes . bool ,
425
426
allowOverlap : PropTypes . bool ,
426
427
427
428
// Callback props
@@ -432,6 +433,9 @@ RangeSlider.propTypes = {
432
433
// Accessibility props
433
434
leftMarkerAccessibilityLabel : PropTypes . string ,
434
435
rightMarkerAccessibilityLabel : PropTypes . string ,
436
+
437
+ // Marker lines prop
438
+ showMarkerLines : PropTypes . bool ,
435
439
} ;
436
440
437
441
RangeSlider . defaultProps = {
@@ -440,16 +444,13 @@ RangeSlider.defaultProps = {
440
444
markerSize : DEFAULT_VALUES . MARKER_SIZE ,
441
445
trackHeight : DEFAULT_VALUES . TRACK_HEIGHT ,
442
446
enabled : true ,
443
- snapsToStep : false ,
444
447
allowOverlap : false ,
445
- markerColor : DEFAULT_VALUES . MARKER_COLOR ,
446
- selectedTrackColor : DEFAULT_VALUES . SELECTED_TRACK_COLOR ,
447
- unselectedTrackColor : DEFAULT_VALUES . UNSELECTED_TRACK_COLOR ,
448
448
onValuesChange : ( ) => { } ,
449
449
onValuesChangeFinish : ( ) => { } ,
450
450
onValuesChangeStart : ( ) => { } ,
451
451
leftMarkerAccessibilityLabel : DEFAULT_VALUES . LEFT_MARKER_LABEL ,
452
452
rightMarkerAccessibilityLabel : DEFAULT_VALUES . RIGHT_MARKER_LABEL ,
453
+ showMarkerLines : DEFAULT_VALUES . SHOW_MARKER_LINES ,
453
454
} ;
454
455
455
456
export default RangeSlider ;
0 commit comments