@@ -195,7 +195,7 @@ let DaySlot = React.createClass({
195
195
let selector = this . _selector = new Selection ( ( ) => findDOMNode ( this ) )
196
196
197
197
let selectionState = ( { x, y } ) => {
198
- let { date , step, min } = this . props ;
198
+ let { step, min, max } = this . props ;
199
199
let { top, bottom } = getBoundsForNode ( node )
200
200
201
201
let mins = this . _totalMin ;
@@ -204,7 +204,7 @@ let DaySlot = React.createClass({
204
204
205
205
let current = ( y - top ) / range ;
206
206
207
- current = snapToSlot ( minToDate ( mins * current , date ) , step )
207
+ current = snapToSlot ( minToDate ( mins * current , min ) , step )
208
208
209
209
if ( ! this . state . selecting )
210
210
this . _initialDateSlot = current
@@ -214,9 +214,8 @@ let DaySlot = React.createClass({
214
214
if ( dates . eq ( initial , current , 'minutes' ) )
215
215
current = dates . add ( current , step , 'minutes' )
216
216
217
- //end = snapToSlot(minToDate(mins * end, date), step)
218
- let start = dates . min ( initial , current )
219
- let end = dates . max ( initial , current )
217
+ let start = dates . max ( min , dates . min ( initial , current ) )
218
+ let end = dates . min ( max , dates . max ( initial , current ) )
220
219
221
220
return {
222
221
selecting : true ,
@@ -279,9 +278,11 @@ let DaySlot = React.createClass({
279
278
280
279
281
280
function minToDate ( min , date ) {
282
- var dt = new Date ( date ) ;
281
+ var dt = new Date ( date )
282
+ , totalMins = dates . diff ( dates . startOf ( date , 'day' ) , date , 'minutes' ) ;
283
+
283
284
dt = dates . hours ( dt , 0 ) ;
284
- dt = dates . minutes ( dt , min ) ;
285
+ dt = dates . minutes ( dt , totalMins + min ) ;
285
286
dt = dates . seconds ( dt , 0 )
286
287
return dates . milliseconds ( dt , 0 )
287
288
}
0 commit comments