Skip to content

Commit c1fb283

Browse files
committed
part3: React Bootstrap - NavBar
1 parent 03986fb commit c1fb283

File tree

4 files changed

+151
-30
lines changed

4 files changed

+151
-30
lines changed

package-lock.json

Lines changed: 79 additions & 7 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,9 @@
55
"dependencies": {
66
"axios": "^0.16.2",
77
"react": "^16.0.0",
8+
"react-bootstrap": "^0.31.0",
89
"react-dom": "^16.0.0",
10+
"react-router-bootstrap": "^0.24.2",
911
"react-router-dom": "^4.1.1"
1012
},
1113
"devDependencies": {

src/App.jsx

Lines changed: 30 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import axios from 'axios';
55
import UsersList from './components/UsersList';
66
import AddUser from './components/AddUser';
77
import About from './components/About';
8+
import NavBar from './components/NavBar';
89

910

1011
class App extends Component {
@@ -13,7 +14,8 @@ class App extends Component {
1314
this.state = {
1415
users: [],
1516
username: '',
16-
email: ''
17+
email: '',
18+
title: 'repodevs - microservices'
1719
}
1820
}
1921

@@ -48,31 +50,36 @@ class App extends Component {
4850

4951
render() {
5052
return (
51-
<div className="container">
52-
<div className="row">
53-
<div className="col-md-6">
54-
<br/>
55-
<Switch>
56-
<Route exact path='/' render={() => (
57-
<div>
58-
<h1>All User</h1>
59-
<hr/><br/>
60-
<AddUser
61-
username={this.state.username}
62-
email={this.state.email}
63-
handleChange={this.handleChange.bind(this)}
64-
addUser={this.addUser.bind(this)}
65-
/>
66-
<br/>
67-
<UsersList users={this.state.users} />
68-
</div>
53+
<div>
54+
<NavBar
55+
title={this.state.title}
56+
/>
57+
<div className="container">
58+
<div className="row">
59+
<div className="col-md-6">
60+
<br/>
61+
<Switch>
62+
<Route exact path='/' render={() => (
63+
<div>
64+
<h1>All User</h1>
65+
<hr/><br/>
66+
<AddUser
67+
username={this.state.username}
68+
email={this.state.email}
69+
handleChange={this.handleChange.bind(this)}
70+
addUser={this.addUser.bind(this)}
71+
/>
72+
<br/>
73+
<UsersList users={this.state.users} />
74+
</div>
6975

70-
)} />
76+
)} />
7177

72-
<Route exact path='/about' component={About} />
73-
</Switch>
78+
<Route exact path='/about' component={About} />
79+
</Switch>
80+
</div>
81+
</div>
7482
</div>
75-
</div>
7683
</div>
7784
)
7885
}

src/components/NavBar.jsx

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
import React from 'react';
2+
import { Navbar, Nav, NavItem } from 'react-bootstrap';
3+
import { LinkContainer} from 'react-router-bootstrap';
4+
5+
const NavBar = (props) => (
6+
<Navbar inverse collapseOnSelect>
7+
<Navbar.Header>
8+
<Navbar.Brand>
9+
<span>{props.title}</span>
10+
</Navbar.Brand>
11+
<Navbar.Toggle />
12+
</Navbar.Header>
13+
<Navbar.Collapse>
14+
<Nav>
15+
<LinkContainer to="/">
16+
<NavItem eventKey={1}>Home</NavItem>
17+
</LinkContainer>
18+
<LinkContainer to="/about">
19+
<NavItem eventKey={2}>About</NavItem>
20+
</LinkContainer>
21+
<LinkContainer to="/status">
22+
<NavItem eventKey={3}>Status</NavItem>
23+
</LinkContainer>
24+
</Nav>
25+
<Nav pullRight>
26+
<LinkContainer to="/register">
27+
<NavItem eventKey={1}>Register</NavItem>
28+
</LinkContainer>
29+
<LinkContainer to="/login">
30+
<NavItem eventKey={2}>Login</NavItem>
31+
</LinkContainer>
32+
<LinkContainer to="/logout">
33+
<NavItem eventKey={3}>Logout</NavItem>
34+
</LinkContainer>
35+
</Nav>
36+
</Navbar.Collapse>
37+
</Navbar>
38+
)
39+
40+
export default NavBar;

0 commit comments

Comments
 (0)