@@ -813,10 +813,28 @@ class ChallengeEditor extends Component {
813813 }
814814
815815 onUpdatePhaseDate ( phase , index ) {
816+ const { phases } = this . state . challenge
816817 let newChallenge = _ . cloneDeep ( this . state . challenge )
817818 newChallenge . phases [ index ] [ 'duration' ] = phase . duration
818- newChallenge . phases [ index ] [ 'scheduledStartDate' ] = phase . scheduledStartDate
819- newChallenge . phases [ index ] [ 'scheduledEndDate' ] = phase . scheduledEndDate
819+ newChallenge . phases [ index ] [ 'scheduledStartDate' ] = phase . startDate
820+ newChallenge . phases [ index ] [ 'scheduledEndDate' ] = phase . endDate
821+
822+ let lastDate = phase . endDate
823+ for ( let phaseIndex = index + 1 ; phaseIndex < phases . length ; phaseIndex ++ ) {
824+ if ( moment ( phases [ phaseIndex ] [ 'scheduledStartDate' ] ) . isBefore ( lastDate ) ) {
825+ lastDate = moment ( lastDate ) . add ( '1' , 'hour' ) . format ( 'MM/DD/YYYY HH:mm' )
826+ newChallenge . phases [ phaseIndex ] [ 'scheduledStartDate' ] = lastDate
827+
828+ if ( moment ( phases [ phaseIndex ] [ 'scheduledEndDate' ] ) . isBefore ( lastDate ) ) {
829+ lastDate = moment ( lastDate ) . add ( '1' , 'hour' ) . format ( 'MM/DD/YYYY HH:mm' )
830+ newChallenge . phases [ phaseIndex ] [ 'scheduledEndDate' ] = lastDate
831+ }
832+
833+ newChallenge . phases [ phaseIndex ] [ 'duration' ] =
834+ moment ( newChallenge . phases [ phaseIndex ] [ 'scheduledEndDate' ] ) . diff ( newChallenge . phases [ phaseIndex ] [ 'scheduledStartDate' ] , 'hours' )
835+ }
836+ }
837+
820838 this . setState ( { challenge : newChallenge } )
821839 }
822840
@@ -1594,7 +1612,8 @@ class ChallengeEditor extends Component {
15941612 phase = { phase }
15951613 phaseIndex = { uuidv4 ( ) }
15961614 readOnly = { false }
1597- isActive = { this . isPhaseEditable ( index ) }
1615+ // isActive={this.isPhaseEditable(index)}
1616+ isActive
15981617 onUpdatePhase = { ( item ) => {
15991618 if ( ( item . startDate && ! moment ( item . startDate ) . isSame ( phase . scheduledStartDate ) ) ||
16001619 ( item . endDate && ! moment ( item . endDate ) . isSame ( phase . scheduledEndDate ) )
0 commit comments