Skip to content

Commit

Permalink
fix: Fix up accordions a bit (#3615)
Browse files Browse the repository at this point in the history
  • Loading branch information
taion committed Apr 10, 2019
1 parent 3f1de16 commit 511e566
Show file tree
Hide file tree
Showing 6 changed files with 19 additions and 38 deletions.
18 changes: 10 additions & 8 deletions src/AccordionCollapse.js
Expand Up @@ -13,15 +13,17 @@ const propTypes = {
children: PropTypes.element.isRequired,
};

const AccordionCollapse = ({ children, eventKey, ...props }) => {
const contextEventKey = useContext(AccordionContext);
const AccordionCollapse = React.forwardRef(
({ children, eventKey, ...props }, ref) => {
const contextEventKey = useContext(AccordionContext);

return (
<Collapse in={contextEventKey === eventKey} {...props}>
{React.Children.only(children)}
</Collapse>
);
};
return (
<Collapse ref={ref} in={contextEventKey === eventKey} {...props}>
<div>{React.Children.only(children)}</div>
</Collapse>
);
},
);

AccordionCollapse.propTypes = propTypes;

Expand Down
6 changes: 3 additions & 3 deletions src/AccordionToggle.js
Expand Up @@ -30,9 +30,9 @@ const AccordionToggle = React.forwardRef(
return (
<Component
ref={ref}
onClick={() => {
onSelect(eventKey);
if (onClick) onClick(eventKey);
onClick={e => {
onSelect(eventKey, e);
if (onClick) onClick(e);
}}
{...props}
>
Expand Down
1 change: 0 additions & 1 deletion test/AccordionSpec.js
Expand Up @@ -88,6 +88,5 @@ describe('<Accordion>', () => {
.simulate('click');

expect(onClickSpy).to.be.calledOnce;
expect(onClickSpy).to.be.calledWith('0');
});
});
10 changes: 2 additions & 8 deletions www/src/examples/Accordion/AllCollapse.js
@@ -1,10 +1,7 @@
<Accordion>
<Card>
<Card.Header>
<Accordion.Toggle
onClick={key => console.log(`I've been clicked by : ${key}`)}
eventKey="0"
>
<Accordion.Toggle as={Button} variant="link" eventKey="0">
Click me!
</Accordion.Toggle>
</Card.Header>
Expand All @@ -14,10 +11,7 @@
</Card>
<Card>
<Card.Header>
<Accordion.Toggle
onClick={key => console.log(`I've been clicked by : ${key}`)}
eventKey="1"
>
<Accordion.Toggle as={Button} variant="link" eventKey="1">
Click me!
</Accordion.Toggle>
</Card.Header>
Expand Down
10 changes: 2 additions & 8 deletions www/src/examples/Accordion/Basic.js
@@ -1,10 +1,7 @@
<Accordion defaultActiveKey="0">
<Card>
<Card.Header>
<Accordion.Toggle
onClick={key => console.log(`I've been clicked by : ${key}`)}
eventKey="0"
>
<Accordion.Toggle as={Button} variant="link" eventKey="0">
Click me!
</Accordion.Toggle>
</Card.Header>
Expand All @@ -14,10 +11,7 @@
</Card>
<Card>
<Card.Header>
<Accordion.Toggle
onClick={key => console.log(`I've been clicked by : ${key}`)}
eventKey="1"
>
<Accordion.Toggle as={Button} variant="link" eventKey="1">
Click me!
</Accordion.Toggle>
</Card.Header>
Expand Down
12 changes: 2 additions & 10 deletions www/src/examples/Accordion/EntireHeaderClickable.js
@@ -1,22 +1,14 @@
<Accordion defaultActiveKey="0">
<Card>
<Accordion.Toggle
as={Card.Header}
onClick={key => console.log(`I've been clicked by : ${key}`)}
eventKey="0"
>
<Accordion.Toggle as={Card.Header} eventKey="0">
Click me!
</Accordion.Toggle>
<Accordion.Collapse eventKey="0">
<Card.Body>Hello! I'm the body</Card.Body>
</Accordion.Collapse>
</Card>
<Card>
<Accordion.Toggle
as={Card.Header}
onClick={key => console.log(`I've been clicked by : ${key}`)}
eventKey="1"
>
<Accordion.Toggle as={Card.Header} eventKey="1">
Click me!
</Accordion.Toggle>
<Accordion.Collapse eventKey="1">
Expand Down

0 comments on commit 511e566

Please sign in to comment.