Advertisement
Guest User

Untitled

a guest
Aug 21st, 2019
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.69 KB | None | 0 0
  1. import React, {Component} from 'react';
  2. import styles from './Navbar.module.css';
  3. import {Link, NavLink} from 'react-router-dom';
  4.  
  5. function isLoggedIn() {
  6. const cookies = document.cookie
  7. .split(';')
  8. .filter(item => item.trim().startsWith('logedIn='));
  9. return cookies.length > 0;
  10. }
  11.  
  12. class Navbar extends Component {
  13. constructor() {
  14. super();
  15.  
  16. this.state = {
  17. loggedIn: isLoggedIn()
  18. };
  19. }
  20.  
  21. componentDidMount() {
  22. this.interval = window.setInterval(() => {
  23. this.setState({loggedIn: isLoggedIn()});
  24. }, 500);
  25. }
  26.  
  27. componentWillUnmount() {
  28. clearInterval(this.interval);
  29. }
  30.  
  31. render() {
  32. return (
  33. <header>
  34. <nav
  35. className={` ${styles.navbar} navbar navbar-dark bg-dark navbar-expand-lg`}
  36. >
  37. <div className="container">
  38. <Link className="navbar-brand mr-5" to="/">
  39. I <i className={`${styles.red} fas fa-heart fa-xs`}></i> Jokes
  40. </Link>
  41. <button
  42. className="navbar-toggler"
  43. type="button"
  44. data-toggle="collapse"
  45. data-target="#navbarContent"
  46. aria-controls="navbarContent"
  47. aria-expanded="false"
  48. aria-label="Toggle navigation"
  49. >
  50. <span className="navbar-toggler-icon"></span>
  51. </button>
  52. <div className="collapse navbar-collapse" id="navbarContent">
  53. <ul className="navbar-nav mr-auto">
  54. <li className="nav-item ">
  55. <NavLink className="nav-link" exact to="/">
  56. Home
  57. </NavLink>
  58. </li>
  59. <li className="nav-item">
  60. <NavLink className="nav-link" to="/about">
  61. About
  62. </NavLink>
  63. </li>
  64. </ul>
  65. <ul className="navbar-nav">
  66. {this.state.loggedIn ? (
  67. <React.Fragment>
  68. <NavLink className="nav-link mr-3" to="/account">
  69. My account
  70. </NavLink>
  71. <NavLink className="nav-link" to="/logout">
  72. Log out
  73. </NavLink>
  74. </React.Fragment>
  75. ) : (
  76. <React.Fragment>
  77. <NavLink className="nav-link mr-3 " to="/login">
  78. Log in
  79. </NavLink>
  80. <NavLink className="nav-link" to="/signup">
  81. Sign up
  82. </NavLink>
  83. </React.Fragment>
  84. )}
  85. </ul>
  86. </div>
  87. </div>
  88. </nav>
  89. </header>
  90. );
  91. }
  92. }
  93.  
  94. export default Navbar;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement