Header.js 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. import Link from 'next/link'
  2. import styled from 'styled-components'
  3. import Router from 'next/router'
  4. import NProgress from 'nprogress'
  5. Router.onRouteChangeStart = () => {
  6. NProgress.start()
  7. }
  8. Router.onRouteChangeComplete = () => {
  9. NProgress.done()
  10. }
  11. Router.onRouteChangeError = () => {
  12. NProgress.done()
  13. }
  14. const StyledHeader = styled.header`
  15. display: grid;
  16. grid-template-columns: 250px 1fr;
  17. grid-auto-flow: column;
  18. border-bottom: 1px solid ${props => props.theme.darkerblue};
  19. box-shadow: 0 10px 5px -5px rgba(0,0,0,0.09);
  20. #logo {
  21. font-family: 'roboto_black';
  22. margin: 0;
  23. padding: 0.4em 0;
  24. font-size: 180%;
  25. line-height: 1;
  26. text-align: center;
  27. }
  28. #logo img {
  29. vertical-align: middle;
  30. max-width: 50px;
  31. max-height: 50px;
  32. }
  33. #Auto {
  34. color: #4482c3;
  35. }
  36. #Mate {
  37. color: #285680;
  38. }
  39. nav {
  40. box-align: end;
  41. height: 100%;
  42. }
  43. nav a {
  44. display: flex;
  45. justify-self: end;
  46. padding: 0 1em;
  47. }
  48. `
  49. const Header = props => {
  50. const { user } = props
  51. return (
  52. <StyledHeader>
  53. <div id='logo'>
  54. <h1>
  55. <a href='/'>
  56. <img src='/static/configuration.svg' alt='AutoMate' />
  57. <span id='Auto'>&nbsp;Auto</span><span id='Mate'>Mate</span>
  58. </a>
  59. </h1>
  60. </div>
  61. <nav>
  62. <Link href='/'>
  63. <a>Home</a>
  64. </Link>
  65. <Link href='/interfaces'>
  66. <a>Interfaces</a>
  67. </Link>
  68. <Link href='/characterization'>
  69. <a>Characterization</a>
  70. </Link>
  71. <Link href='/system'>
  72. <a>System</a>
  73. </Link>
  74. <Link href='/projects'>
  75. <a>Projects</a>
  76. </Link>
  77. <Link href='/user'>
  78. <a>{user ? user.name : 'User'}</a>
  79. </Link>
  80. </nav>
  81. </StyledHeader>
  82. )
  83. }
  84. export default Header