Skip to content

Commit 96c41ec

Browse files
Merge pull request #24 from topcoder-platform/integration-v5-challenge-api
Integration v5 challenge api
2 parents d230f8d + 163da0b commit 96c41ec

File tree

7 files changed

+25
-13
lines changed

7 files changed

+25
-13
lines changed

__tests__/shared/components/challenge-listing/ChallengeCard/__snapshots__/index.jsx.snap

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@ exports[`Matches shallow shapshot shapshot 2 1`] = `
6666
"currentPhases": Array [
6767
"Registration",
6868
],
69+
"events": Array [],
6970
"id": "1",
7071
"legacy": Object {
7172
"track": "DATA_SCIENCE",
@@ -109,6 +110,7 @@ exports[`Matches shallow shapshot shapshot 3 1`] = `
109110
"currentPhases": Array [
110111
"Registration",
111112
],
113+
"events": Array [],
112114
"id": "long id",
113115
"legacy": Object {
114116
"track": "DATA_SCIENCE",

__tests__/shared/components/challenge-listing/ChallengeCard/index.jsx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ const mockData2 = {
5656
id: '1',
5757
totalPrize: 1800,
5858
users: {},
59+
events: [],
5960
},
6061
};
6162

@@ -76,6 +77,7 @@ const mockData3 = {
7677
id: 'long id',
7778
totalPrize: 1800,
7879
users: {},
80+
events: [],
7981
},
8082
};
8183

@@ -96,6 +98,7 @@ const mockData4 = {
9698
id: 'long id',
9799
totalPrize: 1800,
98100
users: {},
101+
events: [],
99102
},
100103
};
101104

@@ -116,6 +119,7 @@ const mockData5 = {
116119
id: 'long id',
117120
totalPrize: 1800,
118121
users: {},
122+
events: [],
119123
},
120124
};
121125

src/shared/components/Dashboard/CurrentActivity/Challenges/ChallengeCard/index.jsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ export default function ChallengeCard({
7777
: `/?module=Category&categoryID=${legacy.forumId}`;
7878

7979
const isTco = challenge.events
80-
&& challenge.events.find(x => x.eventName.match(/tco\d{2}/));
80+
&& challenge.events.find(x => x.eventName && x.eventName.match(/tco\d{2}/));
8181

8282
const roles = _.get(userDetails, 'roles') || [];
8383

src/shared/components/challenge-detail/Header/index.jsx

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -66,8 +66,6 @@ export default function ChallengeHeader(props) {
6666
events,
6767
legacy,
6868
prizeSets,
69-
numberOfCheckpointsPrizes,
70-
topCheckPointPrize,
7169
reliabilityBonus,
7270
userDetails,
7371
numRegistrants,
@@ -83,6 +81,14 @@ export default function ChallengeHeader(props) {
8381
const { prizes } = prizeSets && prizeSets.length ? prizeSets[0] : [];
8482
const status = allPhases.length ? allPhases[0].name : '';
8583

84+
const checkpointPrizes = _.find(prizeSets, { type: 'checkpoint' });
85+
let numberOfCheckpointsPrizes = 0;
86+
let topCheckPointPrize = 0;
87+
if (!_.isEmpty(checkpointPrizes)) {
88+
numberOfCheckpointsPrizes = checkpointPrizes.prizes.length;
89+
topCheckPointPrize = checkpointPrizes.prizes[0].value;
90+
}
91+
8692
const phases = {};
8793
if (allPhases) {
8894
allPhases.forEach((phase) => {
@@ -483,8 +489,6 @@ ChallengeHeader.propTypes = {
483489
legacy: PT.shape({
484490
track: PT.any,
485491
}),
486-
numberOfCheckpointsPrizes: PT.any,
487-
topCheckPointPrize: PT.any,
488492
reliabilityBonus: PT.any,
489493
userDetails: PT.any,
490494
currentPhases: PT.any,

src/shared/components/challenge-detail/RecommendedActiveChallenges/ChallengesCard/index.jsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ export default function ChallengesCard({
6565
<TrackIcon
6666
track={track}
6767
subTrack={challenge.subTrack}
68-
tcoEligible={challenge.events ? challenge.events[0].eventName : ''}
68+
tcoEligible={challenge.events && challenge.events.length > 0 ? challenge.events[0].eventName : ''}
6969
isDataScience={challenge.isDataScience}
7070
challengesUrl={challengesUrl}
7171
/>

src/shared/components/challenge-listing/ChallengeCard/index.jsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ function ChallengeCard({
7171
<TrackIcon
7272
track={track}
7373
subTrack={subTrack}
74-
tcoEligible={challenge.events ? challenge.events[0].eventName : ''}
74+
tcoEligible={challenge.events && challenge.events.length > 0 ? challenge.events[0].eventName : ''}
7575
isDataScience={challenge.isDataScience}
7676
/>
7777
</span>

src/shared/containers/challenge-detail/index.jsx

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,6 @@ class ChallengeDetailPageContainer extends React.Component {
166166
reviewTypes,
167167
getAllCountries,
168168
getReviewTypes,
169-
history,
170169
} = this.props;
171170

172171
if (
@@ -192,7 +191,7 @@ class ChallengeDetailPageContainer extends React.Component {
192191
&& !challenge.fetchedWithAuth)
193192

194193
) {
195-
loadChallengeDetails(auth, challengeId, history);
194+
loadChallengeDetails(auth, challengeId);
196195
}
197196

198197
if (!allCountries.length) {
@@ -219,8 +218,14 @@ class ChallengeDetailPageContainer extends React.Component {
219218
auth,
220219
challenge,
221220
loadingRecommendedChallengesUUID,
221+
history,
222222
} = this.props;
223223

224+
if (challenge.isLegacyChallenge && !history.location.pathname.includes(challenge.id)) {
225+
history.location.pathname = `/challenges/${challenge.id}`; // eslint-disable-line no-param-reassign
226+
history.push(history.location.pathname, history.state);
227+
}
228+
224229
const recommendedTechnology = getRecommendedTags(challenge);
225230
if (
226231
challenge
@@ -843,15 +848,12 @@ const mapDispatchToProps = (dispatch) => {
843848
dispatch(lookupActions.getReviewTypesInit());
844849
dispatch(lookupActions.getReviewTypesDone(tokenV3));
845850
},
846-
loadChallengeDetails: (tokens, challengeId, history) => {
851+
loadChallengeDetails: (tokens, challengeId) => {
847852
const a = actions.challenge;
848853
dispatch(a.getDetailsInit(challengeId));
849854
dispatch(a.getDetailsDone(challengeId, tokens.tokenV3, tokens.tokenV2))
850855
.then((res) => {
851856
const ch = res.payload;
852-
if (ch.isLegacyChallenge) {
853-
history.location.pathname = `/challenges/${ch.id}`; // eslint-disable-line no-param-reassign
854-
}
855857
if (ch.track === 'DESIGN') {
856858
const p = ch.allPhases || ch.phases || []
857859
.filter(x => x.name === 'Checkpoint Review');

0 commit comments

Comments
 (0)