UNPKG

@szhsin/react-accordion

Version:

The complete accordion solution for React.

30 lines (27 loc) 631 B
import { ACCORDION_BTN_ATTR } from '../utils/constants.mjs'; import { useId } from './useId.mjs'; const useAccordionItem = ({ state, toggle, disabled }) => { const buttonId = useId(); const panelId = buttonId && buttonId + '-'; const buttonProps = { id: buttonId, 'aria-controls': panelId, 'aria-expanded': state.isEnter, onClick: toggle }; disabled ? buttonProps.disabled = true : buttonProps[ACCORDION_BTN_ATTR] = ''; const panelProps = { id: panelId, 'aria-labelledby': buttonId, role: 'region' }; return { buttonProps, panelProps }; }; export { useAccordionItem };