Skip to content

Commit 3acc85a

Browse files
author
Sachin Maheshwari
committed
Merge branch 'develop' into feature/Auth0-RS256-Token
2 parents 4783bc8 + 2554605 commit 3acc85a

File tree

2 files changed

+24
-13
lines changed

2 files changed

+24
-13
lines changed

src/components/ChallengeEditor/TagsField/index.js

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import styles from './Tags-Field.module.scss'
66

77
const TagsField = ({ challengeTags, challenge, onUpdateMultiSelect, readOnly }) => {
88
const mapOps = item => ({ label: item.name, value: item.id })
9+
const existingTags = (challenge.tags && challenge.tags.length) ? challenge.tags.join(',') : ''
910
return (
1011
<>
1112
<div className={styles.row}>
@@ -15,19 +16,19 @@ const TagsField = ({ challengeTags, challenge, onUpdateMultiSelect, readOnly })
1516
<div className={cn(styles.field, styles.col2)}>
1617
<input type='hidden' />
1718
{readOnly ? (
18-
<span>{(challenge.tags && challenge.tags.length) ? challenge.tags.join(', ') : ''}</span>
19+
<span>{existingTags}</span>
1920
) : (<Select
2021
id='track-select'
2122
multi
2223
options={challengeTags.map(mapOps)}
2324
simpleValue
24-
value={(challenge.tags && challenge.tags.length) ? challenge.tags.join(',') : ''}
25+
value={existingTags}
2526
onChange={(value) => onUpdateMultiSelect(value, 'tags')}
2627
/>)}
2728
</div>
2829
</div>
2930

30-
{ !readOnly && challenge.submitTriggered && !challenge.tags.length && <div className={styles.row}>
31+
{ !readOnly && challenge.submitTriggered && (!challenge.tags || !challenge.tags.length) && <div className={styles.row}>
3132
<div className={cn(styles.field, styles.col1)} />
3233
<div className={cn(styles.field, styles.col2, styles.error)}>
3334
Select at least one tag

src/components/ChallengeEditor/index.js

Lines changed: 20 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)