@@ -191,7 +191,10 @@ class Markets extends React.Component {
191
191
} ;
192
192
193
193
toggleAccordion = ( ) => {
194
- this . setState ( { open_accordion : ! this . state . open_accordion } ) ;
194
+ this . setState ( ( prevState ) => ( {
195
+ ...prevState ,
196
+ open_accordion : ! prevState . open_accordion ,
197
+ } ) ) ;
195
198
}
196
199
197
200
getCurrentUnderlying = ( ) => {
@@ -228,7 +231,6 @@ class Markets extends React.Component {
228
231
} else {
229
232
this . setState ( {
230
233
subgroup_active : false ,
231
- open_accordion : false ,
232
234
} ) ;
233
235
}
234
236
}
@@ -523,11 +525,16 @@ class Markets extends React.Component {
523
525
< div >
524
526
{ group_markets [ item ] . markets . map ( ( m ) => (
525
527
< div
526
- className = { `market ${ active_market === m . key ? 'active' : '' } ` }
528
+ className = { classNames ( 'market' , {
529
+ 'active' : active_market === m . key ,
530
+ } ) }
527
531
key = { m . key }
528
532
onClick = { scrollToMarket . bind ( null , `${ m . key } ` ) }
529
533
>
530
- < span className = { `icon ${ m . key } ${ active_market === m . key ? 'active' : '' } ` } />
534
+ < span className = { classNames ( `icon ${ m . key } ` , {
535
+ 'active' : active_market === m . key ,
536
+ } ) }
537
+ />
531
538
< span > { m . name } </ span >
532
539
</ div > ) ) }
533
540
</ div >
@@ -538,18 +545,30 @@ class Markets extends React.Component {
538
545
>
539
546
< div
540
547
className = { classNames ( 'market' , {
541
- 'active' : subgroup_active ,
548
+ 'active' : subgroup_active ,
549
+ 'accordion-label' : ! ! open_accordion ,
542
550
} ) }
543
- onClick = { toggleAccordion || ( subgroup_active ? toggleAccordion : '' ) }
551
+ onClick = { toggleAccordion }
544
552
>
545
- < span className = { `icon synthetic_index ${ open_accordion ? 'active' : '' } ` } />
553
+ < span className = { classNames ( 'icon synthetic_index' , {
554
+ 'active' : subgroup_active ,
555
+ } ) }
556
+ />
546
557
< span > { group_markets [ item ] . markets [ 0 ] . subgroup_name } </ span >
547
- < span className = { `accordion-icon icon ${ open_accordion ? 'active' : '' } ` } />
558
+ < span className = { classNames ( 'accordion-icon icon' , {
559
+ 'active' : open_accordion ,
560
+ } ) }
561
+ />
548
562
</ div >
549
- < div className = { `${ open_accordion ? 'accordion-content--active' : 'accordion-content' } ` } >
563
+ < div className = { classNames ( 'accordion-content' , {
564
+ 'accordion-content--active' : open_accordion ,
565
+ } ) }
566
+ >
550
567
{ group_markets [ item ] . markets . map ( ( m ) => (
551
568
< div
552
- className = { `subgroup market ${ active_market === m . key ? 'subgroup-active' : '' } ` }
569
+ className = { classNames ( 'subgroup market' , {
570
+ 'subgroup-active' : active_market === m . key ,
571
+ } ) }
553
572
key = { m . key }
554
573
onClick = { scrollToMarket . bind ( null , `${ m . key } ` ) }
555
574
>
@@ -576,9 +595,14 @@ class Markets extends React.Component {
576
595
onClick = { scrollToMarket . bind ( null , m . key ) }
577
596
key = { m . key }
578
597
data-market = { m . key }
579
- className = { active_market === m . key ? 'active' : '' }
598
+ className = { classNames ( '' , {
599
+ 'active' : active_market === m . key ,
600
+ } ) }
580
601
>
581
- < span className = { `icon ${ m . key } ${ active_market === m . key ? 'active' : '' } ` } />
602
+ < span className = { classNames ( `icon ${ m . key } ` , {
603
+ 'active' : active_market === m . key ,
604
+ } ) }
605
+ />
582
606
</ li >
583
607
) ) }
584
608
</ React . Fragment >
@@ -591,7 +615,10 @@ class Markets extends React.Component {
591
615
'active' : ( active_market === derived_category || subgroup_active ) ,
592
616
} ) }
593
617
>
594
- < span className = { `icon synthetic_index ${ ( active_market === derived_category || subgroup_active ) ? 'active' : '' } ` } />
618
+ < span className = { classNames ( 'icon synthetic_index' , {
619
+ 'active' : active_market === derived_category || subgroup_active ,
620
+ } ) }
621
+ />
595
622
</ li >
596
623
)
597
624
) ;
0 commit comments