@workday/canvas-kit-react
Version:
The parent module that contains all Workday Canvas Kit React components
33 lines (32 loc) • 1.63 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.MenuTarget = exports.useMenuTargetContext = exports.useMenuTarget = void 0;
const jsx_runtime_1 = require("react/jsx-runtime");
const common_1 = require("@workday/canvas-kit-react/common");
const button_1 = require("@workday/canvas-kit-react/button");
const popup_1 = require("@workday/canvas-kit-react/popup");
const useMenuModel_1 = require("./useMenuModel");
const useMenuTargetBase = (0, common_1.createElemPropsHook)(useMenuModel_1.useMenuModel)(model => {
return {
id: model.state.id,
'aria-haspopup': 'true',
'aria-expanded': model.state.visibility === 'visible',
onKeyDown(event) {
// eslint-disable-next-line default-case
switch (event.key) {
case 'ArrowDown':
case 'ArrowUp': // this follow the keys for modern browsers https://developer.mozilla.org/en-US/docs/Web/API/UI_Events/Keyboard_event_key_values#navigation_keys
model.events.show(event);
}
},
};
});
exports.useMenuTarget = (0, common_1.composeHooks)(useMenuTargetBase, popup_1.usePopupTarget);
exports.useMenuTargetContext = (0, common_1.composeHooks)(useMenuTargetBase, popup_1.usePopupTargetContext);
exports.MenuTarget = (0, common_1.createSubcomponent)(button_1.SecondaryButton)({
displayName: 'Menu.Target',
modelHook: useMenuModel_1.useMenuModel,
elemPropsHook: exports.useMenuTarget,
})(({ children, ...elemProps }, Element) => {
return (0, jsx_runtime_1.jsx)(Element, { ...elemProps, children: children });
});