@brizy/ui
Version:
React elements in Brizy style
26 lines (25 loc) • 1.43 kB
JavaScript
import React, { useCallback } from "react";
import AntMenu from "antd/lib/menu";
import { BRZ_PREFIX } from "../constants";
export function SidebarMenu({ children, mode, theme, selectedKeys, openKeys, onClick, onSelect, onOpenChange, triggerSubMenuAction, }) {
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({ className: `${BRZ_PREFIX}-menu__sidebar`, mode: mode, theme: theme, selectedKeys: selectedKeys, triggerSubMenuAction: triggerSubMenuAction, onClick: _onClick, onSelect: _onSelect, onOpenChange: _onOpenedChange }, selectedProps), children));
}
export { SidebarMenuGroup } from "./SidebarMenuGroup";
export { SidebarMenuItem } from "./SidebarMenuItem";
export { SidebarMenuSubmenu } from "./SidebarMenuSubmenu";