Skip to content

Commit 7bb1e60

Browse files
committed
Hook up navigation links to views
1 parent 9bb8ca4 commit 7bb1e60

File tree

4 files changed

+62
-30
lines changed

4 files changed

+62
-30
lines changed

src/App.js

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import React, { Component } from 'react';
22
import Sidebar from './components/Sidebar';
33
import BucketScreen from './components/screens/buckets/BucketScreen';
4+
import SettingScreen from './components/screens/settings/SettingScreen';
45
import './App.css';
56

67
class App extends Component {
@@ -12,7 +13,7 @@ class App extends Component {
1213
}
1314

1415
handleNavigation = (selectedTab) => {
15-
this.setState({selectedTab: selectedTab});
16+
this.setState({selectedTab});
1617
}
1718

1819
// TODO: Use react router for this
@@ -23,7 +24,9 @@ class App extends Component {
2324
case 'buckets':
2425
screen = <BucketScreen />;
2526
break;
26-
27+
case 'settings':
28+
screen = <SettingScreen />;
29+
break;
2730
default:
2831
screen = <BucketScreen />;
2932
break;

src/components/Sidebar.js

Lines changed: 34 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -8,41 +8,53 @@ export default class NavigationBar extends React.Component {
88
super(props);
99

1010
this.state = {
11-
11+
selectedTab: 'buckets'
1212
};
1313
}
14+
15+
16+
handleNavigation = (selectedTab) => {
17+
this.setState({selectedTab});
18+
this.props.onNavigation(selectedTab);
19+
}
1420

1521
render() {
1622
return (
1723
<div className="sticky-top justify-content-center" id="">
18-
<div className="selected row align-items-center navigation-item">
24+
<div className={"row align-items-center navigation-item " + (this.state.selectedTab === 'buckets' && 'selected')}>
1925
<div className="col">
20-
<div className="row align-items-center justify-content-center">
21-
<FontAwesomeIcon icon={faCloudDownloadAlt} size="2x" />
22-
</div>
23-
<div className="row align-items-center justify-content-center">
24-
Buckets
25-
</div>
26+
<a onClick={() => this.handleNavigation('buckets')}>
27+
<div className="row align-items-center justify-content-center">
28+
<FontAwesomeIcon icon={faCloudDownloadAlt} size="2x" />
29+
</div>
30+
<div className="row align-items-center justify-content-center">
31+
Buckets
32+
</div>
33+
</a>
2634
</div>
2735
</div>
28-
<div className="row align-items-center navigation-item">
36+
<div className={"row align-items-center navigation-item " + (this.state.selectedTab === 'history' && 'selected')}>
2937
<div className="col">
30-
<div className="row align-items-center justify-content-center">
31-
<FontAwesomeIcon icon={faHistory} size="2x" />
32-
</div>
33-
<div className="row align-items-center justify-content-center">
34-
History
35-
</div>
38+
<a onClick={() => this.handleNavigation('history')}>
39+
<div className="row align-items-center justify-content-center">
40+
<FontAwesomeIcon icon={faHistory} size="2x" />
41+
</div>
42+
<div className="row align-items-center justify-content-center">
43+
History
44+
</div>
45+
</a>
3646
</div>
3747
</div>
38-
<div className="row align-items-center navigation-item">
48+
<div className={"row align-items-center navigation-item " + (this.state.selectedTab === 'settings' && 'selected')}>
3949
<div className="col">
40-
<div className="row align-items-center justify-content-center">
41-
<FontAwesomeIcon icon={faCogs} size="2x" />
42-
</div>
43-
<div className="row align-items-center justify-content-center">
44-
Settings
45-
</div>
50+
<a onClick={() => this.handleNavigation('settings')}>
51+
<div className="row align-items-center justify-content-center">
52+
<FontAwesomeIcon icon={faCogs} size="2x" />
53+
</div>
54+
<div className="row align-items-center justify-content-center">
55+
Settings
56+
</div>
57+
</a>
4658
</div>
4759
</div>
4860
</div>

src/components/screens/buckets/BucketScreen.js

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,7 @@ class BucketScreen extends Component {
1010
super(props);
1111
this.state = {
1212
selectedBucket: '',
13-
downloadDirectory: '',
14-
selectedTab: 'buckets'
13+
downloadDirectory: ''
1514
};
1615
}
1716

@@ -27,10 +26,6 @@ class BucketScreen extends Component {
2726
this.setState({downloadDirectory: directory});
2827
}
2928

30-
handleNavigation = (selectedTab) => {
31-
this.setState({selectedTab: selectedTab});
32-
}
33-
3429
render() {
3530
return (
3631
<div className="buckets">
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
import React, { Component } from 'react';
2+
3+
class BucketScreen extends Component {
4+
constructor(props) {
5+
super(props);
6+
this.state = {
7+
selectedBucket: '',
8+
downloadDirectory: '',
9+
selectedTab: 'settings'
10+
};
11+
}
12+
13+
render() {
14+
return (
15+
<div className="settings">
16+
Settings coming soon!
17+
</div>
18+
);
19+
}
20+
}
21+
22+
export default BucketScreen;

0 commit comments

Comments
 (0)