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 var mySubscriber = function( msg, data ){
16 console.log( msg, data );
17 };
18
19 var token = PubSub.subscribe( 'MY TOPIC', mySubscriber );
20
21 }
22
23
24 $renderItem(db) {
25 let res = [];
26 for(var k in db) {
27 const list = db[k];
28 const items = list.map((item, i) => {
29 return <Menu.Item key={item.page}>{item.page}</Menu.Item>
30 });
31 res.push((
32 <SubMenu key={k} title={k}>
33 {items}
34 </SubMenu>
35 ))
36 }
37 return res;
38 }
39
40 handleMenuClick({item, key, keyPath}) {
41 console.log(item, key);
42
43 PubSub.publish( 'MY TOPIC', 'hello world!' );
44
45 }
46
47 render() {
48
49 const menuItems = this.$renderItem(this.props.db);
50
51
52 return (
53 <Sider width={200} style={{ background: '#fff' }}>
54 <Menu
55 mode="inline"
56 defaultSelectedKeys={['0']}
57 defaultOpenKeys={['Comp']}
58 style={{ height: '100%' }}
59 onClick={this.handleMenuClick.bind(this)}
60 >
61 {menuItems}
62
63
64 </Menu>
65 </Sider>
66 )
67 }
68}
\No newline at end of file