@@ -21,7 +21,6 @@ import './jobLisingStyles.scss';
21
21
22
22
const cookies = require ( 'browser-cookies' ) ;
23
23
24
- const CONTENT_PREVIEW_LENGTH = 175 ;
25
24
const GIGS_PER_PAGE = 10 ;
26
25
// Sort by dropdown
27
26
const sortByOptions = [
@@ -224,6 +223,23 @@ class RecruitCRMJobsContainer extends React.Component {
224
223
jobsToDisplay ,
225
224
page * GIGS_PER_PAGE , ( page * GIGS_PER_PAGE ) + GIGS_PER_PAGE ,
226
225
) ;
226
+ // hot list of gigs
227
+ let isHotlistRendered = false ;
228
+ const hotlist = ( ) => (
229
+ < div styleName = "hotlist" >
230
+ < div styleName = "hotlist-items" >
231
+ {
232
+ hotlistJobs . map ( ( hjob , indx ) => (
233
+ < Link styleName = { `hotlist-item-${ indx + 1 } ` } to = { `${ config . GIGS_PAGES_PATH } /${ hjob . slug } ` } key = { `hotlist-item-${ indx + 1 } ` } onClick = { ( ) => this . onHotlistClick ( hjob ) } >
234
+ < div styleName = "location" > < IconBlackLocation /> { hjob . country } </ div >
235
+ < h5 styleName = "job-title" > { hjob . name } </ h5 >
236
+ < div styleName = "job-money" > ${ hjob . min_annual_salary } - { hjob . max_annual_salary } / { getSalaryType ( hjob . salary_type ) } </ div >
237
+ </ Link >
238
+ ) )
239
+ }
240
+ </ div >
241
+ </ div >
242
+ ) ;
227
243
228
244
return (
229
245
< div styleName = { hotlistJobs . length && decision . enabled ? 'container-with-hotlist' : 'container' } >
@@ -236,58 +252,34 @@ class RecruitCRMJobsContainer extends React.Component {
236
252
< div styleName = "jobs-list-container" >
237
253
{
238
254
jobsToDisplay . length
239
- ? jobsToDisplay . map ( job => < JobListCard job = { job } key = { job . slug } /> )
240
- : < span styleName = "no-results" > No Results</ span >
255
+ ? jobsToDisplay . map ( ( job ) => {
256
+ const featured = getCustomField ( job . custom_fields , 'Featured' ) ;
257
+ if ( featured === 'n/a' && ! isHotlistRendered && hotlistJobs . length && decision . enabled ) {
258
+ isHotlistRendered = true ;
259
+ return (
260
+ < React . Fragment >
261
+ { hotlist ( ) }
262
+ < JobListCard job = { job } key = { job . slug } />
263
+ </ React . Fragment >
264
+ ) ;
265
+ }
266
+ return < JobListCard job = { job } key = { job . slug } /> ;
267
+ } )
268
+ : (
269
+ < React . Fragment >
270
+ {
271
+ hotlistJobs . length && decision . enabled && hotlist ( )
272
+ }
273
+ < span styleName = "no-results" > No Results</ span >
274
+ </ React . Fragment >
275
+ )
241
276
}
242
277
</ div >
243
278
{
244
279
jobsToDisplay . length
245
280
? < Paginate onChange = { this . onPaginate } pages = { pages } page = { page } /> : null
246
281
}
247
282
</ div >
248
- {
249
- hotlistJobs . length && decision . enabled && (
250
- < div styleName = "hotlist" >
251
- < h5 > HOT THIS WEEK</ h5 >
252
- < div styleName = "hotlist-items" >
253
- {
254
- hotlistJobs . map ( ( hjob , indx ) => ( indx <= 1 ? (
255
- < Link styleName = { `hotlist-item-${ indx + 1 } ` } to = { `${ config . GIGS_PAGES_PATH } /${ hjob . slug } ` } key = { `hotlist-item-${ indx + 1 } ` } onClick = { ( ) => this . onHotlistClick ( hjob ) } >
256
- < div styleName = "location" > < IconBlackLocation /> { hjob . country } </ div >
257
- < h5 styleName = "job-title" > { hjob . name } </ h5 >
258
- < div styleName = "job-money" > ${ hjob . min_annual_salary } - { hjob . max_annual_salary } / { getSalaryType ( hjob . salary_type ) } </ div >
259
- {
260
- getCustomField ( hjob . custom_fields , 'Hotlist excerpt' ) !== 'n/a' ? (
261
- < div styleName = "job-desc" >
262
- {
263
- `${ getCustomField ( hjob . custom_fields , 'Hotlist excerpt' ) . substring ( 0 , CONTENT_PREVIEW_LENGTH ) } ${ getCustomField ( hjob . custom_fields , 'Hotlist excerpt' ) . length > CONTENT_PREVIEW_LENGTH ? '...' : '' } `
264
- }
265
- </ div >
266
- ) : null
267
- }
268
- </ Link >
269
- ) : (
270
- < div styleName = { `hotlist-item-${ indx + 1 } ` } to = { `${ config . GIGS_PAGES_PATH } /${ hjob . slug } ` } key = { `hotlist-item-${ indx + 1 } ` } >
271
- < div styleName = "location" > < IconBlackLocation /> { hjob . country } </ div >
272
- < h5 styleName = "job-title" > { hjob . name } </ h5 >
273
- < div styleName = "job-money" > ${ hjob . min_annual_salary } - { hjob . max_annual_salary } / { getSalaryType ( hjob . salary_type ) } </ div >
274
- {
275
- getCustomField ( hjob . custom_fields , 'Hotlist excerpt' ) !== 'n/a' ? (
276
- < div styleName = "job-desc" >
277
- {
278
- `${ getCustomField ( hjob . custom_fields , 'Hotlist excerpt' ) . substring ( 0 , CONTENT_PREVIEW_LENGTH ) } ${ getCustomField ( hjob . custom_fields , 'Hotlist excerpt' ) . length > CONTENT_PREVIEW_LENGTH ? '...' : '' } `
279
- }
280
- </ div >
281
- ) : null
282
- }
283
- < Link styleName = { `hotlist-item-button-${ indx + 1 } ` } to = { `${ config . GIGS_PAGES_PATH } /${ hjob . slug } ` } onClick = { ( ) => this . onHotlistClick ( hjob ) } > Apply Now</ Link >
284
- </ div >
285
- ) ) )
286
- }
287
- </ div >
288
- </ div >
289
- )
290
- }
291
283
</ div >
292
284
) ;
293
285
}
0 commit comments