@brizy/ui
Version:
React elements in Brizy style
26 lines (25 loc) • 1.32 kB
JavaScript
import React, { useCallback } from "react";
import AntMenu from "antd/lib/menu";
export function Menu(props) {
const { children, mode, theme, selectedKeys, openKeys, onClick, onSelect, onOpenChange, triggerSubMenuAction } = props;
const _onSelect = useCallback(({ key }) => {
onSelect(String(key));
}, [onSelect]);
const _onClick = useCallback(({ key }) => {
if (selectedKeys === null || selectedKeys === void 0 ? void 0 : selectedKeys.includes(String(key))) {
onSelect(String(key));
}
onClick === null || onClick === void 0 ? void 0 : onClick(String(key));
}, [selectedKeys, onClick, onSelect]);
const _onOpenedChange = useCallback((keys) => {
onOpenChange === null || onOpenChange === void 0 ? void 0 : onOpenChange(keys);
}, [onOpenChange]);
const selectedProps = {};
if (Array.isArray(openKeys)) {
selectedProps.openKeys = openKeys;
}
return (React.createElement(AntMenu, Object.assign({ mode: mode, theme: theme, selectedKeys: selectedKeys, triggerSubMenuAction: triggerSubMenuAction, onClick: _onClick, onSelect: _onSelect, onOpenChange: _onOpenedChange }, selectedProps), children));
}
export { MenuGroup } from "./MenuGroup";
export { MenuItem } from "./MenuItem";
export { MenuSubmenu } from "./MenuSubmenu";