Skip to content

Commit 7e37f2c

Browse files
Updated challengeSubtracks to challengeTypes in filter
1 parent 68de6f2 commit 7e37f2c

File tree

25 files changed

+119
-133
lines changed

25 files changed

+119
-133
lines changed

__tests__/shared/components/challenge-listing/Filters/ChallengeFilters.jsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,14 +39,14 @@ const mockDatas = [{
3939
showTrackModal,
4040
trackModalShown: true,
4141
validKeywords: [''],
42-
validSubtracks: [''],
42+
validTypes: [''],
4343
}, {
4444
challengeGroupId: '1',
4545
communityFilters: [{ filter: {} }],
4646
communityName: 'name',
4747
expanded: false,
4848
filterState: {
49-
tags: ['abc'], subtracks: ['CODE'], endDate: moment('2019-12-31T23:00:00.000Z'), startDate: moment('2019-12-31T23:00:00.000Z'), tracks: ['tracks'],
49+
tags: ['abc'], types: ['927abff4-7af9-4145-8ba1-577c16e64e2e'], endDate: moment('2019-12-31T23:00:00.000Z'), startDate: moment('2019-12-31T23:00:00.000Z'), tracks: ['tracks'],
5050
},
5151
isCardTypeSet: 'Challenges',
5252
saveFilter,
@@ -59,7 +59,7 @@ const mockDatas = [{
5959
showTrackModal,
6060
trackModalShown: true,
6161
validKeywords: [''],
62-
validSubtracks: [''],
62+
validTypes: [''],
6363
}];
6464

6565
describe('Matches shallow shapshot', () => {

__tests__/shared/components/challenge-listing/Filters/FiltersPanel.jsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ const mockDatas = [{
2525
setFilterState,
2626
setSearchText,
2727
validKeywords: ['key', 'word'],
28-
validSubtracks: [{ name: 'sub', subTrack: 'sub' }, { name: 'track', subTrack: 'track' }],
28+
validTypes: [{ name: 'sub', subTrack: 'sub' }, { name: 'track', subTrack: 'track' }],
2929
onClose,
3030
}, {
3131
communityFilters: [
@@ -42,7 +42,7 @@ const mockDatas = [{
4242
setFilterState,
4343
setSearchText,
4444
validKeywords: [],
45-
validSubtracks: [],
45+
validTypes: [],
4646
onClose,
4747
}];
4848

__tests__/shared/components/challenge-listing/Filters/__snapshots__/ChallengeFilters.jsx.snap

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ exports[`Matches shallow shapshot shapshot 1`] = `
7373
"",
7474
]
7575
}
76-
validSubtracks={
76+
validTypes={
7777
Array [
7878
"",
7979
]
@@ -235,15 +235,15 @@ exports[`Matches shallow shapshot shapshot 2`] = `
235235
Object {
236236
"endDate": "2019-12-31T23:00:00.000Z",
237237
"startDate": "2019-12-31T23:00:00.000Z",
238-
"subtracks": Array [
239-
"CODE",
240-
],
241238
"tags": Array [
242239
"abc",
243240
],
244241
"tracks": Array [
245242
"tracks",
246243
],
244+
"types": Array [
245+
"927abff4-7af9-4145-8ba1-577c16e64e2e",
246+
],
247247
}
248248
}
249249
hidden={true}
@@ -261,7 +261,7 @@ exports[`Matches shallow shapshot shapshot 2`] = `
261261
"",
262262
]
263263
}
264-
validSubtracks={
264+
validTypes={
265265
Array [
266266
"",
267267
]

__tests__/shared/components/challenge-listing/Filters/__snapshots__/FiltersPanel.jsx.snap

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -109,15 +109,15 @@ exports[`Matches shallow shapshot 1`] = `
109109
>
110110
<label
111111
className="src-shared-components-challenge-listing-Filters-FiltersPanel-___style__left-label___15kRu"
112-
htmlFor="track-select"
112+
htmlFor="type-select"
113113
>
114-
Subtrack
114+
Type
115115
<input
116116
type="hidden"
117117
/>
118118
</label>
119119
<Select
120-
id="track-select"
120+
id="type-select"
121121
multi={true}
122122
onChange={[Function]}
123123
options={
@@ -132,7 +132,7 @@ exports[`Matches shallow shapshot 1`] = `
132132
},
133133
]
134134
}
135-
placeholder="Select Subtrack"
135+
placeholder="Select Type"
136136
selectRef={[Function]}
137137
simpleValue={true}
138138
value={null}
@@ -304,19 +304,19 @@ exports[`Matches shallow shapshot 2`] = `
304304
>
305305
<label
306306
className="src-shared-components-challenge-listing-Filters-FiltersPanel-___style__left-label___15kRu"
307-
htmlFor="track-select"
307+
htmlFor="type-select"
308308
>
309-
Subtrack
309+
Type
310310
<input
311311
type="hidden"
312312
/>
313313
</label>
314314
<Select
315-
id="track-select"
315+
id="type-select"
316316
multi={true}
317317
onChange={[Function]}
318318
options={Array []}
319-
placeholder="Select Subtrack"
319+
placeholder="Select Type"
320320
selectRef={[Function]}
321321
simpleValue={true}
322322
value={null}

__tests__/shared/containers/challenge-listing/FilterPanel.jsx

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ describe('shallow render connnected component', () => {
2323
loadingChallengeTags: false,
2424
loadingChallengeTypes: false,
2525
challengeTags: [],
26-
challengeSubtracks: [],
26+
challengeTypes: [],
2727
selectedCommunityId: '1',
2828
},
2929
auth: {
@@ -68,9 +68,9 @@ describe('full render pure component', () => {
6868
filterState: {},
6969
getAvailableFilterName: jest.fn(),
7070
loadingKeywords: false,
71-
loadingSubtracks: false,
71+
loadingTypes: false,
7272
validKeywords: [],
73-
validSubtracks: [],
73+
validTypes: [],
7474
selectedCommunityId: '1',
7575
tokenV2: 'tokenV2',
7676
getTypes: jest.fn(),
@@ -117,7 +117,7 @@ describe('full render pure component', () => {
117117
instance = mount(<FilterPanel
118118
{...initialProps}
119119
challengeGroupId="1"
120-
loadingSubtracks
120+
loadingTypes
121121
loadingKeywords
122122
/>);
123123

@@ -183,7 +183,7 @@ describe('full render connnected component and dispatch actions', () => {
183183
loadingChallengeTags: true,
184184
loadingChallengeTypes: true,
185185
challengeTags: [],
186-
challengeSubtracks: [],
186+
challengeTypes: [],
187187
selectedCommunityId: '1',
188188
},
189189
auth: {

__tests__/shared/containers/challenge-listing/Listing.jsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ describe('full render pure component', () => {
4040
allDraftChallengesLoaded: false,
4141
allPastChallengesLoaded: false,
4242
challenges: [],
43-
challengeSubtracks: [],
43+
challengeTypes: [],
4444
challengeTags: [],
4545
getCommunitiesList: () => {},
4646
communityFilters: [{ communityId: '1', name: 'My Filter', filter: {} }],
@@ -177,7 +177,7 @@ describe('full render connnected component and dispatch actions', () => {
177177
allDraftChallengesLoaded: false,
178178
allPastChallengesLoaded: false,
179179
challenges: [{ id: '1' }],
180-
challengeSubtracks: [],
180+
challengeTypes: [],
181181
challengeTags: [],
182182
// communityFilters: [{ id: '1', name: 'My Filter', filter: {} }],
183183
dropChallenges: jest.fn(),

src/shared/actions/challenge-listing/index.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ function getAll(getter, page = 0, prev) {
4646
}
4747

4848
/**
49-
* Gets possible challenge subtracks.
49+
* Gets possible challenge types.
5050
* @return {Promise}
5151
*/
5252
function getChallengeTypesDone() {

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

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import {
77
DataScienceTrackTag,
88
DesignTrackTag,
99
DevelopmentTrackTag,
10+
QATrackTag,
1011
} from 'topcoder-react-ui-kit';
1112

1213
import { Link } from 'topcoder-react-utils';
@@ -40,6 +41,9 @@ export default function Card({
4041
case COMPETITION_TRACKS.DEVELOP:
4142
TrackTag = DevelopmentTrackTag;
4243
break;
44+
case COMPETITION_TRACKS.QA:
45+
TrackTag = QATrackTag;
46+
break;
4347
default:
4448
throw new Error('Wrong competition track value');
4549
}
@@ -57,7 +61,7 @@ export default function Card({
5761
return (
5862
<div styleName="container">
5963
<TrackTag
60-
to={`${baseUrl}/challenges?filter[subtracks][0]=${
64+
to={`${baseUrl}/challenges?filter[types][0]=${
6165
encodeURIComponent(subTrack)}`}
6266
>
6367
{_.capitalize(subTrack).replace(/_/g, ' ')}

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

Lines changed: 14 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -15,33 +15,21 @@ import { config, Link } from 'topcoder-react-utils';
1515

1616
import {
1717
Button,
18-
// DangerButton,
19-
// DataScienceTrackTag,
2018
DataScienceTrackEventTag,
21-
// DesignTrackTag,
2219
DesignTrackEventTag,
23-
// DevelopmentTrackTag,
2420
DevelopmentTrackEventTag,
21+
QATrackEventTag,
2522
} from 'topcoder-react-ui-kit';
2623

2724
import style from './style.scss';
2825

29-
function normalizeSubTrackTagForRendering(subTrack) {
30-
let x;
31-
switch (subTrack) {
32-
case 'WEB_DESIGNS': x = 'Web Design'; break;
33-
default: x = subTrack;
34-
}
35-
return _.startCase(_.toLower(x));
36-
}
37-
3826
export default function ChallengeCard({
3927
challenge,
4028
selectChallengeDetailsTab,
4129
setChallengeListingFilter,
4230
// unregisterFromChallenge,
4331
userResources,
44-
challengeSubtracksMap,
32+
challengeTypesMap,
4533
}) {
4634
const {
4735
phases,
@@ -52,11 +40,7 @@ export default function ChallengeCard({
5240
type,
5341
} = challenge;
5442

55-
let subTrackId = _.findKey(challengeSubtracksMap, { description: type });
56-
57-
if (!subTrackId) {
58-
subTrackId = _.findKey(challengeSubtracksMap, { description: 'Code' });
59-
}
43+
const typeId = _.findKey(challengeTypesMap, { name: type });
6044

6145
const { track } = legacy;
6246

@@ -75,6 +59,10 @@ export default function ChallengeCard({
7559
EventTag = DevelopmentTrackEventTag;
7660
// TrackTag = DevelopmentTrackTag;
7761
break;
62+
case 'QA':
63+
EventTag = QATrackEventTag;
64+
// TrackTag = QATrackTag;
65+
break;
7866
default:
7967
EventTag = DevelopmentTrackEventTag;
8068
}
@@ -121,7 +109,7 @@ export default function ChallengeCard({
121109
.filter(p => p.name !== 'Registration' && p.isOpen)
122110
.sort((a, b) => moment(a.scheduledEndDate).diff(b.scheduledEndDate))[0];
123111

124-
if (!statusPhase && type === 'FIRST_2_FINISH' && allPhases.length) {
112+
if (!statusPhase && type === 'First2Finish' && allPhases.length) {
125113
statusPhase = _.clone(allPhases[0]);
126114
statusPhase.name = 'Submission';
127115
}
@@ -147,14 +135,14 @@ export default function ChallengeCard({
147135
<EventTag
148136
onClick={
149137
() => setImmediate(
150-
() => setChallengeListingFilter({ subtracks: [subTrackId] }),
138+
() => setChallengeListingFilter({ types: [typeId] }),
151139
)
152140
}
153141
theme={{ button: style.tag }}
154-
to={`/challenges?filter[subtracks][0]=${
155-
encodeURIComponent(subTrackId)}`}
142+
to={`/challenges?filter[types][0]=${
143+
encodeURIComponent(typeId)}`}
156144
>
157-
{normalizeSubTrackTagForRendering(type)}
145+
{type}
158146
</EventTag>
159147
{
160148
isTco ? (
@@ -268,7 +256,7 @@ ChallengeCard.defaultProps = {
268256
ChallengeCard.propTypes = {
269257
challenge: PT.shape({
270258
legacy: PT.shape({
271-
track: PT.oneOf(['DATA_SCIENCE', 'DESIGN', 'DEVELOP']).isRequired,
259+
track: PT.oneOf(['DATA_SCIENCE', 'DESIGN', 'DEVELOP', 'QA']).isRequired,
272260
forumId: PT.oneOfType([PT.number, PT.string]),
273261
}).isRequired,
274262
id: PT.oneOfType([PT.number, PT.string]).isRequired,
@@ -284,5 +272,5 @@ ChallengeCard.propTypes = {
284272
setChallengeListingFilter: PT.func.isRequired,
285273
// unregisterFromChallenge: PT.func.isRequired,
286274
userResources: PT.arrayOf(PT.shape()),
287-
challengeSubtracksMap: PT.shape().isRequired,
275+
challengeTypesMap: PT.shape().isRequired,
288276
};

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ export default function Challenges({
2828
switchShowChallengeFilter,
2929
unregisterFromChallenge,
3030
userResources,
31-
challengeSubtracksMap,
31+
challengeTypesMap,
3232
}) {
3333
if (challengesLoading) {
3434
return (
@@ -77,7 +77,7 @@ export default function Challenges({
7777
setChallengeListingFilter={setChallengeListingFilter}
7878
unregisterFromChallenge={unregisterFromChallenge}
7979
userResources={userResources}
80-
challengeSubtracksMap={challengeSubtracksMap}
80+
challengeTypesMap={challengeTypesMap}
8181
/>
8282
))
8383
) : (
@@ -165,5 +165,5 @@ Challenges.propTypes = {
165165
switchShowChallengeFilter: PT.func.isRequired,
166166
unregisterFromChallenge: PT.func.isRequired,
167167
userResources: PT.arrayOf(PT.shape()),
168-
challengeSubtracksMap: PT.shape().isRequired,
168+
challengeTypesMap: PT.shape().isRequired,
169169
};

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ export default class MyChallenges extends React.Component {
7070
unregisterFromChallenge,
7171
userGroups,
7272
userResources,
73-
challengeSubtracksMap,
73+
challengeTypesMap,
7474
} = this.props;
7575

7676
const myCommunities = communities.filter(x => _.intersection(userGroups, x.groupIds).length)
@@ -108,7 +108,7 @@ export default class MyChallenges extends React.Component {
108108
switchShowChallengeFilter={switchShowChallengeFilter}
109109
unregisterFromChallenge={unregisterFromChallenge}
110110
userResources={userResources}
111-
challengeSubtracksMap={challengeSubtracksMap}
111+
challengeTypesMap={challengeTypesMap}
112112
/>
113113
) : null
114114
}
@@ -158,5 +158,5 @@ MyChallenges.propTypes = {
158158
unregisterFromChallenge: PT.func.isRequired,
159159
userGroups: PT.arrayOf(PT.string).isRequired,
160160
userResources: PT.arrayOf(PT.shape()),
161-
challengeSubtracksMap: PT.shape().isRequired,
161+
challengeTypesMap: PT.shape().isRequired,
162162
};

0 commit comments

Comments
 (0)