@@ -103,7 +103,8 @@ class ChallengeEditor extends Component {
103
103
// NOTE that we have to keep `assignedMemberDetails` in the local state, rather than just get it from the props
104
104
// because we can update it locally when we choose another assigned user, so we don't have to wait for user details
105
105
// to be loaded from Member Service as we already know it in such case
106
- assignedMemberDetails : this . props . assignedMemberDetails
106
+ assignedMemberDetails : this . props . assignedMemberDetails ,
107
+ isPhaseChange : false
107
108
}
108
109
this . onUpdateInput = this . onUpdateInput . bind ( this )
109
110
this . onUpdateSelect = this . onUpdateSelect . bind ( this )
@@ -839,7 +840,11 @@ class ChallengeEditor extends Component {
839
840
for ( let index = 0 ; index < phases . length ; ++ index ) {
840
841
newChallenge . phases [ index ] . isDurationActive =
841
842
moment ( newChallenge . phases [ index ] [ 'scheduledEndDate' ] ) . isAfter ( )
842
- newChallenge . phases [ index ] . isStartTimeActive = true
843
+ if ( newChallenge . phases [ index ] . name === 'Submission' ) {
844
+ newChallenge . phases [ index ] . isStartTimeActive = true
845
+ } else {
846
+ newChallenge . phases [ index ] . isStartTimeActive = index <= 0
847
+ }
843
848
newChallenge . phases [ index ] . isOpen =
844
849
newChallenge . phases [ index ] . isDurationActive
845
850
}
@@ -861,8 +866,8 @@ class ChallengeEditor extends Component {
861
866
. format ( 'MM/DD/YYYY HH:mm' )
862
867
} else {
863
868
newChallenge . phases [ index ] [ 'duration' ] = phase . duration
864
- newChallenge . phases [ index ] [ 'scheduledStartDate' ] = phase . startDate
865
- newChallenge . phases [ index ] [ 'scheduledEndDate' ] = phase . endDate
869
+ newChallenge . phases [ index ] [ 'scheduledStartDate' ] = moment ( phase . startDate ) . toISOString ( )
870
+ newChallenge . phases [ index ] [ 'scheduledEndDate' ] = moment ( phase . endDate ) . toISOString ( )
866
871
}
867
872
868
873
for ( let phaseIndex = index + 1 ; phaseIndex < phases . length ; ++ phaseIndex ) {
@@ -882,7 +887,9 @@ class ChallengeEditor extends Component {
882
887
. add ( newChallenge . phases [ phaseIndex ] [ 'duration' ] , 'hours' )
883
888
. format ( 'MM/DD/YYYY HH:mm' )
884
889
}
885
-
890
+ if ( ! _ . isEqual ( newChallenge . phases [ index ] , phases [ index ] ) ) {
891
+ this . setState ( { isPhaseChange : true } )
892
+ }
886
893
this . setState ( { challenge : newChallenge } )
887
894
888
895
setTimeout ( ( ) => {
@@ -891,6 +898,7 @@ class ChallengeEditor extends Component {
891
898
}
892
899
893
900
collectChallengeData ( status ) {
901
+ const { isPhaseChange } = this . state
894
902
const { attachments, metadata } = this . props
895
903
const challenge = pick ( [
896
904
'phases' ,
@@ -938,6 +946,7 @@ class ChallengeEditor extends Component {
938
946
if ( challenge . terms && challenge . terms . length === 0 ) delete challenge . terms
939
947
delete challenge . attachments
940
948
delete challenge . reviewType
949
+ if ( ! isPhaseChange ) delete challenge . phases
941
950
return _ . cloneDeep ( challenge )
942
951
}
943
952
0 commit comments