Newer
Older
import React, { Component } from 'react';
import {
Menu,
Container,
Button,
Segment,
} from 'semantic-ui-react';
import { connect } from 'react-redux';
import KSZKlogo from './images/kszk_logo.svg';
const menuItems = [
{
text: 'Főoldal',
to: '/home',
prefix: <Image size='mini' src={KSZKlogo} style={{ marginRight: '1.5em' }} />,
},
{
text: 'Hírek',
to: '/news',
prefix: '',
},
{
text: 'Köreink',
to: '/groups',
prefix: '',
},
{
text: 'Ütemterv',
to: '/schedule',
prefix: '',
{
text: 'Statisztika',
to: '/statistics',
prefix: '',
},
{
text: 'Jelentkezések',
to: '/applications',
prefix: '',
permissionLevel: 3,
{
text: 'Házi feladatok',
to: '/homework',
prefix: '',
class Header extends Component {
constructor(props) {
super(props);
this.state = {
visible: false,
};
}
componentWillMount() {
this.props.getUserData();
}
switchHeader() {
this.setState( oldState => {
visible: !oldState.visible
})
render() {
const { visible } = this.state;
<div>
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
<Responsive minWidth={600}>
<Segment inverted textAlign='center' vertical>
<Container>
<Menu inverted secondary size='large'>
{menuItems.map((item, i) =>
(item.permissionLevel === 0 ?
<Menu.Item key={i} as={Link} to={item.to}>{item.prefix}{item.text}</Menu.Item>
: null
))
}
{ this.props.user.id ?
<Popup trigger={
<Menu.Item>
<Icon name='angle down' size='large' />
</Menu.Item>
}
position='center'
flowing hoverable inverted>
<Menu inverted secondary size='large'>
{menuItems.map((item, i) =>
(this.props.user.permission >= item.permissionLevel
&& item.permissionLevel > 0?
<Menu.Item key={i} as={Link} to={item.to}>{item.prefix}{item.text}</Menu.Item>
: null
))
}
</Menu>
</Popup>
: null
}
<Menu.Item position='right' width={5}>
{
this.props.user.id ?
<Button.Group>
<Button inverted as={Link} to='/profile'>Profilom</Button>
<Button as='a' href='/api/v1/logout/' icon='sign out' />
</Button.Group>
:
<Button as='a' href='/api/v1/login/authsch/' inverted>Bejelentkezés</Button>
}
</Menu.Item>
</Menu>
</Container>
</Segment>
</Responsive>
<Responsive maxWidth={599}>
<Segment inverted textAlign='center' vertical>
<Container>
<Menu inverted secondary size='normal'>
<Menu.Item as={Link} to={menuItems[0].to}>{menuItems[0].prefix}{menuItems[0].text}</Menu.Item>
<Popup trigger={
<Menu.Item position='right'>
<Icon name='bars' size='large' />
</Menu.Item>
position='center'
flowing hoverable inverted>
<Menu vertical inverted secondary size='normal'>
{menuItems.map((item, i) =>
( (this.props.user.permission >= item.permissionLevel ||
item.permissionLevel === 0) && i>0?
<Menu.Item key={i} as={Link} to={item.to}>{item.prefix}{item.text}</Menu.Item>
: null
))
}
{
this.props.user.id ?
<Button.Group>
<Button inverted as={Link} to='/profile'>Profilom</Button>
<Button as='a' href='/api/v1/logout/' icon='sign out' />
</Button.Group>
:
<Button as='a' href='/api/v1/login/authsch/' inverted>Bejelentkezés</Button>
}
</Segment>
</div>
);
}
}
const mapStateToProps = ({ user }) => ({
user,
});
export default connect(mapStateToProps, { getUserData })(Header);