Skip to content

Commit

Permalink
fix(HeaderMenu): use composeEventHandlers in HeaderMenu (#14353)
Browse files Browse the repository at this point in the history
  • Loading branch information
tw15egan authored Jul 31, 2023
1 parent a6ae38b commit a679dae
Showing 1 changed file with 25 additions and 3 deletions.
28 changes: 25 additions & 3 deletions packages/react/src/components/UIShell/HeaderMenu.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ import { keys, matches } from '../../internal/keyboard';
import { AriaLabelPropType } from '../../prop-types/AriaPropTypes';
import { PrefixContext } from '../../internal/usePrefix';
import deprecate from '../../prop-types/deprecate';
import { composeEventHandlers } from '../../tools/events';

/**
* `HeaderMenu` is used to render submenu's in the `Header`. Most often children
Expand Down Expand Up @@ -57,6 +58,24 @@ class HeaderMenu extends React.Component {
*/
menuLinkName: PropTypes.string.isRequired,

/**
* Optionally provide an onBlur handler that is called when the underlying
* button fires it's onblur event
*/
onBlur: PropTypes.func,

/**
* Optionally provide an onClick handler that is called when the underlying
* button fires it's onclick event
*/
onClick: PropTypes.func,

/**
* Optionally provide an onKeyDown handler that is called when the underlying
* button fires it's onkeydown event
*/
onKeyDown: PropTypes.func,

/**
* Optional component to render instead of string
*/
Expand Down Expand Up @@ -190,6 +209,9 @@ class HeaderMenu extends React.Component {
renderMenuContent: MenuContent,
menuLinkName,
focusRef, // eslint-disable-line no-unused-vars
onBlur,
onClick,
onKeyDown,
...rest
} = this.props;

Expand Down Expand Up @@ -226,9 +248,9 @@ class HeaderMenu extends React.Component {
<li // eslint-disable-line jsx-a11y/mouse-events-have-key-events,jsx-a11y/no-noninteractive-element-interactions
{...rest}
className={itemClassName}
onKeyDown={this.handleMenuClose}
onClick={this.handleOnClick}
onBlur={this.handleOnBlur}>
onKeyDown={composeEventHandlers([onKeyDown, this.handleMenuClose])}
onClick={composeEventHandlers([onClick, this.handleOnClick])}
onBlur={composeEventHandlers([onBlur, this.handleOnBlur])}>
<a // eslint-disable-line jsx-a11y/role-supports-aria-props,jsx-a11y/anchor-is-valid
aria-haspopup="menu" // eslint-disable-line jsx-a11y/aria-proptypes
aria-expanded={this.state.expanded}
Expand Down

0 comments on commit a679dae

Please sign in to comment.