@@ -34,6 +34,20 @@ let mounted = false;
34
34
35
35
const SEO_PAGE_TITLE = 'Topcoder Challenges' ;
36
36
37
+ const DEVELOP_TRACK_ONLY = [ 'UI_PROTOTYPE_COMPETITION' , 'ASSEMBLY_COMPETITION' , 'FIRST_2_FINISH' , 'BUG_HUNT' , 'CODE' ,
38
+ 'DESIGN_FIRST_2_FINISH' , 'DESIGN' , 'DEVELOPMENT' , 'ARCHITECTURE' , 'CONCEPTUALIZATION' ,
39
+ 'TEST_SCENARIOS' , 'CONTENT_CREATION' , 'TEST_SUITES' , 'SPECIFICATION' , 'RIA_BUILD_COMPETITION' ,
40
+ 'WEB_DESIGNS' , 'WIDGET_OR_MOBILE_SCREEN_DESIGN' , 'APPLICATION_FRONT_END_DESIGN' ,
41
+ 'PRINT_OR_PRESENTATION' , 'IDEA_GENERATION' , 'WIREFRAMES' , 'LOGO_DESIGN' , 'BANNERS_OR_ICONS' ,
42
+ 'STUDIO_OTHER' , 'FRONT_END_FLASH' ] ;
43
+
44
+ const DESIGN_TRACK_ONLY = [ 'WEB_DESIGNS' , 'WIDGET_OR_MOBILE_SCREEN_DESIGN' , 'DESIGN_FIRST_2_FINISH' ,
45
+ 'APPLICATION_FRONT_END_DESIGN' , 'PRINT_OR_PRESENTATION' , 'IDEA_GENERATION' , 'WIREFRAMES' ,
46
+ 'LOGO_DESIGN' , 'BANNERS_OR_ICONS' , 'STUDIO_OTHER' , 'FRONT_END_FLASH' ] ;
47
+
48
+ const DATASCIENCE_TRACK_ONLY = [ 'DEVELOP_MARATHON_MATCH' , 'MARATHON_MATCH' , 'SRM' ] ;
49
+
50
+
37
51
export class ListingContainer extends React . Component {
38
52
componentDidMount ( ) {
39
53
const {
@@ -171,18 +185,40 @@ export class ListingContainer extends React.Component {
171
185
selectedCommunityId,
172
186
} = this . props ;
173
187
188
+ const finalTracks = _ . clone ( filter . tracks ) || { } ;
189
+ let finalSubTracks = _ . clone ( filter . subtracks ) ;
190
+
174
191
const f = { } ;
175
192
if ( ! filter ) {
176
193
return f ;
177
194
}
195
+
178
196
if ( filter . tags ) {
179
197
f . keywords = filter . tags . join ( ',' ) ;
180
198
}
181
- if ( filter . subtracks ) {
182
- f . subTrack = filter . subtracks . join ( ',' ) ;
183
- }
199
+
184
200
if ( filter . tracks ) {
185
- const tracks = Object . keys ( filter . tracks ) . map ( t => t . toUpperCase ( ) ) ;
201
+ if ( ! ( ! filter . tracks . design && filter . tracks . develop && filter . tracks . data_science ) ) {
202
+ finalSubTracks = [ ] ;
203
+ }
204
+
205
+ if ( filter . tracks . design ) {
206
+ finalSubTracks = _ . concat ( finalSubTracks , DESIGN_TRACK_ONLY ) ;
207
+ }
208
+
209
+ if ( filter . tracks . develop && ! filter . tracks . data_science ) {
210
+ finalSubTracks = _ . concat ( finalSubTracks , DEVELOP_TRACK_ONLY ) ;
211
+ } else if ( ! filter . tracks . develop && filter . tracks . data_science ) {
212
+ finalTracks . develop = true ;
213
+ finalSubTracks = _ . concat ( finalSubTracks , DATASCIENCE_TRACK_ONLY ) ;
214
+ }
215
+ }
216
+
217
+ if ( finalSubTracks ) {
218
+ f . subTrack = finalSubTracks . join ( ',' ) ;
219
+ }
220
+ if ( filter . tracks && finalTracks ) {
221
+ const tracks = Object . keys ( finalTracks ) . map ( t => t . toUpperCase ( ) ) ;
186
222
f . track = tracks . join ( ',' ) ;
187
223
}
188
224
if ( filter . text ) {
0 commit comments