Skip to content

Commit 9837955

Browse files
committed
Add React Router V4
1 parent 5601d8d commit 9837955

File tree

4 files changed

+51
-25
lines changed

4 files changed

+51
-25
lines changed

package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,10 @@
1212
"dependencies": {
1313
"antd": "2.13.6",
1414
"babel-polyfill": "^6.26.0",
15+
"prop-types": "^15.6.0",
1516
"react": "15.6.2",
1617
"react-dom": "15.6.2",
18+
"react-router-dom": "^4.2.2",
1719
"react-scripts": "1.0.14"
1820
},
1921
"devDependencies": {

src/components/App.js

Lines changed: 26 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,39 +1,41 @@
11
import React, { Component } from 'react';
2+
import PropTypes from 'prop-types';
3+
import Container from './common/Container';
24

3-
import { Layout, Menu, Breadcrumb } from 'antd';
5+
import { Layout, Menu, Breadcrumb, Icon } from 'antd';
46
const { Header, Content, Footer } = Layout;
57

68
class App extends Component {
79
render() {
810
return (
911
<Layout className="layout">
10-
<Header>
11-
<div className="logo" />
12-
<Menu
13-
theme="dark"
14-
mode="horizontal"
15-
defaultSelectedKeys={['2']}
16-
style={{ lineHeight: '64px' }}
17-
>
18-
<Menu.Item key="1">nav 1</Menu.Item>
19-
<Menu.Item key="2">nav 2</Menu.Item>
20-
<Menu.Item key="3">nav 3</Menu.Item>
21-
</Menu>
12+
<Header style={{background: "#fff"}}>
13+
<Container>
14+
<span>Пользователь: <b>Tester</b></span>
15+
<Menu
16+
mode="horizontal"
17+
selectable={false}
18+
style={{ lineHeight: '63px', display: 'inline'}}
19+
>
20+
<Menu.Item style={{float: "right"}}>Выйти <Icon type="logout"/></Menu.Item>
21+
</Menu>
22+
</Container>
2223
</Header>
23-
<Content style={{ padding: '0 50px' }}>
24-
<Breadcrumb style={{ margin: '16px 0' }}>
25-
<Breadcrumb.Item>Home</Breadcrumb.Item>
26-
<Breadcrumb.Item>List</Breadcrumb.Item>
27-
<Breadcrumb.Item>App</Breadcrumb.Item>
28-
</Breadcrumb>
29-
<div style={{ background: '#fff', padding: 24, minHeight: 280 }}>Content</div>
30-
</Content>
31-
<Footer style={{ textAlign: 'center' }}>
32-
Ant Design ©2016 Created by Ant UED
33-
</Footer>
24+
<Container>
25+
<Content style={{ minHeight: "calc(100vh - 130px)" }}>
26+
{this.props.children}
27+
</Content>
28+
<Footer style={{ textAlign: 'center' }}>
29+
Sergey Sarkisyan ©2017 Built with React and Ant Design
30+
</Footer>
31+
</Container>
3432
</Layout>
3533
);
3634
}
3735
}
3836

37+
App.propTypes = {
38+
children: PropTypes.node
39+
};
40+
3941
export default App;

src/components/common/Container.js

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import React from 'react';
2+
import PropTypes from 'prop-types';
3+
4+
const Container = (props) => {
5+
return (
6+
<div className="container">
7+
{props.children}
8+
</div>
9+
);
10+
};
11+
12+
Container.propTypes = {
13+
children: PropTypes.node
14+
};
15+
16+
export default Container;

src/index.js

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,12 @@
11
import React from 'react';
22
import ReactDOM from 'react-dom';
3+
import { BrowserRouter } from 'react-router-dom';
34
import App from './components/App';
45
import './index.csp';
56

6-
ReactDOM.render(<App />, document.getElementById('app'));
7+
ReactDOM.render(
8+
<BrowserRouter>
9+
<App />
10+
</BrowserRouter>,
11+
document.getElementById('app')
12+
);

0 commit comments

Comments
 (0)