UNPKG

@ozen-ui/kit

Version:

React component library

22 lines (21 loc) 1.69 kB
import { __assign, __rest } from "tslib"; import './Menu.css'; import React, { forwardRef } from 'react'; import { useDeprecatedProperty } from '../../hooks/useDeprecated'; import { useThemeProps } from '../../hooks/useThemeProps'; import { cn } from '../../utils/classname'; import { getPaperSizeToFormElement } from '../../utils/getPaperSizeToFormElement'; import { Paper } from '../Paper'; import { Popover } from '../Popover'; import { MenuContextConsumer } from './components'; import { MENU_DEFAULT_SIZE } from './constants'; export var cnMenu = cn('Menu'); export var Menu = forwardRef(function (inProps, ref) { var props = useThemeProps({ props: inProps, name: 'Menu' }); var _a = props.size, size = _a === void 0 ? MENU_DEFAULT_SIZE : _a, open = props.open, menuListProps = props.menuListProps, menuListRef = props.menuListRef, onClose = props.onClose, children = props.children, className = props.className, other = __rest(props, ["size", "open", "menuListProps", "menuListRef", "onClose", "children", "className"]); var radius = getPaperSizeToFormElement(size); useDeprecatedProperty(!!menuListRef, 'menuListRef', 'menuListProps.ref'); return (React.createElement(Popover, __assign({ as: Paper, offset: [0, 4], radius: radius }, other, { open: open, onClose: onClose, className: cnMenu('', [className]), disableEnforceFocus: true, ref: ref }), React.createElement(MenuContextConsumer, { onClose: onClose, menuListRef: menuListRef, menuListProps: __assign(__assign({ size: size }, menuListProps), { ref: menuListRef || (menuListProps === null || menuListProps === void 0 ? void 0 : menuListProps.ref) }) }, children))); }); Menu.displayName = 'Menu';