@@ -103,7 +103,8 @@ class ChallengeEditor extends Component {
103103 // NOTE that we have to keep `assignedMemberDetails` in the local state, rather than just get it from the props
104104 // because we can update it locally when we choose another assigned user, so we don't have to wait for user details
105105 // 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
107108 }
108109 this . onUpdateInput = this . onUpdateInput . bind ( this )
109110 this . onUpdateSelect = this . onUpdateSelect . bind ( this )
@@ -839,7 +840,11 @@ class ChallengeEditor extends Component {
839840 for ( let index = 0 ; index < phases . length ; ++ index ) {
840841 newChallenge . phases [ index ] . isDurationActive =
841842 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+ }
843848 newChallenge . phases [ index ] . isOpen =
844849 newChallenge . phases [ index ] . isDurationActive
845850 }
@@ -861,8 +866,8 @@ class ChallengeEditor extends Component {
861866 . format ( 'MM/DD/YYYY HH:mm' )
862867 } else {
863868 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 ( )
866871 }
867872
868873 for ( let phaseIndex = index + 1 ; phaseIndex < phases . length ; ++ phaseIndex ) {
@@ -882,7 +887,9 @@ class ChallengeEditor extends Component {
882887 . add ( newChallenge . phases [ phaseIndex ] [ 'duration' ] , 'hours' )
883888 . format ( 'MM/DD/YYYY HH:mm' )
884889 }
885-
890+ if ( ! _ . isEqual ( newChallenge . phases [ index ] , phases [ index ] ) ) {
891+ this . setState ( { isPhaseChange : true } )
892+ }
886893 this . setState ( { challenge : newChallenge } )
887894
888895 setTimeout ( ( ) => {
@@ -891,6 +898,7 @@ class ChallengeEditor extends Component {
891898 }
892899
893900 collectChallengeData ( status ) {
901+ const { isPhaseChange } = this . state
894902 const { attachments, metadata } = this . props
895903 const challenge = pick ( [
896904 'phases' ,
@@ -938,6 +946,7 @@ class ChallengeEditor extends Component {
938946 if ( challenge . terms && challenge . terms . length === 0 ) delete challenge . terms
939947 delete challenge . attachments
940948 delete challenge . reviewType
949+ if ( ! isPhaseChange ) delete challenge . phases
941950 return _ . cloneDeep ( challenge )
942951 }
943952
0 commit comments