Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import React, {Component} from 'react';
- import styles from './Navbar.module.css';
- import {Link, NavLink} from 'react-router-dom';
- function isLoggedIn() {
- const cookies = document.cookie
- .split(';')
- .filter(item => item.trim().startsWith('logedIn='));
- return cookies.length > 0;
- }
- class Navbar extends Component {
- constructor() {
- super();
- this.state = {
- loggedIn: isLoggedIn()
- };
- }
- componentDidMount() {
- this.interval = window.setInterval(() => {
- this.setState({loggedIn: isLoggedIn()});
- }, 500);
- }
- componentWillUnmount() {
- clearInterval(this.interval);
- }
- render() {
- return (
- <header>
- <nav
- className={` ${styles.navbar} navbar navbar-dark bg-dark navbar-expand-lg`}
- >
- <div className="container">
- <Link className="navbar-brand mr-5" to="/">
- I <i className={`${styles.red} fas fa-heart fa-xs`}></i> Jokes
- </Link>
- <button
- className="navbar-toggler"
- type="button"
- data-toggle="collapse"
- data-target="#navbarContent"
- aria-controls="navbarContent"
- aria-expanded="false"
- aria-label="Toggle navigation"
- >
- <span className="navbar-toggler-icon"></span>
- </button>
- <div className="collapse navbar-collapse" id="navbarContent">
- <ul className="navbar-nav mr-auto">
- <li className="nav-item ">
- <NavLink className="nav-link" exact to="/">
- Home
- </NavLink>
- </li>
- <li className="nav-item">
- <NavLink className="nav-link" to="/about">
- About
- </NavLink>
- </li>
- </ul>
- <ul className="navbar-nav">
- {this.state.loggedIn ? (
- <React.Fragment>
- <NavLink className="nav-link mr-3" to="/account">
- My account
- </NavLink>
- <NavLink className="nav-link" to="/logout">
- Log out
- </NavLink>
- </React.Fragment>
- ) : (
- <React.Fragment>
- <NavLink className="nav-link mr-3 " to="/login">
- Log in
- </NavLink>
- <NavLink className="nav-link" to="/signup">
- Sign up
- </NavLink>
- </React.Fragment>
- )}
- </ul>
- </div>
- </div>
- </nav>
- </header>
- );
- }
- }
- export default Navbar;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement