client/src/components/Navbar.js
changeset 12 48ddaa42b810
child 44 3b20e2b584fe
equal deleted inserted replaced
11:6fb4de54acea 12:48ddaa42b810
       
     1 import PropTypes from 'prop-types';
       
     2 import React, { Component } from 'react';
       
     3 import { connect } from 'react-redux';
       
     4 // import logo from './logo.svg';
       
     5 import { Navbar, Nav, NavItem } from 'react-bootstrap';
       
     6 
       
     7 class AppNavbar extends Component {
       
     8 
       
     9   onClickHome = (e) => {
       
    10     e.preventDefault();
       
    11     this.props.history.push('/');
       
    12   }
       
    13 
       
    14   onClickSessions = (e) => {
       
    15     e.preventDefault();
       
    16     this.props.history.push('/sessions');
       
    17   }
       
    18 
       
    19   onClickLogin = (e) => {
       
    20     e.preventDefault();
       
    21     this.props.history.push('/login');
       
    22   }
       
    23 
       
    24   renderLogin() {
       
    25     return (
       
    26       <NavItem onClick={this.onClickLogin} href="/login">Login</NavItem>
       
    27     );
       
    28   }
       
    29 
       
    30   render() {
       
    31     return (
       
    32       <Navbar fluid inverse fixedTop>
       
    33         <Navbar.Header>
       
    34           <Navbar.Brand>
       
    35             <a onClick={this.onClickHome} href="/">IRI Notes</a>
       
    36           </Navbar.Brand>
       
    37           <Navbar.Toggle />
       
    38         </Navbar.Header>
       
    39         <Navbar.Collapse>
       
    40           <Nav>
       
    41             <NavItem onClick={this.onClickSessions} href="/sessions">Sessions</NavItem>
       
    42           </Nav>
       
    43           <Nav pullRight>
       
    44             {this.renderLogin()}
       
    45           </Nav>
       
    46         </Navbar.Collapse>
       
    47       </Navbar>
       
    48     );
       
    49   }
       
    50 }
       
    51 
       
    52 AppNavbar.propTypes = {
       
    53   isAuthenticated: PropTypes.bool.isRequired
       
    54 };
       
    55 
       
    56 function mapStateToProps(state, props) {
       
    57   return {
       
    58     isAuthenticated: state.get('isAuthenticated')
       
    59   };
       
    60 }
       
    61 
       
    62 export default connect(mapStateToProps)(AppNavbar);