Skip to content

Commit 6597d74

Browse files
authored
Merge pull request #1028 from yoution/yoution-issue-986
fix:issue-986
2 parents 38bf8ef + 05b9eb8 commit 6597d74

File tree

3 files changed

+35
-2
lines changed

3 files changed

+35
-2
lines changed

src/actions/challenges.js

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import {
1313
fetchResourceRoles,
1414
fetchChallengeTimelines,
1515
fetchChallengeTracks,
16+
fetchGroupDetail,
1617
updateChallenge,
1718
patchChallenge,
1819
createChallenge as createChallengeAPI,
@@ -182,6 +183,14 @@ export function loadChallengeDetails (projectId, challengeId) {
182183
}
183184
}
184185

186+
/**
187+
* Loads group details
188+
*/
189+
export function loadGroupDetails (groupIds) {
190+
const promiseAll = groupIds.map(id => fetchGroupDetail(id))
191+
return Promise.all(promiseAll)
192+
}
193+
185194
/**
186195
* Update challenge details
187196
*

src/components/ChallengeEditor/ChallengeView/index.js

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import React, { useState } from 'react'
1+
import React, { useState, useEffect } from 'react'
22
import _ from 'lodash'
33
import { Helmet } from 'react-helmet'
44
import PropTypes from 'prop-types'
@@ -21,6 +21,7 @@ import PhaseInput from '../../PhaseInput'
2121
import LegacyLinks from '../../LegacyLinks'
2222
import AssignedMemberField from '../AssignedMember-Field'
2323
import { getResourceRoleByName } from '../../../util/tc'
24+
import { loadGroupDetails } from '../../../actions/challenges'
2425
import Tooltip from '../../Tooltip'
2526
import { MESSAGE, REVIEW_TYPES } from '../../../config/constants'
2627

@@ -40,6 +41,18 @@ const ChallengeView = ({
4041
const challengeTrack = _.find(metadata.challengeTracks, { id: challenge.trackId })
4142

4243
const [openAdvanceSettings, setOpenAdvanceSettings] = useState(false)
44+
const [groups, setGroups] = useState('')
45+
46+
useEffect(() => {
47+
if (challenge.groups && challenge.groups.length > 0) {
48+
loadGroupDetails(challenge.groups).then(res => {
49+
const groups = _.map(res, 'name').join(', ')
50+
setGroups(groups)
51+
})
52+
} else {
53+
setGroups('')
54+
}
55+
}, [challenge.groups])
4356

4457
const getResourceFromProps = (name) => {
4558
const { resourceRoles } = metadata
@@ -167,7 +180,7 @@ const ChallengeView = ({
167180
</div>
168181
{openAdvanceSettings && (<div className={cn(styles.row, styles.topRow)}>
169182
<div className={styles.col}>
170-
<span><span className={styles.fieldTitle}>Groups:</span> {challenge.groups ? challenge.groups.join(', ') : ''}</span>
183+
<span><span className={styles.fieldTitle}>Groups:</span> {groups}</span>
171184
</div>
172185
</div>)}
173186
{

src/services/challenges.js

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,17 @@ export async function fetchGroups (filters) {
6565
return _.get(response, 'data', [])
6666
}
6767

68+
/**
69+
* Api request for fetching Group Detail
70+
*
71+
* @param groupId
72+
* @returns {Promise<*>}
73+
*/
74+
export async function fetchGroupDetail (id) {
75+
const response = await axiosInstance.get(`${GROUPS_API_URL}/${id}`)
76+
return _.get(response, 'data', [])
77+
}
78+
6879
/**
6980
* Api request for fetching timeline templates
7081
* @returns {Promise<*>}

0 commit comments

Comments
 (0)