UNPKG

1.73 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 let res = [];
22 config.category.forEach((cg, i) => {
23 const list = md[cg];
24 const items = list.map((item, i) => {
25 return <Menu.Item key={item.page}>{item.page}</Menu.Item>
26 res.push((
27 <SubMenu key={k} title={k}>
28 {items}
29 </SubMenu>
30 ))
31 });
32 });
33
34 /*let res = [];
35 for(var k in md) {
36 const list = md[k];
37 const items = list.map((item, i) => {
38 return <Menu.Item key={item.page}>{item.page}</Menu.Item>
39 });
40 res.push((
41 <SubMenu key={k} title={k}>
42 {items}
43 </SubMenu>
44 ))
45 }*/
46 return res;
47 }
48
49 handleMenuClick({item, key, keyPath}) {
50 console.log(item, key);
51
52 PubSub.publish('SET_PAGE', key);
53
54 }
55
56 render() {
57
58 const menuItems = this.$renderItem(this.props.db);
59
60
61 return (
62 <Menu
63 mode="inline"
64 defaultSelectedKeys={['0']}
65 defaultOpenKeys={['Comp']}
66 style={{ height: '100%' }}
67 onClick={this.handleMenuClick.bind(this)}
68 >
69 {menuItems}
70
71
72 </Menu>
73 )
74 }
75}
\No newline at end of file