UNPKG

@wener/ui

Version:

36 lines 1.87 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.LayoutFrameMenu = void 0; const react_1 = __importDefault(require("react")); const antd_1 = require("antd"); const layout_1 = require("./layout"); const useNamedTheme_1 = require("../../../hooks/useNamedTheme"); exports.LayoutFrameMenu = ({ children, ...props }) => { const { menus, link = 'a', menuProps = {} } = layout_1.useLayoutFrameOptions(); const [theme] = useNamedTheme_1.useNamedTheme(); return (react_1.default.createElement(antd_1.Menu, Object.assign({ theme: theme === 'dark' ? 'dark' : 'light', mode: "inline" }, menuProps, props), renderMenus(menus, { link }))); }; function renderMenus(menus, opts) { return menus.map((v) => renderMenu(v, opts)); } function renderMenu(menu, opts) { const { path, title, iconComponent, children = [] } = menu; if (path || children.length === 0) { return renderMenuItem(menu, opts); } return (react_1.default.createElement(antd_1.Menu.SubMenu, { key: path || title, title: react_1.default.createElement("div", null, iconComponent, react_1.default.createElement("span", null, title)) }, children.map((v) => renderMenuItem(v, opts)))); } function renderMenuItem(menu, { link: Link }) { const { path, title, iconComponent } = menu; return (react_1.default.createElement(antd_1.Menu.Item, { key: path || title }, react_1.default.createElement(Link, { href: path }, react_1.default.createElement("div", null, iconComponent, react_1.default.createElement("span", { style: { ...(iconComponent ? { marginLeft: 10 } : {}) } }, title))))); } //# sourceMappingURL=LayoutFrameMenu.js.map