Skip to content

Commit 8f0e2ce

Browse files
committed
Don’t require tags
1 parent b10ce03 commit 8f0e2ce

File tree

3 files changed

+58
-58
lines changed

3 files changed

+58
-58
lines changed

src/components/ChallengeEditor/SkillsField/index.js

Lines changed: 35 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -29,33 +29,42 @@ const SkillsField = ({ readOnly, challenge, onUpdateSkills }) => {
2929
const existingSkills = useMemo(() => selectedSkills.map(item => item.label).join(','), [selectedSkills])
3030

3131
return (
32-
<div className={styles.row}>
33-
<div className={cn(styles.field, styles.col1)}>
34-
<label htmlFor='keywords'>Skills :</label>
32+
<>
33+
<div className={styles.row}>
34+
<div className={cn(styles.field, styles.col1)}>
35+
<label htmlFor='keywords'>Skills {!readOnly && (<span>*</span>)} :</label>
36+
</div>
37+
<div className={cn(styles.field, styles.col2)}>
38+
<input type='hidden' />
39+
{readOnly ? (
40+
<span>{existingSkills}</span>
41+
) : (
42+
<Select
43+
id='skill-select'
44+
isMulti
45+
simpleValue
46+
isAsync
47+
value={selectedSkills}
48+
onChange={(values) => {
49+
onUpdateSkills((values || []).map(value => ({
50+
name: value.label,
51+
id: value.value
52+
})))
53+
}}
54+
cacheOptions
55+
loadOptions={fetchSkills}
56+
/>
57+
)}
58+
</div>
3559
</div>
36-
<div className={cn(styles.field, styles.col2)}>
37-
<input type='hidden' />
38-
{readOnly ? (
39-
<span>{existingSkills}</span>
40-
) : (
41-
<Select
42-
id='skill-select'
43-
isMulti
44-
simpleValue
45-
isAsync
46-
value={selectedSkills}
47-
onChange={(values) => {
48-
onUpdateSkills((values || []).map(value => ({
49-
name: value.label,
50-
id: value.value
51-
})))
52-
}}
53-
cacheOptions
54-
loadOptions={fetchSkills}
55-
/>
56-
)}
57-
</div>
58-
</div>
60+
61+
{ !readOnly && challenge.submitTriggered && (!selectedSkills || !selectedSkills.length) && <div className={styles.row}>
62+
<div className={cn(styles.field, styles.col1)} />
63+
<div className={cn(styles.field, styles.col2, styles.error)}>
64+
Select at least one skill
65+
</div>
66+
</div> }
67+
</>
5968
)
6069
}
6170

src/components/ChallengeEditor/TagsField/index.js

Lines changed: 22 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -26,38 +26,29 @@ const TagsField = ({ challenge, onUpdateMultiSelect, readOnly }) => {
2626
}, [challenge.tags])
2727

2828
return (
29-
<>
30-
<div className={styles.row}>
31-
<div className={cn(styles.field, styles.col1)}>
32-
<label htmlFor='keywords'>Tags{!readOnly && (<span>*</span>)} :</label>
33-
</div>
34-
<div className={cn(styles.field, styles.col2)}>
35-
<input type='hidden' />
36-
{readOnly ? (
37-
<span>{existingTags}</span>
38-
) : (
39-
<Select
40-
id='track-select'
41-
isMulti
42-
simpleValue
43-
value={selectedValues}
44-
onChange={(value) => onUpdateMultiSelect([
45-
...(value || []),
46-
...selectedSpecialChallengeValues
47-
], 'tags')}
48-
isCreatable
49-
/>
50-
)}
51-
</div>
29+
<div className={styles.row}>
30+
<div className={cn(styles.field, styles.col1)}>
31+
<label htmlFor='keywords'>Tags{!readOnly && (<span>*</span>)} :</label>
5232
</div>
53-
54-
{ !readOnly && challenge.submitTriggered && (!challenge.tags || !challenge.tags.length) && <div className={styles.row}>
55-
<div className={cn(styles.field, styles.col1)} />
56-
<div className={cn(styles.field, styles.col2, styles.error)}>
57-
Select at least one tag
58-
</div>
59-
</div> }
60-
</>
33+
<div className={cn(styles.field, styles.col2)}>
34+
<input type='hidden' />
35+
{readOnly ? (
36+
<span>{existingTags}</span>
37+
) : (
38+
<Select
39+
id='track-select'
40+
isMulti
41+
simpleValue
42+
value={selectedValues}
43+
onChange={(value) => onUpdateMultiSelect([
44+
...(value || []),
45+
...selectedSpecialChallengeValues
46+
], 'tags')}
47+
isCreatable
48+
/>
49+
)}
50+
</div>
51+
</div>
6152
)
6253
}
6354

src/components/ChallengeEditor/index.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -794,7 +794,7 @@ class ChallengeEditor extends Component {
794794
'typeId',
795795
'name',
796796
'description',
797-
'tags',
797+
'skills',
798798
'prizeSets'
799799
]
800800
let isRequiredMissing = false

0 commit comments

Comments
 (0)