@@ -282,7 +282,9 @@ class ChallengeEditor extends Component {
282282 }
283283
284284 // calculate total cost of challenge
285- this . setState ( { challenge : newChallenge } )
285+ this . setState ( { challenge : newChallenge } , ( ) => {
286+ this . validateChallenge ( )
287+ } )
286288 }
287289
288290 /**
@@ -331,7 +333,9 @@ class ChallengeEditor extends Component {
331333 newChallenge [ field ] [ index ] [ option . key ] = option . name
332334 }
333335 }
334- this . setState ( { challenge : newChallenge } )
336+ this . setState ( { challenge : newChallenge } , ( ) => {
337+ this . validateChallenge ( )
338+ } )
335339 }
336340 }
337341
@@ -350,7 +354,9 @@ class ChallengeEditor extends Component {
350354 value = value . filter ( val => _ . values ( PRIZE_SETS_TYPE ) . includes ( val . type ) )
351355 }
352356 newChallenge [ field ] = value
353- this . setState ( { challenge : newChallenge } )
357+ this . setState ( { challenge : newChallenge } , ( ) => {
358+ this . validateChallenge ( )
359+ } )
354360 }
355361
356362 /**
@@ -388,7 +394,9 @@ class ChallengeEditor extends Component {
388394 } else {
389395 _ . set ( newChallenge , `${ field } .${ index } .check` , checked )
390396 }
391- this . setState ( { challenge : newChallenge } )
397+ this . setState ( { challenge : newChallenge } , ( ) => {
398+ this . validateChallenge ( )
399+ } )
392400 }
393401
394402 /**
@@ -597,7 +605,7 @@ class ChallengeEditor extends Component {
597605 }
598606
599607 isValidChallengePrizes ( ) {
600- const challengePrizes = this . state . challenge . prizeSets . find ( p => p . type === PRIZE_SETS_TYPE . CHALLENGE_PRIZES )
608+ const challengePrizes = _ . find ( this . state . challenge . prizeSets , p => p . type === PRIZE_SETS_TYPE . CHALLENGE_PRIZES , [ ] )
601609 if ( ! challengePrizes || ! challengePrizes . prizes || challengePrizes . prizes . length === 0 ) {
602610 return false
603611 }
@@ -668,7 +676,9 @@ class ChallengeEditor extends Component {
668676 let newChallenge = { ...challenge }
669677 newChallenge [ field ] = options ? options . split ( ',' ) : [ ]
670678
671- this . setState ( { challenge : newChallenge } )
679+ this . setState ( { challenge : newChallenge } , ( ) => {
680+ this . validateChallenge ( )
681+ } )
672682 }
673683
674684 onUpdatePhase ( newValue , property , index ) {
@@ -1179,16 +1189,16 @@ class ChallengeEditor extends Component {
11791189 { ! isLoading && < LastSavedDisplay timeLastSaved = { draftChallenge . data . updated } /> }
11801190 { ! isLoading && ( ! isActive ) && ( ! isCompleted ) && < div className = { styles . buttonContainer } >
11811191 < div className = { styles . button } >
1182- < OutlineButton text = { 'Save Draft' } type = { 'success' } onClick = { this . createDraftHandler } />
1192+ < OutlineButton text = { isSaving ? 'Saving...' : 'Save' } type = { 'success' } onClick = { this . onSaveChallenge } />
1193+ </ div >
1194+ < div className = { styles . button } >
1195+ < PrimaryButton text = { 'Save Draft' } type = { 'info' } onClick = { this . createDraftHandler } />
11831196 </ div >
11841197 { isDraft && < div className = { styles . button } >
11851198 < PrimaryButton text = { 'Launch as Active' } type = { 'info' } onClick = { this . toggleLaunch } />
11861199 </ div > }
11871200 </ div > }
11881201 { ! isLoading && isActive && < div className = { styles . buttonContainer } >
1189- < div className = { styles . button } >
1190- < OutlineButton text = { isSaving ? 'Saving...' : 'Save' } type = { 'success' } onClick = { this . onSaveChallenge } />
1191- </ div >
11921202 { isTask && (
11931203 < div className = { styles . button } >
11941204 < PrimaryButton text = { 'Close Task' } type = { 'danger' } onClick = { this . openCloseTaskConfirmation } />
0 commit comments