Advertisement
Guest User

Untitled

a guest
Jun 19th, 2019
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import React from 'react';
  2. import PropTypes from 'prop-types';
  3. import Navbar from 'react-bootstrap/Navbar';
  4. import Nav from 'react-bootstrap/Nav';
  5. import Form from 'react-bootstrap/Form';
  6. import NavDropdown from 'react-bootstrap/NavDropdown';
  7. import FormControl from 'react-bootstrap/es/FormControl';
  8. import Button from 'react-bootstrap/Button';
  9. import { NavLink } from 'react-router-dom';
  10. import axios from 'axios';
  11.  
  12. class HeaderNavigation extends React.Component {
  13.   constructor(props) {
  14.     super(props);
  15.  
  16.     this.state = {
  17.       anchorEl: null,
  18.       mobileMoreAnchorEl: null,
  19.       companyId: null,
  20.       companyName: 'Choose company',
  21.       companies: [],
  22.       currentCompany: null,
  23.     };
  24.   }
  25.  
  26.   componentWillMount() {
  27.     axios.get('http://localhost:8080/company/current')
  28.       .then((response) => {
  29.         this.setState({
  30.           companyName: response.data.name,
  31.         });
  32.       })
  33.       .catch(() => {
  34.         console.log('ERROR WHILE GETTING CURRENT COMPANY');
  35.       });
  36.  
  37.     axios.get('http://localhost:8080/company/all')
  38.       .then((response) => {
  39.         this.setState({
  40.           companies: response.data,
  41.         });
  42.       });
  43.   }
  44.  
  45.  
  46.   handleMenuChangeCompany(companyId) {
  47.     axios.post('http://localhost:8080/company/change/company', {
  48.       id: companyId,
  49.     });
  50.     // Here it needs to tell the to reload
  51.   }
  52.  
  53.   render() {
  54.     const { companyName, companies } = this.state;
  55.     return (
  56.     // TODO: Fix font colour
  57.       <Navbar bg="primary" expand="lg">
  58.         <Navbar.Brand>Invoisas</Navbar.Brand>
  59.         <Navbar.Toggle aria-controls="basic-navbar-nav" />
  60.         <Navbar.Collapse id="basic-navbar-nav">
  61.           <Nav className="mr-auto">
  62.             <NavLink to="/"><Button>Dashboard</Button></NavLink>
  63.             <NavLink to="/companies/"><Button>My companies</Button></NavLink>
  64.             <NavLink to="/invoices/"><Button>Invoices</Button></NavLink>
  65.             <NavLink to="/contacts/"><Button>Contacts</Button></NavLink>
  66.             <NavDropdown title={companyName} id="basic-nav-dropdown" onSelect={this.handleMenuChangeCompany}>
  67.               {companies.length > 0 ? companies.map(company => (
  68.                 <NavDropdown.Item eventKey={company.id}>{company.name}</NavDropdown.Item>
  69.               )) : <NavDropdown.Item>{companyName}</NavDropdown.Item> }
  70.             </NavDropdown>
  71.           </Nav>
  72.  
  73.           <Form inline>
  74.             <FormControl type="text" placeholder="Search..." className="mr-sm-2" />
  75.             <Button variant="outline-light">Search</Button>
  76.           </Form>
  77.           <Nav><Nav.Link>User placeholder</Nav.Link></Nav>
  78.         </Navbar.Collapse>
  79.       </Navbar>
  80.     );
  81.   }
  82. }
  83.  
  84. export default HeaderNavigation;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement