UNPKG

@veracity/vui

Version:

Veracity UI is a React component library crafted for use within Veracity applications and pages. Based on Styled Components and @xstyled.

37 lines (35 loc) 1.16 kB
import { useCallbackRef } from "../utils/react.js"; import { cs } from "../utils/styles.js"; import { useStyleConfig } from "../core/theme.js"; import vui from "../core/vui.js"; import { ListItem } from "../list/listItem.js"; import { usePopoverContext } from "../popover/context.js"; import { useMenuContext } from "./context.js"; import { jsx } from "react/jsx-runtime"; //#region src/menu/menuItem.tsx /** Displays a list item and by default closes the menu on click. */ const MenuItem = vui((props, ref) => { const { className, onClick: onClickProp, ...rest } = props; const { close } = usePopoverContext() ?? {}; const { closeOnSelect, ...menuProps } = useMenuContext() ?? {}; const styles = useStyleConfig("Menu", { ...menuProps, ...props }); const onClick = useCallbackRef((e) => { onClickProp?.(e); closeOnSelect && close?.(); }); return /* @__PURE__ */ jsx(ListItem, { className: cs("vui-menuItem", className), onClick, ref, ...styles.item, ...rest }); }); MenuItem.displayName = "MenuItem"; //#endregion export { MenuItem, MenuItem as default }; globalThis.__vuiVersion__ = "5.3.1" //# sourceMappingURL=menuItem.js.map