UNPKG

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