Skip to content

Commit

Permalink
Fix Add AccordionHeader onToggle callback (#1121)
Browse files Browse the repository at this point in the history
  • Loading branch information
cbuv authored Feb 22, 2021
1 parent e0e60f6 commit b6d85fd
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 0 deletions.
11 changes: 11 additions & 0 deletions libraries/core-react/src/components/Accordion/Accordion.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,17 @@ describe('Accordion', () => {
fireEvent.click(header)
expect(header).toHaveAttribute('aria-expanded', 'true')
})
it('triggers onToggle callback', () => {
const mockOnToggle = jest.fn()
render(
<AccordionItem isExpanded>
<AccordionHeader onToggle={mockOnToggle}>Summary 1</AccordionHeader>
</AccordionItem>,
)
const header = screen.queryByText('Summary 1').parentNode
fireEvent.click(header)
expect(mockOnToggle).toHaveBeenCalled()
})
it('Set header level', () => {
render(<SimpleAccordion headerLevel="h3" />)
expect(document.querySelectorAll('h3')).toHaveLength(2)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,8 @@ type AccordionHeaderProps = {
disabled?: boolean
/** @ignore */
toggleExpanded?: () => void
/** Accordion item toggle callback */
onToggle?: () => void
} & AccordionProps &
HTMLAttributes<HTMLDivElement>

Expand All @@ -116,13 +118,19 @@ const AccordionHeader = forwardRef<HTMLDivElement, AccordionHeaderProps>(
const handleClick = () => {
if (!disabled) {
toggleExpanded()
if (props.onToggle) {
props.onToggle()
}
}
}

const handleKeyDown = (event: React.KeyboardEvent) => {
const { key } = event
if (key === 'Enter' || key === ' ') {
toggleExpanded()
if (props.onToggle) {
props.onToggle()
}
event.preventDefault()
}
}
Expand Down

0 comments on commit b6d85fd

Please sign in to comment.