Skip to content

Commit c6a7ba4

Browse files
Removed getChallengeSubTrack and added getChallengeTypeAbbr
1 parent 4a4e060 commit c6a7ba4

File tree

8 files changed

+24
-111
lines changed

8 files changed

+24
-111
lines changed

__tests__/shared/components/TrackIcon/__snapshots__/index.jsx.snap

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ exports[`Matches shallow shapshot 1`] = `
77
<div
88
className="src-shared-components-TrackIcon-___style__develop___3v4fM src-shared-components-TrackIcon-___style__main-icon___1q-1_"
99
>
10-
Cd
10+
CH
1111
</div>
1212
<a
1313
href="https://www.topcoder-dev.com/tco"
@@ -28,7 +28,7 @@ exports[`Matches shallow shapshot 2`] = `
2828
<div
2929
className="src-shared-components-TrackIcon-___style__data_science___3YlDf src-shared-components-TrackIcon-___style__main-icon___1q-1_"
3030
>
31-
Cd
31+
CH
3232
</div>
3333
<a
3434
href="https://www.topcoder-dev.com/tco"
@@ -49,7 +49,7 @@ exports[`Matches shallow shapshot 3`] = `
4949
<div
5050
className="src-shared-components-TrackIcon-___style__develop___3v4fM src-shared-components-TrackIcon-___style__main-icon___1q-1_"
5151
>
52-
Cd
52+
CH
5353
</div>
5454
<a
5555
href="https://www.topcoder-dev.com/tco"

src/shared/components/TrackIcon/Abbreviation.jsx

Lines changed: 0 additions & 79 deletions
This file was deleted.

src/shared/components/TrackIcon/index.jsx

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,12 @@ import PT from 'prop-types';
33

44
import { config } from 'topcoder-react-utils';
55

6-
import Abbreviation from './Abbreviation';
76
import './style.scss';
87

98
export default function TrackIcon({
109
track,
1110
subTrack,
11+
type,
1212
tcoEligible,
1313
isDataScience,
1414
MAIN_URL,
@@ -23,13 +23,13 @@ export default function TrackIcon({
2323
encodeURIComponent(subTrack)}`}
2424
styleName={`${(isDataScience ? 'data_science' : track.toLowerCase())} main-icon`}
2525
>
26-
{Abbreviation[track.toUpperCase()][subTrack]}
26+
{type}
2727
</a>
2828
) : (
2929
<div
3030
styleName={`${(isDataScience ? 'data_science' : track.toLowerCase())} main-icon`}
3131
>
32-
{Abbreviation[track.toUpperCase()][subTrack]}
32+
{type}
3333
</div>
3434
)}
3535
<a href={`${TCO_URL}`}>
@@ -48,13 +48,15 @@ TrackIcon.defaultProps = {
4848
challengesUrl: '',
4949
track: 'DEVELOP',
5050
subTrack: 'DEVELOPMENT',
51+
type: 'CH',
5152
};
5253

5354
TrackIcon.propTypes = {
5455
isDataScience: PT.bool,
5556
tcoEligible: PT.string,
5657
track: PT.string,
5758
subTrack: PT.string,
59+
type: PT.string,
5860
MAIN_URL: PT.string,
5961
challengesUrl: PT.string,
6062
};

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

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ import _ from 'lodash';
99
import moment from 'moment';
1010
import 'moment-duration-format';
1111
import { isMM } from 'utils/challenge';
12-
import { getChallengeSubTrack } from 'utils/challenge-detail/helper';
1312

1413
import PT from 'prop-types';
1514
import React from 'react';
@@ -37,7 +36,6 @@ export default function ChallengeHeader(props) {
3736
isLoggedIn,
3837
challenge,
3938
challengesUrl,
40-
challengeTypes,
4139
checkpoints,
4240
hasRegistered,
4341
numWinners,
@@ -74,9 +72,8 @@ export default function ChallengeHeader(props) {
7472
status,
7573
} = challenge;
7674

77-
const { track } = legacy;
75+
const { track, subTrack } = legacy;
7876
const tags = challenge.tags || [];
79-
const subTrack = getChallengeSubTrack(challenge.type, challengeTypes);
8077

8178
const allPhases = challenge.phases || [];
8279
const { prizes } = prizeSets && prizeSets.length ? prizeSets[0] : [];
@@ -472,7 +469,6 @@ ChallengeHeader.defaultProps = {
472469
isMenuOpened: false,
473470
hasThriveArticles: false,
474471
hasRecommendedChallenges: false,
475-
challengeTypes: [],
476472
};
477473

478474
ChallengeHeader.propTypes = {
@@ -492,6 +488,7 @@ ChallengeHeader.propTypes = {
492488
prizes: PT.any,
493489
legacy: PT.shape({
494490
track: PT.any,
491+
subTrack: PT.string,
495492
}),
496493
reliabilityBonus: PT.any,
497494
userDetails: PT.any,
@@ -505,7 +502,6 @@ ChallengeHeader.propTypes = {
505502
prizeSets: PT.any,
506503
}).isRequired,
507504
challengesUrl: PT.string.isRequired,
508-
challengeTypes: PT.arrayOf(PT.shape()),
509505
hasRegistered: PT.bool.isRequired,
510506
hasThriveArticles: PT.bool,
511507
hasRecommendedChallenges: PT.bool,

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

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ import {
99
PRIZE_MODE,
1010
getPrizePurseUI,
1111
getTimeLeft,
12-
getChallengeSubTrack,
1312
} from 'utils/challenge-detail/helper';
1413

1514
import TrackIcon from 'components/TrackIcon';
@@ -21,7 +20,6 @@ import styles from './style.scss';
2120

2221
export default function ChallengesCard({
2322
challenge,
24-
challengeTypes,
2523
className,
2624
challengesUrl,
2725
selectChallengeDetailsTab,
@@ -38,7 +36,7 @@ export default function ChallengesCard({
3836
} = challenge;
3937

4038
let { track } = legacy;
41-
const subTrack = getChallengeSubTrack(challenge.type, challengeTypes);
39+
const { subTrack } = legacy;
4240
if (subTrack === 'DEVELOP_MARATHON_MATCH') {
4341
track = 'DATA_SCIENCE';
4442
}
@@ -87,7 +85,7 @@ export default function ChallengesCard({
8785
<div styleName="endtime-prize-container">
8886
<span styleName="end-date">
8987
{challenge.status === 'Active' ? 'Ends ' : 'Ended '}
90-
{getEndDate(challenge, challengeTypes)}
88+
{getEndDate(challenge)}
9189
</span>
9290
<div styleName="prizes">
9391
{getPrizePurseUI(challenge, prizeMode, true, 'Prize Purse')}
@@ -121,12 +119,10 @@ ChallengesCard.defaultProps = {
121119
userHandle: '',
122120
expandedTags: [],
123121
expandTag: null,
124-
challengeTypes: [],
125122
};
126123

127124
ChallengesCard.propTypes = {
128125
challenge: PT.shape().isRequired,
129-
challengeTypes: PT.arrayOf(PT.shape()),
130126
className: PT.string,
131127
challengesUrl: PT.string.isRequired,
132128
selectChallengeDetailsTab: PT.func.isRequired,

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

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import { isDevelopMM } from 'utils/challenge';
88
import {
99
getEndDate,
1010
getPrizePointsUI,
11-
getChallengeSubTrack,
11+
getChallengeTypeAbbr,
1212
} from 'utils/challenge-detail/helper';
1313

1414
import Tags from '../Tags';
@@ -44,15 +44,15 @@ function ChallengeCard({
4444
} = challenge;
4545

4646
let { track } = legacy;
47+
const { subTrack } = legacy;
4748
challenge.isDataScience = false;
4849
if ((challenge.tags && challenge.tags.includes('Data Science')) || isDevelopMM(challenge)) {
4950
challenge.isDataScience = true;
5051
}
5152
challenge.prize = challenge.prizes || [];
5253

5354
const challengeDetailLink = `${challengesUrl}/${id}`;
54-
55-
const subTrack = getChallengeSubTrack(challenge.type, challengeTypes);
55+
const type = getChallengeTypeAbbr(challenge.type, challengeTypes);
5656
if (subTrack === 'DEVELOP_MARATHON_MATCH') {
5757
track = 'DATA_SCIENCE';
5858
}
@@ -72,6 +72,7 @@ function ChallengeCard({
7272
<TrackIcon
7373
track={track}
7474
subTrack={subTrack}
75+
type={type}
7576
tcoEligible={challenge.events && challenge.events.length > 0 ? challenge.events[0].eventName : ''}
7677
isDataScience={challenge.isDataScience}
7778
/>
@@ -90,7 +91,7 @@ function ChallengeCard({
9091
<div styleName="details-footer">
9192
<span styleName="date">
9293
{challenge.status === 'Active' ? 'Ends ' : 'Ended '}
93-
{getEndDate(challenge, challengeTypes)}
94+
{getEndDate(challenge)}
9495
</span>
9596
{ challenge.tags.length > 0
9697
&& (

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

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,6 @@ import { actions } from 'topcoder-react-lib';
3838
import { getService } from 'services/contentful';
3939
import {
4040
getDisplayRecommendedChallenges,
41-
getChallengeSubTrack,
4241
getRecommendedTags,
4342
} from 'utils/challenge-detail/helper';
4443

@@ -79,18 +78,16 @@ const DAY = 24 * 60 * MIN;
7978
* @param {Object} challenge
8079
* @return {String}
8180
*/
82-
function getOgImage(challenge, challengeTypes) {
81+
function getOgImage(challenge) {
8382
const { legacy } = challenge;
84-
const { track } = legacy;
83+
const { track, subTrack } = legacy;
8584
if (challenge.name.startsWith('LUX -')) return ogLuxChallenge;
8685
if (challenge.name.startsWith('RUX -')) return ogRuxChallenge;
8786
if (challenge.prizes) {
8887
const totalPrize = challenge.prizes.reduce((p, sum) => p + sum, 0);
8988
if (totalPrize > 2500) return ogBigPrizesChallenge;
9089
}
9190

92-
const subTrack = getChallengeSubTrack(challenge.type, challengeTypes);
93-
9491
switch (subTrack) {
9592
case SUBTRACKS.FIRST_2_FINISH: return ogFirst2Finish;
9693
case SUBTRACKS.UI_PROTOTYPE_COMPETITION: {
@@ -430,7 +427,7 @@ class ChallengeDetailPageContainer extends React.Component {
430427
&& (
431428
<MetaTags
432429
description={description.slice(0, 155)}
433-
image={getOgImage(challenge, challengeTypes)}
430+
image={getOgImage(challenge)}
434431
siteName="Topcoder"
435432
socialDescription={description.slice(0, 200)}
436433
socialTitle={`${prizesStr}${title}`}

src/shared/utils/challenge-detail/helper.jsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,10 @@ export const PRIZE_MODE = {
2121
};
2222

2323
/**
24-
* Get challenge subTrack from type id
24+
* Get challenge type abbreviation
2525
* @param {Object} challenge challenge info
2626
*/
27-
export function getChallengeSubTrack(track, challengeTypes) {
27+
export function getChallengeTypeAbbr(track, challengeTypes) {
2828
const subTrack = _.find(challengeTypes, { name: track });
2929
if (subTrack) {
3030
return subTrack.abbreviation;
@@ -36,8 +36,8 @@ export function getChallengeSubTrack(track, challengeTypes) {
3636
* Get end date
3737
* @param {Object} challenge challenge info
3838
*/
39-
export function getEndDate(challenge, challengeTypes) {
40-
const subTrack = getChallengeSubTrack(challenge.type, challengeTypes);
39+
export function getEndDate(challenge) {
40+
const { subTrack } = challenge.legacy;
4141
let phases = challenge.phases || [];
4242
if (subTrack === 'FIRST_2_FINISH' && challenge.status === 'COMPLETED') {
4343
phases = challenge.phases.filter(p => p.phaseType === 'Iterative Review' && p.phaseStatus === 'Closed');

0 commit comments

Comments
 (0)