@@ -282,7 +282,9 @@ class ChallengeEditor extends Component {
282
282
}
283
283
284
284
// calculate total cost of challenge
285
- this . setState ( { challenge : newChallenge } )
285
+ this . setState ( { challenge : newChallenge } , ( ) => {
286
+ this . validateChallenge ( )
287
+ } )
286
288
}
287
289
288
290
/**
@@ -331,7 +333,9 @@ class ChallengeEditor extends Component {
331
333
newChallenge [ field ] [ index ] [ option . key ] = option . name
332
334
}
333
335
}
334
- this . setState ( { challenge : newChallenge } )
336
+ this . setState ( { challenge : newChallenge } , ( ) => {
337
+ this . validateChallenge ( )
338
+ } )
335
339
}
336
340
}
337
341
@@ -350,7 +354,9 @@ class ChallengeEditor extends Component {
350
354
value = value . filter ( val => _ . values ( PRIZE_SETS_TYPE ) . includes ( val . type ) )
351
355
}
352
356
newChallenge [ field ] = value
353
- this . setState ( { challenge : newChallenge } )
357
+ this . setState ( { challenge : newChallenge } , ( ) => {
358
+ this . validateChallenge ( )
359
+ } )
354
360
}
355
361
356
362
/**
@@ -388,7 +394,9 @@ class ChallengeEditor extends Component {
388
394
} else {
389
395
_ . set ( newChallenge , `${ field } .${ index } .check` , checked )
390
396
}
391
- this . setState ( { challenge : newChallenge } )
397
+ this . setState ( { challenge : newChallenge } , ( ) => {
398
+ this . validateChallenge ( )
399
+ } )
392
400
}
393
401
394
402
/**
@@ -597,7 +605,7 @@ class ChallengeEditor extends Component {
597
605
}
598
606
599
607
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 , [ ] )
601
609
if ( ! challengePrizes || ! challengePrizes . prizes || challengePrizes . prizes . length === 0 ) {
602
610
return false
603
611
}
@@ -668,7 +676,9 @@ class ChallengeEditor extends Component {
668
676
let newChallenge = { ...challenge }
669
677
newChallenge [ field ] = options ? options . split ( ',' ) : [ ]
670
678
671
- this . setState ( { challenge : newChallenge } )
679
+ this . setState ( { challenge : newChallenge } , ( ) => {
680
+ this . validateChallenge ( )
681
+ } )
672
682
}
673
683
674
684
onUpdatePhase ( newValue , property , index ) {
@@ -1179,16 +1189,16 @@ class ChallengeEditor extends Component {
1179
1189
{ ! isLoading && < LastSavedDisplay timeLastSaved = { draftChallenge . data . updated } /> }
1180
1190
{ ! isLoading && ( ! isActive ) && ( ! isCompleted ) && < div className = { styles . buttonContainer } >
1181
1191
< 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 } />
1183
1196
</ div >
1184
1197
{ isDraft && < div className = { styles . button } >
1185
1198
< PrimaryButton text = { 'Launch as Active' } type = { 'info' } onClick = { this . toggleLaunch } />
1186
1199
</ div > }
1187
1200
</ div > }
1188
1201
{ ! isLoading && isActive && < div className = { styles . buttonContainer } >
1189
- < div className = { styles . button } >
1190
- < OutlineButton text = { isSaving ? 'Saving...' : 'Save' } type = { 'success' } onClick = { this . onSaveChallenge } />
1191
- </ div >
1192
1202
{ isTask && (
1193
1203
< div className = { styles . button } >
1194
1204
< PrimaryButton text = { 'Close Task' } type = { 'danger' } onClick = { this . openCloseTaskConfirmation } />
0 commit comments