Skip to content

Commit 83ff4a0

Browse files
committed
refactor(Accordion): move to function
1 parent e55549a commit 83ff4a0

File tree

1 file changed

+25
-36
lines changed

1 file changed

+25
-36
lines changed

src/components/Accordion.tsx

+25-36
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import * as React from 'react';
2-
import DisplayName from '../helpers/DisplayName';
32
import { DivAttributes } from '../helpers/types';
43
import { Provider } from './AccordionContext';
54
import { UUID } from './ItemContext';
@@ -8,45 +7,35 @@ type AccordionProps = Pick<
87
DivAttributes,
98
Exclude<keyof DivAttributes, 'onChange'>
109
> & {
10+
className?: string;
1111
preExpanded?: UUID[];
1212
allowMultipleExpanded?: boolean;
1313
allowZeroExpanded?: boolean;
1414
onChange?(args: UUID[]): void;
1515
};
1616

17-
export default class Accordion extends React.Component<AccordionProps> {
18-
static defaultProps: AccordionProps = {
19-
allowMultipleExpanded: undefined,
20-
allowZeroExpanded: undefined,
21-
onChange: undefined,
22-
className: 'accordion',
23-
children: undefined,
24-
};
25-
26-
static displayName: DisplayName.Accordion = DisplayName.Accordion;
27-
28-
renderAccordion = (): JSX.Element => {
29-
const {
30-
preExpanded,
31-
allowMultipleExpanded,
32-
allowZeroExpanded,
33-
onChange,
34-
...rest
35-
} = this.props;
36-
37-
return <div data-accordion-component="Accordion" {...rest} />;
38-
};
17+
const Accordion = ({
18+
className = 'accordion',
19+
allowMultipleExpanded,
20+
allowZeroExpanded,
21+
onChange,
22+
preExpanded,
23+
...rest
24+
}: AccordionProps) => {
25+
return (
26+
<Provider
27+
preExpanded={preExpanded}
28+
allowMultipleExpanded={allowMultipleExpanded}
29+
allowZeroExpanded={allowZeroExpanded}
30+
onChange={onChange}
31+
>
32+
<div
33+
data-accordion-component="Accordion"
34+
className={className}
35+
{...rest}
36+
/>
37+
</Provider>
38+
);
39+
};
3940

40-
render(): JSX.Element {
41-
return (
42-
<Provider
43-
preExpanded={this.props.preExpanded}
44-
allowMultipleExpanded={this.props.allowMultipleExpanded}
45-
allowZeroExpanded={this.props.allowZeroExpanded}
46-
onChange={this.props.onChange}
47-
>
48-
{this.renderAccordion()}
49-
</Provider>
50-
);
51-
}
52-
}
41+
export default Accordion;

0 commit comments

Comments
 (0)