Nav.tsx 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. import { FC, useContext } from "react";
  2. import { UserContext } from "../context/UserContext";
  3. import Link from "next/link";
  4. import { useRouter } from "next/router";
  5. const Nav: FC = () => {
  6. const context = useContext(UserContext);
  7. const { pathname } = useRouter();
  8. return (
  9. <header className="bg-prisma-50 w-full min-h-nav flex items-end">
  10. <nav className="w-full max-w-screen-lg flex mx-auto justify-between">
  11. <ul className="flex">
  12. <li className="">
  13. <Link href="/">
  14. <a className="py-7 px-4 block font-bold">Prisma</a>
  15. </Link>
  16. </li>
  17. </ul>
  18. <ul className="flex min-w-0">
  19. {context.user ? (
  20. pathname === "/" ? null : (
  21. <li
  22. className="py-7 px-4 overflow-hidden whitespace-nowrap text-ellipsis"
  23. title={`Hello ${context.user.name}`}
  24. >
  25. Hello <b>{context.user.name}</b>
  26. </li>
  27. )
  28. ) : (
  29. <>
  30. <li>
  31. <Link href="/signup">
  32. <a
  33. className={`py-7 px-2 sm:px-4 block ${
  34. pathname === "/signup" ? "font-bold" : ""
  35. }`}
  36. >
  37. Sign up
  38. </a>
  39. </Link>
  40. </li>
  41. <li className="">
  42. <Link href="/login">
  43. <a
  44. className={`py-7 px-4 pl-2 sm:px-4 block ${
  45. pathname === "/login" ? "font-bold" : ""
  46. }`}
  47. >
  48. Log in
  49. </a>
  50. </Link>
  51. </li>
  52. </>
  53. )}
  54. </ul>
  55. </nav>
  56. </header>
  57. );
  58. };
  59. export default Nav;