Skip to content

Commit 97d3c88

Browse files
Merge pull request #5008 from topcoder-platform/feature-refactor-challengelist-fixes
Fix challenge detail screen
2 parents 8e0504e + 7e0f013 commit 97d3c88

File tree

9 files changed

+84
-83
lines changed

9 files changed

+84
-83
lines changed

src/shared/components/Contentful/ChallengesBlock/Card/index.jsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,13 +30,13 @@ export default function Card({
3030

3131
let TrackTag;
3232
switch (track.toLowerCase()) {
33-
case COMPETITION_TRACKS.DATA_SCIENCE:
33+
case COMPETITION_TRACKS.DS:
3434
TrackTag = DataScienceTrackTag;
3535
break;
36-
case COMPETITION_TRACKS.DESIGN:
36+
case COMPETITION_TRACKS.DES:
3737
TrackTag = DesignTrackTag;
3838
break;
39-
case COMPETITION_TRACKS.DEVELOP:
39+
case COMPETITION_TRACKS.DEV:
4040
TrackTag = DevelopmentTrackTag;
4141
break;
4242
case COMPETITION_TRACKS.QA:

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -47,13 +47,13 @@ export default function ChallengeCard({
4747

4848
let EventTag;
4949
switch (track) {
50-
case COMPETITION_TRACKS.DATA_SCIENCE:
50+
case COMPETITION_TRACKS.DS:
5151
EventTag = DataScienceTrackEventTag;
5252
break;
53-
case COMPETITION_TRACKS.DESIGN:
53+
case COMPETITION_TRACKS.DES:
5454
EventTag = DesignTrackEventTag;
5555
break;
56-
case COMPETITION_TRACKS.DEVELOP:
56+
case COMPETITION_TRACKS.DEV:
5757
EventTag = DevelopmentTrackEventTag;
5858
break;
5959
case COMPETITION_TRACKS.QA:
@@ -66,7 +66,7 @@ export default function ChallengeCard({
6666
const STALLED_MSG = 'Stalled';
6767
const DRAFT_MSG = 'In Draft';
6868

69-
const forumEndpoint = track === COMPETITION_TRACKS.DESIGN
69+
const forumEndpoint = track === COMPETITION_TRACKS.DES
7070
? `/?module=ThreadList&forumID=${legacy.forumId}`
7171
: `/?module=Category&categoryID=${legacy.forumId}`;
7272

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,15 +36,15 @@ export default function ChallengeTags(props) {
3636
let EventTag;
3737
let TrackTag;
3838
switch (track) {
39-
case COMPETITION_TRACKS.DATA_SCIENCE:
39+
case COMPETITION_TRACKS.DS:
4040
EventTag = DataScienceTrackEventTag;
4141
TrackTag = DataScienceTrackTag;
4242
break;
43-
case COMPETITION_TRACKS.DESIGN:
43+
case COMPETITION_TRACKS.DES:
4444
EventTag = DesignTrackEventTag;
4545
TrackTag = DesignTrackTag;
4646
break;
47-
case COMPETITION_TRACKS.DEVELOP:
47+
case COMPETITION_TRACKS.DEV:
4848
EventTag = DevelopmentTrackEventTag;
4949
TrackTag = DevelopmentTrackTag;
5050
break;

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -256,7 +256,7 @@ export default function ChallengeHeader(props) {
256256
<div styleName="tag-container">
257257
<ChallengeTags
258258
track={track}
259-
challengeType={_.find(challengeTypesMap, { name: type }) || []}
259+
challengeType={_.find(challengeTypesMap, { name: type }) || {}}
260260
challengesUrl={challengesUrl}
261261
events={eventNames}
262262
technPlatforms={miscTags}

src/shared/components/challenge-detail/Specification/SideBar/index.jsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -360,15 +360,15 @@ SideBar.defaultProps = {
360360
environment: '',
361361
codeRepo: '',
362362
isMM: false,
363-
metadata: {},
363+
metadata: [],
364364
reviewScorecardId: '',
365365
screeningScorecardId: '',
366366
legacyId: '',
367367
};
368368

369369
SideBar.propTypes = {
370370
challengesUrl: PT.string.isRequired,
371-
legacyId: PT.string,
371+
legacyId: PT.oneOfType([PT.string, PT.number]),
372372
eventDetail: PT.shape({
373373
eventName: PT.string.isRequired,
374374
description: PT.string.isRequired,
@@ -384,7 +384,7 @@ SideBar.propTypes = {
384384
environment: PT.string,
385385
codeRepo: PT.string,
386386
isMM: PT.bool,
387-
metadata: PT.shape(),
388-
reviewScorecardId: PT.string,
387+
metadata: PT.array,
388+
reviewScorecardId: PT.oneOfType([PT.string, PT.number]),
389389
screeningScorecardId: PT.string,
390390
};

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -407,7 +407,7 @@ ChallengeDetailsView.defaultProps = {
407407
environment: '',
408408
descriptionFormat: 'HTML',
409409
codeRepo: '',
410-
metadata: {},
410+
metadata: [],
411411
events: [],
412412
reviewScorecardId: '',
413413
screeningScorecardId: '',
@@ -424,12 +424,12 @@ ChallengeDetailsView.propTypes = {
424424
id: PT.any,
425425
privateDescription: PT.string,
426426
legacy: PT.shape({
427-
reviewScorecardId: PT.string,
427+
reviewScorecardId: PT.oneOfType([PT.string, PT.number]),
428428
screeningScorecardId: PT.string,
429429
forumId: PT.number,
430430
}),
431431
track: PT.string.isRequired,
432-
legacyId: PT.string,
432+
legacyId: PT.oneOfType([PT.string, PT.number]),
433433
groups: PT.any,
434434
reviewType: PT.string,
435435
numberOfCheckpointsPrizes: PT.number,
@@ -439,7 +439,7 @@ ChallengeDetailsView.propTypes = {
439439
userDetails: PT.shape({
440440
roles: PT.arrayOf(PT.string).isRequired,
441441
}),
442-
metadata: PT.shape(),
442+
metadata: PT.array,
443443
events: PT.arrayOf(PT.string),
444444
}),
445445
challengesUrl: PT.string.isRequired,

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ export default function ThriveArticles({ articles }) {
3232
<div
3333
styleName="article-right"
3434
style={{
35-
backgroundImage: `url(${a.fields.featuredImage.file.url})`,
35+
backgroundImage: `url(${a.fields.featuredImage ? a.fields.featuredImage.file.url : ''})`,
3636
}}
3737
/>
3838
</div>

src/shared/components/tc-communities/ChallengesBlock/Card/index.jsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,13 +31,13 @@ export default function Card({
3131
let TrackTag;
3232
switch (track.toLowerCase()) {
3333
case 'datasci':
34-
case COMPETITION_TRACKS.DATA_SCIENCE:
34+
case COMPETITION_TRACKS.DS:
3535
TrackTag = DataScienceTrackTag;
3636
break;
37-
case COMPETITION_TRACKS.DESIGN:
37+
case COMPETITION_TRACKS.DES:
3838
TrackTag = DesignTrackTag;
3939
break;
40-
case COMPETITION_TRACKS.DEVELOP:
40+
case COMPETITION_TRACKS.DEV:
4141
TrackTag = DevelopmentTrackTag;
4242
break;
4343
case COMPETITION_TRACKS.QA:

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

Lines changed: 61 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,8 @@ import MySubmissions from 'components/challenge-detail/MySubmissions';
2121
import Winners from 'components/challenge-detail/Winners';
2222
import ChallengeDetailsView from 'components/challenge-detail/Specification';
2323
import RecommendedThriveArticles from 'components/challenge-detail/ThriveArticles';
24-
import RecommendedActiveChallenges from 'components/challenge-detail/RecommendedActiveChallenges';
24+
// eslint-disable-next-line max-len
25+
// import RecommendedActiveChallenges from 'components/challenge-detail/RecommendedActiveChallenges';
2526
import Terms from 'containers/Terms';
2627
import termsActions from 'actions/terms';
2728
import ChallengeCheckpoints from 'components/challenge-detail/Checkpoints';
@@ -36,10 +37,10 @@ import { CHALLENGE_PHASE_TYPES, COMPETITION_TRACKS_V3, SUBTRACKS } from 'utils/t
3637
import { config, MetaTags } from 'topcoder-react-utils';
3738
import { actions } from 'topcoder-react-lib';
3839
import { getService } from 'services/contentful';
39-
import {
40-
getDisplayRecommendedChallenges,
41-
getRecommendedTags,
42-
} from 'utils/challenge-detail/helper';
40+
// import {
41+
// getDisplayRecommendedChallenges,
42+
// getRecommendedTags,
43+
// } from 'utils/challenge-detail/helper';
4344

4445
import ogWireframe from
4546
'../../../assets/images/open-graph/challenges/01-wireframe.jpg';
@@ -200,11 +201,11 @@ class ChallengeDetailPageContainer extends React.Component {
200201
const {
201202
challengeId,
202203
reloadChallengeDetails,
203-
getAllRecommendedChallenges,
204-
recommendedChallenges,
205-
auth,
204+
// getAllRecommendedChallenges,
205+
// recommendedChallenges,
206+
// auth,
206207
challenge,
207-
loadingRecommendedChallengesUUID,
208+
// loadingRecommendedChallengesUUID,
208209
history,
209210
} = this.props;
210211

@@ -213,21 +214,21 @@ class ChallengeDetailPageContainer extends React.Component {
213214
history.push(history.location.pathname, history.state);
214215
}
215216

216-
const recommendedTechnology = getRecommendedTags(challenge);
217-
if (
218-
challenge
219-
&& challenge.id === challengeId
220-
&& !loadingRecommendedChallengesUUID
221-
&& (
222-
!recommendedChallenges[recommendedTechnology]
223-
|| (
224-
Date.now() - recommendedChallenges[recommendedTechnology].lastUpdateOfActiveChallenges
225-
> 10 * MIN
226-
)
227-
)
228-
) {
229-
getAllRecommendedChallenges(auth.tokenV3, recommendedTechnology);
230-
}
217+
// const recommendedTechnology = getRecommendedTags(challenge);
218+
// if (
219+
// challenge
220+
// && challenge.id === challengeId
221+
// && !loadingRecommendedChallengesUUID
222+
// && (
223+
// !recommendedChallenges[recommendedTechnology]
224+
// || (
225+
// Date.now() - recommendedChallenges[recommendedTechnology].lastUpdateOfActiveChallenges
226+
// > 10 * MIN
227+
// )
228+
// )
229+
// ) {
230+
// getAllRecommendedChallenges(auth.tokenV3, recommendedTechnology);
231+
// }
231232

232233
const { thriveArticles } = this.state;
233234
const userId = _.get(this, 'props.auth.user.userId');
@@ -251,9 +252,9 @@ class ChallengeDetailPageContainer extends React.Component {
251252
}).then((content) => {
252253
// format image file data
253254
_.forEach(content.Article.items, (item) => {
254-
const asset = _.find(content.Article.includes.Asset,
255-
a => a.sys.id === item.fields.featuredImage.sys.id);
256-
_.assign(item.fields.featuredImage, { file: asset.fields.file });
255+
// eslint-disable-next-line max-len
256+
const asset = _.find(content.Article.includes.Asset, a => item.fields.featuredImage !== null && a.sys.id === item.fields.featuredImage.sys.id);
257+
if (asset) _.assign(item.fields.featuredImage, { file: asset.fields.file });
257258
});
258259
this.setState({
259260
thriveArticles: content.Article.items,
@@ -326,20 +327,20 @@ class ChallengeDetailPageContainer extends React.Component {
326327
isLoadingSubmissionInformation,
327328
submissionInformation,
328329
loadSubmissionInformation,
329-
selectChallengeDetailsTab,
330-
prizeMode,
331-
recommendedChallenges,
332-
expandedTags,
333-
expandTag,
330+
// selectChallengeDetailsTab,
331+
// prizeMode,
332+
// recommendedChallenges,
333+
// expandedTags,
334+
// expandTag,
334335
mySubmissions,
335336
reviewTypes,
336337
} = this.props;
337338

338-
const displayRecommendedChallenges = getDisplayRecommendedChallenges(
339-
challenge,
340-
recommendedChallenges,
341-
auth,
342-
);
339+
// const displayRecommendedChallenges = getDisplayRecommendedChallenges(
340+
// challenge,
341+
// recommendedChallenges,
342+
// auth,
343+
// );
343344

344345
const {
345346
thriveArticles,
@@ -451,7 +452,7 @@ class ChallengeDetailPageContainer extends React.Component {
451452
registerForChallenge={this.registerForChallenge}
452453
registering={registering}
453454
selectedView={selectedTab}
454-
hasRecommendedChallenges={displayRecommendedChallenges.length > 0}
455+
// hasRecommendedChallenges={displayRecommendedChallenges.length > 0}
455456
hasThriveArticles={thriveArticles.length > 0}
456457
setChallengeListingFilter={setChallengeListingFilter}
457458
unregisterFromChallenge={() => unregisterFromChallenge(auth, challengeId)
@@ -590,7 +591,7 @@ class ChallengeDetailPageContainer extends React.Component {
590591
}}
591592
/>
592593
)}
593-
{
594+
{/* {
594595
!isEmpty && displayRecommendedChallenges.length ? (
595596
<RecommendedActiveChallenges
596597
challenges={displayRecommendedChallenges}
@@ -604,7 +605,7 @@ class ChallengeDetailPageContainer extends React.Component {
604605
isLoggedIn={isLoggedIn}
605606
/>
606607
) : null
607-
}
608+
} */}
608609
{
609610
!isEmpty && thriveArticles.length ? (
610611
<RecommendedThriveArticles articles={thriveArticles} />
@@ -635,7 +636,7 @@ ChallengeDetailPageContainer.defaultProps = {
635636
mySubmissions: [],
636637
isLoadingSubmissionInformation: false,
637638
submissionInformation: null,
638-
prizeMode: 'money-usd',
639+
// prizeMode: 'money-usd',
639640
};
640641

641642
ChallengeDetailPageContainer.propTypes = {
@@ -648,7 +649,7 @@ ChallengeDetailPageContainer.propTypes = {
648649
checkpointResults: PT.arrayOf(PT.shape()),
649650
checkpointResultsUi: PT.shape().isRequired,
650651
checkpoints: PT.shape(),
651-
recommendedChallenges: PT.shape().isRequired,
652+
// recommendedChallenges: PT.shape().isRequired,
652653
communityId: PT.string,
653654
communitiesList: PT.shape({
654655
data: PT.arrayOf(PT.object).isRequired,
@@ -692,12 +693,12 @@ ChallengeDetailPageContainer.propTypes = {
692693
isLoadingSubmissionInformation: PT.bool,
693694
submissionInformation: PT.shape(),
694695
loadSubmissionInformation: PT.func.isRequired,
695-
selectChallengeDetailsTab: PT.func.isRequired,
696-
getAllRecommendedChallenges: PT.func.isRequired,
697-
prizeMode: PT.string,
698-
expandedTags: PT.arrayOf(PT.number).isRequired,
699-
expandTag: PT.func.isRequired,
700-
loadingRecommendedChallengesUUID: PT.string.isRequired,
696+
// selectChallengeDetailsTab: PT.func.isRequired,
697+
// getAllRecommendedChallenges: PT.func.isRequired,
698+
// prizeMode: PT.string,
699+
// expandedTags: PT.arrayOf(PT.number).isRequired,
700+
// expandTag: PT.func.isRequired,
701+
// loadingRecommendedChallengesUUID: PT.string.isRequired,
701702
history: PT.shape().isRequired,
702703
};
703704

@@ -765,8 +766,8 @@ function mapStateToProps(state, props) {
765766
auth: state.auth,
766767
challenge,
767768
challengeTypes: cl.challengeTypes,
768-
recommendedChallenges: cl.recommendedChallenges,
769-
loadingRecommendedChallengesUUID: cl.loadingRecommendedChallengesUUID,
769+
// recommendedChallenges: cl.recommendedChallenges,
770+
// loadingRecommendedChallengesUUID: cl.loadingRecommendedChallengesUUID,
770771
expandedTags: cl.expandedTags,
771772
challengeId: String(props.match.params.challengeId),
772773
challengesUrl: props.challengesUrl,
@@ -811,16 +812,16 @@ const mapDispatchToProps = (dispatch) => {
811812
const ca = communityActions.tcCommunity;
812813
const lookupActions = actions.lookup;
813814
return {
814-
getAllRecommendedChallenges: (tokenV3, recommendedTechnology) => {
815-
const uuid = shortId();
816-
const cl = challengeListingActions.challengeListing;
817-
dispatch(cl.getAllRecommendedChallengesInit(uuid));
818-
dispatch(
819-
cl.getAllRecommendedChallengesDone(
820-
uuid, tokenV3, recommendedTechnology,
821-
),
822-
);
823-
},
815+
// getAllRecommendedChallenges: (tokenV3, recommendedTechnology) => {
816+
// const uuid = shortId();
817+
// const cl = challengeListingActions.challengeListing;
818+
// dispatch(cl.getAllRecommendedChallengesInit(uuid));
819+
// dispatch(
820+
// cl.getAllRecommendedChallengesDone(
821+
// uuid, tokenV3, recommendedTechnology,
822+
// ),
823+
// );
824+
// },
824825
getCommunitiesList: (auth) => {
825826
const uuid = shortId();
826827
dispatch(ca.getListInit(uuid));

0 commit comments

Comments
 (0)