@doreamonjs/gate
Version:
gate for doreamonjs
34 lines (33 loc) • 1.34 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const react_1 = __importDefault(require("react"));
const dva_1 = require("dva");
const classnames_1 = __importDefault(require("classnames"));
const components_1 = require("@doreamonjs/components");
require("./index.less");
const Menu = (props) => {
const { theme, menus, nav, onNavigate } = props;
const containerCls = classnames_1.default('layout-menu', {
siderMenuContainer: true,
[theme]: !!theme,
});
return (react_1.default.createElement("div", { className: containerCls },
react_1.default.createElement(components_1.Menus, { theme: theme, collapsed: props.collapsed, selected: nav.current, menus: menus, onMenuClick: onNavigate })));
};
const mapState = ({ applications, menus }) => ({
menus: menus.data,
theme: applications.theme,
nav: menus.nav,
collapsed: applications.collapsed,
});
const mapAction = (dispatch) => ({
onNavigate: (path, name) => dispatch({
type: 'menus/navigate',
payload: path,
}),
onSideClose: () => dispatch({ type: 'applications/toggle/sider' }),
});
exports.default = dva_1.connect(mapState, mapAction)(Menu);