@@ -5,7 +5,21 @@ import type { AccordionItemProps } from './types';
5
5
import MDBCollapse from '../../Collapse/Collapse' ;
6
6
7
7
const MDBAccordionItem : React . FC < AccordionItemProps > = React . forwardRef < HTMLAllCollection , AccordionItemProps > (
8
- ( { className, bodyClassName, headerClassName, collapseId, headerTitle, tag : Tag , children, ...props } , ref ) => {
8
+ (
9
+ {
10
+ className,
11
+ bodyClassName,
12
+ bodyStyle,
13
+ headerClassName,
14
+ collapseId,
15
+ headerTitle,
16
+ headerStyle,
17
+ tag : Tag ,
18
+ children,
19
+ ...props
20
+ } ,
21
+ ref
22
+ ) => {
9
23
const { activeItem, setActiveItem, alwaysOpen, initialActive } = useContext ( AccordionContext ) ;
10
24
11
25
const [ openState , setOpenState ] = useState ( initialActive ) ;
@@ -18,23 +32,28 @@ const MDBAccordionItem: React.FC<AccordionItemProps> = React.forwardRef<HTMLAllC
18
32
alwaysOpen ? collapseId !== openState && 'collapsed' : collapseId !== activeItem && 'collapsed'
19
33
) ;
20
34
21
- const toggleAccordion = ( value : string ) => {
35
+ const toggleAccordion = ( value : number ) => {
22
36
if ( alwaysOpen ) {
23
- value !== openState ? setOpenState ( value ) : setOpenState ( '' ) ;
37
+ value !== openState ? setOpenState ( value ) : setOpenState ( 0 ) ;
24
38
} else {
25
- value !== activeItem ? setActiveItem ( value ) : setActiveItem ( '' ) ;
39
+ value !== activeItem ? setActiveItem ( value ) : setActiveItem ( 0 ) ;
26
40
}
27
41
} ;
28
42
29
43
return (
30
44
< Tag className = { classes } ref = { ref } { ...props } >
31
- < h2 className = { headerClasses } >
45
+ < h2 className = { headerClasses } style = { headerStyle } >
32
46
< button onClick = { ( ) => toggleAccordion ( collapseId ) } className = { buttonClasses } type = 'button' >
33
47
{ headerTitle }
34
48
</ button >
35
49
</ h2 >
36
- < MDBCollapse id = { collapseId } show = { alwaysOpen ? openState : activeItem } >
37
- < div className = { bodyClasses } > { children } </ div >
50
+ < MDBCollapse
51
+ id = { collapseId . toString ( ) }
52
+ show = { alwaysOpen ? openState === collapseId : activeItem === collapseId }
53
+ >
54
+ < div className = { bodyClasses } style = { bodyStyle } >
55
+ { children }
56
+ </ div >
38
57
</ MDBCollapse >
39
58
</ Tag >
40
59
) ;
0 commit comments