Skip to content

Commit 7a79039

Browse files
committed
refactor nav menu items
1 parent 4c11a97 commit 7a79039

File tree

2 files changed

+29
-43
lines changed

2 files changed

+29
-43
lines changed

src/app/components/AppBar/AppBar.jsx

Lines changed: 27 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -52,16 +52,28 @@ const styles = theme => ({
5252

5353
const NavItem = withRouter(({ route, render, location, history }) => render({ selected: location.pathname === route, navigate: () => history.push(route) }));
5454

55-
const DrawerMenuItem = withStyles(styles, { withTheme: true })(({ onClick, selected, label, classes}) => (
55+
const DrawerItem = withStyles(styles, { withTheme: true })(({ onClick, selected, label, classes }) => (
5656
<ListItem button onClick={onClick}>
5757
<ListItemText classes={selected ? {
5858
primary: classes.selectedItem
5959
} : {}}
6060
primary={label} />
6161
</ListItem>
62-
))
62+
));
6363

64-
class AppBarBase extends Component {
64+
const DrawerNavItem = ({ route, label }) => (
65+
<NavItem route={route} render={({ selected, navigate }) => (
66+
<DrawerItem selected={selected} onClick={navigate} label={label} />
67+
)} />
68+
);
69+
70+
const TopMenuNavItem = ({ route, label }) => (
71+
<NavItem route={route} render={({ selected, navigate }) => (
72+
<Button color={selected ? 'secondary' : 'inherit'} onClick={navigate}>{label}</Button>
73+
)} />
74+
)
75+
76+
class AppBar extends Component {
6577
state = {
6678
drawerOpen: false,
6779
anchorEl: null
@@ -79,7 +91,7 @@ class AppBarBase extends Component {
7991
this.setState({ anchorEl: null });
8092
};
8193
render() {
82-
const { classes, auth, location, history } = this.props;
94+
const { classes, auth } = this.props;
8395
const { anchorEl } = this.state;
8496
const open = Boolean(anchorEl);
8597

@@ -106,10 +118,10 @@ class AppBarBase extends Component {
106118
{auth && (
107119
<div className={classes.topToolbar}>
108120
<div className={classes.topMenu}>
109-
<Button color={location.pathname === '/' ? 'secondary' : 'inherit'} onClick={() => history.push('/')}>Home</Button>
110-
<Button color={location.pathname === '/categories' ? 'secondary' : 'inherit'} onClick={() => history.push('/categories')}>Categorii</Button>
111-
<Button color={location.pathname === '/proposals' ? 'secondary' : 'inherit'} onClick={() => history.push('/proposals')}>Propuneri legislative</Button>
112-
<Button color={location.pathname === '/institutions' ? 'secondary' : 'inherit'} onClick={() => history.push('/institutions')}>Institutii</Button>
121+
<TopMenuNavItem route='/' label='Home' />
122+
<TopMenuNavItem route='/categories' label='Categorii' />
123+
<TopMenuNavItem route='/proposals' label='Propuneri legislative' />
124+
<TopMenuNavItem route='/institutions' label='Institutii' />
113125
</div>
114126
<Typography
115127
variant="body1"
@@ -152,18 +164,10 @@ class AppBarBase extends Component {
152164
<NavDrawer open={this.state.drawerOpen}
153165
onClose={this.handleDrawerToggle}>
154166
<List>
155-
<NavItem route='/' render={({ selected, navigate }) => (
156-
<DrawerMenuItem selected={selected} onClick={navigate} label='Home'/>
157-
)} />
158-
<NavItem route='/categories' render={({ selected, navigate }) => (
159-
<DrawerMenuItem selected={selected} onClick={navigate} label='Categorii'/>
160-
)} />
161-
<NavItem route='/proposals' render={({ selected, navigate }) => (
162-
<DrawerMenuItem selected={selected} onClick={navigate} label='Propuneri legislative'/>
163-
)} />
164-
<NavItem route='/institutions' render={({ selected, navigate }) => (
165-
<DrawerMenuItem selected={selected} onClick={navigate} label='Institutii'/>
166-
)} />
167+
<DrawerNavItem route='/' label='Home' />
168+
<DrawerNavItem route='/categories' label='Categorii' />
169+
<DrawerNavItem route='/proposals' label='Propuneri legislative' />
170+
<DrawerNavItem route='/institutions' label='Institutii' />
167171
</List>
168172
</NavDrawer>
169173
</Hidden>
@@ -172,29 +176,11 @@ class AppBarBase extends Component {
172176
}
173177
}
174178

175-
AppBarBase.propTypes = {
179+
AppBar.propTypes = {
176180
classes: PropTypes.object.isRequired,
177-
auth: PropTypes.object,
178-
match: PropTypes.object.isRequired,
179-
location: PropTypes.object.isRequired,
180-
history: PropTypes.object.isRequired
181+
auth: PropTypes.object
181182
};
182183

183-
184-
AppBarBase.defaultProps = {
185-
location: {
186-
pathname: '/'
187-
},
188-
history: {
189-
push: () => { }
190-
}
191-
}
192-
193-
194-
const AppBar = withStyles(styles, { withTheme: true })(AppBarBase);
195-
196-
export { AppBar };
197-
198-
export default withRouter(AppBar);
184+
export default withStyles(styles, { withTheme: true })(AppBar);
199185

200186

src/app/components/NavDrawer/NavDrawer.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,11 @@ import PropTypes from 'prop-types';
33
import { withStyles } from 'material-ui/styles';
44
import Drawer from 'material-ui/Drawer';
55

6-
const drawerWidth = 240;
6+
const DRAWER_WIDTH = 240;
77

88
const styles = theme => ({
99
drawerPaper: {
10-
width: drawerWidth
10+
width: DRAWER_WIDTH
1111
}
1212
});
1313

0 commit comments

Comments
 (0)