5
5
6
6
import React , { useEffect , useState , useRef } from 'react' ;
7
7
import PropTypes from 'prop-types' ;
8
+ import cx from 'classnames' ;
8
9
import { FormattedMessage , injectIntl } from 'react-intl' ;
9
10
import AnchorLink from 'react-anchor-link-smooth-scroll' ;
10
11
import { Accordion , Icon } from 'semantic-ui-react' ;
@@ -18,6 +19,7 @@ import './less/accordion-menu.less';
18
19
* @extends Component
19
20
*/
20
21
const View = ( { data, tocEntries } ) => {
22
+ const { bulleted_list = false } = data ;
21
23
const tocRef = useRef ( ) ; // Ref for the ToC component
22
24
const spacerRef = useRef ( ) ; // Ref for the spacer div
23
25
const [ activeItems , setActiveItems ] = useState ( { } ) ;
@@ -105,29 +107,30 @@ const View = ({ data, tocEntries }) => {
105
107
106
108
return (
107
109
< li key = { id } >
108
- { hasSubItems ? (
109
- < Accordion fluid styled >
110
- < Accordion . Title
111
- active = { isActive }
112
- onClick = { ( ) => handleClick ( id , hasSubItems ) }
113
- >
114
- { subItems && subItems . length > 0 && (
115
- < Icon name = { isActive ? 'angle up' : 'angle right' } />
116
- ) }
117
-
118
- < AnchorLink href = { `#${ slug } ` } > { title } </ AnchorLink >
119
- </ Accordion . Title >
110
+ < Accordion fluid styled >
111
+ < Accordion . Title
112
+ active = { isActive }
113
+ onClick = { ( ) => handleClick ( id , hasSubItems ) }
114
+ >
115
+ { subItems && subItems . length > 0 && (
116
+ < Icon name = { isActive ? 'angle up' : 'angle right' } />
117
+ ) }
118
+ < AnchorLink href = { `#${ slug } ` } > { title } </ AnchorLink >
119
+ </ Accordion . Title >
120
+ { hasSubItems && (
120
121
< Accordion . Content active = { isActive } >
121
- < ul className = "accordion-list" >
122
+ < ul
123
+ className = { cx ( 'accordion-list' , {
124
+ 'accordion-list-bulleted' : bulleted_list ,
125
+ } ) }
126
+ >
122
127
{ subItems . map ( ( child ) =>
123
128
RenderAccordionItems ( { item : child , level : level + 1 } ) ,
124
129
) }
125
130
</ ul >
126
131
</ Accordion . Content >
127
- </ Accordion >
128
- ) : (
129
- < AnchorLink href = { `#${ slug } ` } > { title } </ AnchorLink >
130
- ) }
132
+ ) }
133
+ </ Accordion >
131
134
</ li >
132
135
) ;
133
136
} ;
@@ -146,7 +149,7 @@ const View = ({ data, tocEntries }) => {
146
149
) }
147
150
< div ref = { spacerRef } /> { /* Spacer div */ }
148
151
< div ref = { tocRef } className = "accordionMenu" >
149
- < ul style = { { listStyle : 'none' } } >
152
+ < ul className = "accordion-list" >
150
153
{ tocEntries . map ( ( item ) => RenderAccordionItems ( { item } ) ) }
151
154
</ ul >
152
155
</ div >
0 commit comments