@@ -280,16 +280,26 @@ class Calendar extends PureComponent {
280
280
) ;
281
281
}
282
282
onDragSelectionStart ( date ) {
283
- this . setState ( {
284
- drag : {
285
- status : true ,
286
- range : { startDate : date , endDate : date } ,
287
- disablePreview : true ,
288
- } ,
289
- } ) ;
283
+ const { onChange, dragSelectionEnabled } = this . props ;
284
+
285
+ if ( dragSelectionEnabled ) {
286
+ this . setState ( {
287
+ drag : {
288
+ status : true ,
289
+ range : { startDate : date , endDate : date } ,
290
+ disablePreview : true ,
291
+ } ,
292
+ } ) ;
293
+ } else {
294
+ onChange && onChange ( date ) ;
295
+ }
290
296
}
297
+
291
298
onDragSelectionEnd ( date ) {
292
- const { updateRange, displayMode, onChange } = this . props ;
299
+ const { updateRange, displayMode, onChange, dragSelectionEnabled } = this . props ;
300
+
301
+ if ( ! dragSelectionEnabled ) return ;
302
+
293
303
if ( displayMode === 'date' || ! this . state . drag . status ) {
294
304
onChange && onChange ( date ) ;
295
305
return ;
@@ -308,7 +318,7 @@ class Calendar extends PureComponent {
308
318
}
309
319
onDragSelectionMove ( date ) {
310
320
const { drag } = this . state ;
311
- if ( ! drag . status ) return ;
321
+ if ( ! drag . status || ! this . props . dragSelectionEnabled ) return ;
312
322
this . setState ( {
313
323
drag : {
314
324
status : drag . status ,
@@ -474,6 +484,7 @@ Calendar.defaultProps = {
474
484
maxDate : addYears ( new Date ( ) , 20 ) ,
475
485
minDate : addYears ( new Date ( ) , - 100 ) ,
476
486
rangeColors : [ '#3d91ff' , '#3ecf8e' , '#fed14c' ] ,
487
+ dragSelectionEnabled : true ,
477
488
} ;
478
489
479
490
Calendar . propTypes = {
@@ -517,6 +528,7 @@ Calendar.propTypes = {
517
528
direction : PropTypes . oneOf ( [ 'vertical' , 'horizontal' ] ) ,
518
529
navigatorRenderer : PropTypes . func ,
519
530
rangeColors : PropTypes . arrayOf ( PropTypes . string ) ,
531
+ dragSelectionEnabled : PropTypes . bool ,
520
532
} ;
521
533
522
534
export default Calendar ;
0 commit comments