@ozen-ui/kit
Version:
React component library
41 lines (40 loc) • 2.86 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Menu = exports.cnMenu = void 0;
var tslib_1 = require("tslib");
require("./Menu.css");
var react_1 = tslib_1.__importStar(require("react"));
var useDeprecated_1 = require("../../hooks/useDeprecated");
var useThemeProps_1 = require("../../hooks/useThemeProps");
var utils_1 = require("../../utils");
var classname_1 = require("../../utils/classname");
var getPaperSizeToFormElement_1 = require("../../utils/getPaperSizeToFormElement");
var Paper_1 = require("../Paper");
var Popover_1 = require("../Popover");
var components_1 = require("./components");
var constants_1 = require("./constants");
exports.cnMenu = (0, classname_1.cn)('Menu');
exports.Menu = (0, react_1.forwardRef)(function (inProps, ref) {
var _a;
var props = (0, useThemeProps_1.useThemeProps)({ props: inProps, name: 'Menu' });
var _b = props.size, size = _b === void 0 ? constants_1.MENU_DEFAULT_SIZE : _b, open = props.open, menuListProps = props.menuListProps, menuListRef = props.menuListRef, onClose = props.onClose, children = props.children, className = props.className, _c = props.color, color = _c === void 0 ? constants_1.MENU_DEFAULT_COLOR : _c, _d = props.maxHeight, maxHeightProp = _d === void 0 ? constants_1.MENU_DEFAULT_MAX_HEIGHT : _d, other = tslib_1.__rest(props, ["size", "open", "menuListProps", "menuListRef", "onClose", "children", "className", "color", "maxHeight"]);
var radius = (0, getPaperSizeToFormElement_1.getPaperSizeToFormElement)(size);
(0, useDeprecated_1.useDeprecatedProperty)(!!menuListRef, 'menuListRef', 'menuListProps.ref');
var maxHeight = (function () {
if ((0, utils_1.isString)(maxHeightProp)) {
return maxHeightProp;
}
if ((0, utils_1.isNumber)(maxHeightProp)) {
return "".concat(maxHeightProp, "px");
}
if (maxHeightProp) {
return constants_1.MENU_DEFAULT_MAX_HEIGHT;
}
return 'initial';
})();
return (react_1.default.createElement(Popover_1.Popover, tslib_1.__assign({ as: Paper_1.Paper, offset: [0, 4], radius: radius }, other, { style: tslib_1.__assign(tslib_1.__assign({}, other.style), (0, utils_1.generateCSSVariables)((_a = {},
_a[constants_1.MENU_CSS_VARIABLES.MAX_HEIGHT] = maxHeight,
_a))), open: open, onClose: onClose, className: (0, exports.cnMenu)({ color: color }, [className]), disableEnforceFocus: true, ref: ref }),
react_1.default.createElement(components_1.MenuContextConsumer, { onClose: onClose, menuListRef: menuListRef, menuListProps: tslib_1.__assign(tslib_1.__assign({ size: size, color: color }, menuListProps), { ref: menuListRef || (menuListProps === null || menuListProps === void 0 ? void 0 : menuListProps.ref) }) }, children)));
});
exports.Menu.displayName = 'Menu';