diff --git a/src/actions/challenges.js b/src/actions/challenges.js index eca362f6..0cc3373c 100644 --- a/src/actions/challenges.js +++ b/src/actions/challenges.js @@ -13,6 +13,7 @@ import { fetchResourceRoles, fetchChallengeTimelines, fetchChallengeTracks, + fetchGroupDetail, updateChallenge, patchChallenge, createChallenge as createChallengeAPI, @@ -182,6 +183,14 @@ export function loadChallengeDetails (projectId, challengeId) { } } +/** + * Loads group details + */ +export function loadGroupDetails (groupIds) { + const promiseAll = groupIds.map(id => fetchGroupDetail(id)) + return Promise.all(promiseAll) +} + /** * Update challenge details * diff --git a/src/components/ChallengeEditor/ChallengeView/index.js b/src/components/ChallengeEditor/ChallengeView/index.js index 3dbd0de1..b2316299 100644 --- a/src/components/ChallengeEditor/ChallengeView/index.js +++ b/src/components/ChallengeEditor/ChallengeView/index.js @@ -1,4 +1,4 @@ -import React, { useState } from 'react' +import React, { useState, useEffect } from 'react' import _ from 'lodash' import { Helmet } from 'react-helmet' import PropTypes from 'prop-types' @@ -21,6 +21,7 @@ import PhaseInput from '../../PhaseInput' import LegacyLinks from '../../LegacyLinks' import AssignedMemberField from '../AssignedMember-Field' import { getResourceRoleByName } from '../../../util/tc' +import { loadGroupDetails } from '../../../actions/challenges' import Tooltip from '../../Tooltip' import { MESSAGE, REVIEW_TYPES } from '../../../config/constants' @@ -40,6 +41,18 @@ const ChallengeView = ({ const challengeTrack = _.find(metadata.challengeTracks, { id: challenge.trackId }) const [openAdvanceSettings, setOpenAdvanceSettings] = useState(false) + const [groups, setGroups] = useState('') + + useEffect(() => { + if (challenge.groups && challenge.groups.length > 0) { + loadGroupDetails(challenge.groups).then(res => { + const groups = _.map(res, 'name').join(', ') + setGroups(groups) + }) + } else { + setGroups('') + } + }, [challenge.groups]) const getResourceFromProps = (name) => { const { resourceRoles } = metadata @@ -167,7 +180,7 @@ const ChallengeView = ({ {openAdvanceSettings && (