UNPKG

2.49 kBJavaScriptView Raw
1import React from 'react';
2import { Layout, Menu, Icon } from 'antd';
3import {
4 BrowserRouter as Router,
5 Route,
6 HashRouter,
7 Redirect,
8 Link
9} from 'react-router-dom';
10
11const { SubMenu } = Menu;
12const { Sider } = Layout;
13
14export default class SiderView extends React.Component {
15
16 constructor(props) {
17 super(props);
18 }
19
20 $renderItem(db) {
21
22 const{md, config} = db;
23
24 const res = [];
25
26 const category = config.category.slice();
27
28 const renderMenuItem = (list, cg) => {
29 const items = list.map((item, i) => {
30 const to = `/page/${item.page}`;
31 return(
32 <Menu.Item key={item.page}>
33 <Link to={to}>
34 {item.page}
35 </Link>
36 </Menu.Item>
37 )
38 });
39
40 return items;
41 };
42
43 category.forEach((cg, i) => {
44 const list = md[cg];
45 const items = renderMenuItem(list, cg);
46
47 res.push((
48 <SubMenu key={cg + '-key'} title={cg}>
49 {items}
50 </SubMenu>
51 ));
52
53 });
54
55 if (md.default && md.default.length) {
56 const items = md.default.map((item, i) => {
57 const to = `/page/${item.page}`;
58 return(
59 <Menu.Item key={item.page}>
60 <Link to={to}>
61 {item.page}
62 </Link>
63 </Menu.Item>
64 )
65 });
66
67 res.push(items);
68 }
69 return res;
70 }
71
72 componentDidMount() {
73 // const{md, config} =this.props.db;
74 // const cg = config.category[0];
75 // if(cg) PubSub.publish('SET_PAGE', md[cg][0].page);
76 }
77
78 render() {
79 const menuItems = this.$renderItem(this.props.db);
80 const{md, config} =this.props.db;
81 const cg = config.category[0];
82
83 const defaultKeys = config.category.map(item => {
84 return item + '-key';
85 })
86
87 // <Redirect to={`/page/${md[cg][0].page}`}/>
88
89 return (
90 <Menu
91 mode="inline"
92 defaultSelectedKeys={['0']}
93 defaultOpenKeys={defaultKeys}
94 style={{ height: '100%' }}
95 >
96 {menuItems}
97
98
99 </Menu>
100 )
101 }
102}
\No newline at end of file