@atlaskit/dropdown-menu
Version:
A dropdown menu displays a list of actions or options to a user.
20 lines • 853 B
JavaScript
import { useContext, useEffect, useRef } from 'react';
import { fg } from '@atlaskit/platform-feature-flags';
import { FocusManagerContext } from '../components/focus-manager';
// This function is called whenever a MenuItem mounts.
// The refs stored in the context are used to programmatically
// control focus on a user navigates using the keyboard.
function useRegisterItemWithFocusManager() {
var hasPopup = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
var _useContext = useContext(FocusManagerContext),
registerRef = _useContext.registerRef;
var itemRef = useRef(null);
useEffect(function () {
if (hasPopup && fg('select-avoid-duplicated-registered-ref')) {
return;
}
registerRef(itemRef);
}, [registerRef, hasPopup]);
return itemRef;
}
export default useRegisterItemWithFocusManager;