@@ -15,7 +15,8 @@ import {
1515 PRIZE_SETS_TYPE ,
1616 DEFAULT_TERM_UUID ,
1717 DEFAULT_NDA_UUID ,
18- SUBMITTER_ROLE_UUID
18+ SUBMITTER_ROLE_UUID ,
19+ CREATE_FORUM_TYPE_IDS
1920} from '../../config/constants'
2021import { PrimaryButton , OutlineButton } from '../Buttons'
2122import TrackField from './Track-Field'
@@ -767,6 +768,10 @@ class ChallengeEditor extends Component {
767768 phases : this . getTemplatePhases ( defaultTemplate )
768769 // prizeSets: this.getDefaultPrizeSets()
769770 }
771+ const discussions = this . getDiscussionsConfig ( newChallenge )
772+ if ( discussions ) {
773+ newChallenge . discussions = discussions
774+ }
770775 try {
771776 const action = await createChallenge ( newChallenge )
772777 const draftChallenge = {
@@ -779,6 +784,18 @@ class ChallengeEditor extends Component {
779784 }
780785 }
781786
787+ getDiscussionsConfig ( challenge ) {
788+ if ( _ . includes ( CREATE_FORUM_TYPE_IDS , challenge . typeId ) ) {
789+ return ( [
790+ {
791+ name : `${ challenge . name } Discussion` ,
792+ type : 'challenge' ,
793+ provider : 'vanilla'
794+ }
795+ ] )
796+ }
797+ }
798+
782799 getTemplatePhases ( template ) {
783800 const timelinePhaseIds = template . phases . map ( timelinePhase => timelinePhase . phaseId || timelinePhase )
784801 const validPhases = _ . cloneDeep ( this . props . metadata . challengePhases ) . filter ( challengePhase => {
@@ -919,11 +936,7 @@ class ChallengeEditor extends Component {
919936 }
920937
921938 async onlySave ( ) {
922- this . updateAllChallengeInfo ( this . state . challenge . status , ( ) => {
923- this . resetModal ( )
924- const { history } = this . props
925- history . push ( './view' )
926- } )
939+ this . updateAllChallengeInfo ( this . state . challenge . status )
927940 }
928941
929942 getResourceRoleByName ( name ) {
@@ -1008,7 +1021,7 @@ class ChallengeEditor extends Component {
10081021 return < div > Error loading challenge</ div >
10091022 }
10101023 const isTask = _ . get ( challenge , 'task.isTask' , false )
1011- const { assignedMemberDetails } = this . state
1024+ const { assignedMemberDetails, error } = this . state
10121025 let isActive = false
10131026 let isDraft = false
10141027 let isCompleted = false
@@ -1044,7 +1057,6 @@ class ChallengeEditor extends Component {
10441057 let activateModal = null
10451058 let closeTaskModal = null
10461059 let draftModal = null
1047- let savedModal = null
10481060
10491061 let { type } = challenge
10501062 if ( ! type ) {
@@ -1056,20 +1068,6 @@ class ChallengeEditor extends Component {
10561068 }
10571069 }
10581070 }
1059- if ( ! isNew && challenge . status === 'New' && isLaunch && isConfirm ) {
1060- savedModal = (
1061- < AlertModal
1062- title = 'Saved Challenge'
1063- message = { `Challenge "${ challenge . name } " is saved successfuly` }
1064- theme = { theme }
1065- onCancel = { this . resetModal }
1066- closeText = 'Close'
1067- okText = 'View Challenge'
1068- okLink = './view'
1069- onClose = { this . resetModal }
1070- />
1071- )
1072- }
10731071
10741072 if ( ! isNew && isLaunch && ! isConfirm ) {
10751073 activateModal = (
@@ -1162,6 +1160,8 @@ class ChallengeEditor extends Component {
11621160 )
11631161 }
11641162
1163+ const errorContainer = < div className = { styles . errorContainer } > < div className = { styles . errorMessage } > { error } </ div > </ div >
1164+
11651165 const actionButtons = < React . Fragment >
11661166 { ! isLoading && this . state . hasValidationErrors && < div className = { styles . error } > Please fix the errors before saving</ div > }
11671167 {
@@ -1182,7 +1182,7 @@ class ChallengeEditor extends Component {
11821182 < OutlineButton text = { 'Save Draft' } type = { 'success' } onClick = { this . createDraftHandler } />
11831183 </ div >
11841184 { isDraft && < div className = { styles . button } >
1185- < PrimaryButton text = { 'Launch as Active' } type = { 'info' } submit />
1185+ < PrimaryButton text = { 'Launch as Active' } type = { 'info' } onClick = { this . toggleLaunch } />
11861186 </ div > }
11871187 </ div > }
11881188 { ! isLoading && isActive && < div className = { styles . buttonContainer } >
@@ -1211,10 +1211,11 @@ class ChallengeEditor extends Component {
12111211 < TypeField types = { metadata . challengeTypes } onUpdateSelect = { this . onUpdateSelect } challenge = { challenge } />
12121212 < ChallengeNameField challenge = { challenge } onUpdateInput = { this . onUpdateInput } />
12131213 </ div >
1214+ { errorContainer }
12141215 { actionButtons }
12151216 </ form >
12161217 ) : (
1217- < form name = 'challenge-info-form' noValidate autoComplete = 'off' onSubmit = { this . toggleLaunch } >
1218+ < form name = 'challenge-info-form' noValidate autoComplete = 'off' onSubmit = { ( e ) => e . preventDefault ( ) } >
12181219 < div className = { styles . group } >
12191220
12201221 < div className = { cn ( styles . row , styles . topRow ) } >
@@ -1331,6 +1332,7 @@ class ChallengeEditor extends Component {
13311332 < CopilotFeeField challenge = { challenge } onUpdateOthers = { this . onUpdateOthers } />
13321333 < ChallengeTotalField challenge = { challenge } />
13331334 </ div >
1335+ { errorContainer }
13341336 { actionButtons }
13351337 </ form >
13361338 )
@@ -1349,7 +1351,6 @@ class ChallengeEditor extends Component {
13491351 < div className = { styles . container } >
13501352 { activateModal }
13511353 { draftModal }
1352- { savedModal }
13531354 { closeTaskModal }
13541355 < div className = { styles . formContainer } >
13551356 { challengeForm }
0 commit comments