@atlaskit/dropdown-menu
Version:
A dropdown menu displays a list of actions or options to a user.
20 lines • 742 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(hasPopup = false) {
const {
registerRef
} = useContext(FocusManagerContext);
const itemRef = useRef(null);
useEffect(() => {
if (hasPopup && fg('select-avoid-duplicated-registered-ref')) {
return;
}
registerRef(itemRef);
}, [registerRef, hasPopup]);
return itemRef;
}
export default useRegisterItemWithFocusManager;