@atlaskit/dropdown-menu
Version:
A dropdown menu displays a list of actions or options to a user.
26 lines (25 loc) • 1.04 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _react = require("react");
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
var _focusManager = require("../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 = (0, _react.useContext)(_focusManager.FocusManagerContext),
registerRef = _useContext.registerRef;
var itemRef = (0, _react.useRef)(null);
(0, _react.useEffect)(function () {
if (hasPopup && (0, _platformFeatureFlags.fg)('select-avoid-duplicated-registered-ref')) {
return;
}
registerRef(itemRef);
}, [registerRef, hasPopup]);
return itemRef;
}
var _default = exports.default = useRegisterItemWithFocusManager;