UNPKG

@workday/canvas-kit-react

Version:

The parent module that contains all Workday Canvas Kit React components

33 lines (32 loc) 1.63 kB
"use strict"; 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 }); });