UNPKG

1.55 kBJavaScriptView Raw
1import React from 'react';
2import { Layout, Menu, Icon } from 'antd';
3
4const { SubMenu } = Menu;
5const { Sider } = Layout;
6
7import PubSub from 'pubsub-js';
8
9
10export default class SiderView extends React.Component {
11
12 constructor(props) {
13 super(props);
14 }
15
16
17 $renderItem(db) {
18
19 const{md, config} = db;
20
21 config.category.forEach((cg, i) => {
22 const list = md[cg];
23 const items = list.map((item, i) => {
24 return <Menu.Item key={item.page}>{item.page}</Menu.Item>
25 });
26 });
27
28 let res = [];
29 for(var k in md) {
30 const list = md[k];
31 const items = list.map((item, i) => {
32 return <Menu.Item key={item.page}>{item.page}</Menu.Item>
33 });
34 res.push((
35 <SubMenu key={k} title={k}>
36 {items}
37 </SubMenu>
38 ))
39 }
40 return res;
41 }
42
43 handleMenuClick({item, key, keyPath}) {
44 console.log(item, key);
45
46 PubSub.publish('SET_PAGE', key);
47
48 }
49
50 render() {
51
52 const menuItems = this.$renderItem(this.props.db);
53
54
55 return (
56 <Menu
57 mode="inline"
58 defaultSelectedKeys={['0']}
59 defaultOpenKeys={['Comp']}
60 style={{ height: '100%' }}
61 onClick={this.handleMenuClick.bind(this)}
62 >
63 {menuItems}
64
65
66 </Menu>
67 )
68 }
69}
\No newline at end of file