Skip to content
Snippets Groups Projects
Header.js 3.2 KiB
Newer Older
  • Learn to ignore specific revisions
  • import React, { Component } from 'react';
    
    Tamás Szabó's avatar
    Tamás Szabó committed
    import { Link } from 'react-router-dom';
    
    import {
      Menu,
      Container,
      Button,
      Segment,
      Visibility,
    
      Image,
    } from 'semantic-ui-react';
    import { connect } from 'react-redux';
    
    Tamás Szabó's avatar
    Tamás Szabó committed
    import { getUserData } from '../actions';
    
    import KSZKlogo from './images/kszk_logo.svg';
    
    const FixedMenu = ({ user }) => (
      <Menu fixed='top' size='large' pointing>
    
    Tamás Szabó's avatar
    Tamás Szabó committed
          <Menu.Item as={Link} to='/home'>Főoldal</Menu.Item>
          <Menu.Item as={Link} to='/news'>Hírek</Menu.Item>
          <Menu.Item as={Link} to='/groups'>Köreink</Menu.Item>
          {/* <Menu.Item as={Link} to='/trainers'>Képzők</Menu.Item> */}
          <Menu.Item as={Link} to='/schedule'>Ütemterv</Menu.Item>
    
          <Menu.Menu position='right'>
            <Menu.Item className='item'>
              {
                user.id ?
    
    Tamás Szabó's avatar
    Tamás Szabó committed
                  <Button.Group>
                    <Button primary as={Link} to='/profile'>Profilom</Button>
    
                    <Button as='a' href='/api/v1/logout/' icon='sign out' />
    
    Tamás Szabó's avatar
    Tamás Szabó committed
                  </Button.Group>
    
                  <Button as='a' href='/api/v1/login/authsch/'>Bejelentkezés</Button>
    
    class Header extends Component {
      constructor(props) {
        super(props);
        this.state = {
          visible: false,
        };
      }
      componentWillMount() {
        this.props.getUserData();
      }
    
      hideFixedMenu() {
        this.setState({ visible: false });
      }
    
      showFixedMenu() {
        this.setState({ visible: true });
      }
    
    
      render() {
        const { visible } = this.state;
    
        return (
          <div>
    
            {visible ? <FixedMenu user={this.props.user} /> : null}
    
              onBottomPassed={() => this.showFixedMenu()}
              onBottomVisible={() => this.hideFixedMenu()}
    
              <Segment inverted textAlign='center' vertical>
    
                  <Menu inverted secondary size='large'>
    
    Tamás Szabó's avatar
    Tamás Szabó committed
                    <Menu.Item as={Link} to='/home'>
    
                        style={{ marginRight: '1.5em' }}
    
    Tamás Szabó's avatar
    Tamás Szabó committed
                    <Menu.Item as={Link} to='/news'>Hírek</Menu.Item>
                    <Menu.Item as={Link} to='/groups'>Köreink</Menu.Item>
                    {/* <Menu.Item as={Link} to='/trainers'>Képzők</Menu.Item> */}
                    <Menu.Item as={Link} to='/schedule'>Ütemterv</Menu.Item>
    
                    <Menu.Item position='right'>
                      {
                        this.props.user.id ?
    
    Tamás Szabó's avatar
    Tamás Szabó committed
                          <Button.Group>
    
    Tamás Szabó's avatar
    Tamás Szabó committed
                            <Button inverted as={Link} to='/profile'>Profilom</Button>
    
                            <Button as='a' href='/api/v1/logout/' icon='sign out' />
    
    Tamás Szabó's avatar
    Tamás Szabó committed
                          </Button.Group>
    
                          <Button as='a' href='/api/v1/login/authsch/' inverted>Bejelentkezés</Button>
    
                    </Menu.Item>
                  </Menu>
                </Container>
              </Segment>
            </Visibility>
          </div>
        );
      }
    }
    
    
    const mapStateToProps = ({ user }) => ({
      user,
    });
    
    
    Tamás Szabó's avatar
    Tamás Szabó committed
    export default connect(mapStateToProps, { getUserData })(Header);