header.tsx 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. import Link from "next/link";
  2. import { getKindeServerSession, LoginLink, LogoutLink } from "@kinde-oss/kinde-auth-nextjs/server";
  3. export default async function Header() {
  4. const { isAuthenticated } = getKindeServerSession();
  5. const isLoggedIn = await isAuthenticated();
  6. return (
  7. <header className="border-b border-gray-200 bg-white">
  8. <div className="mx-auto max-w-7xl px-4 sm:px-6 lg:px-8">
  9. <div className="flex justify-between items-center py-4">
  10. <div className="flex items-center">
  11. <Link href="/" className="flex items-center">
  12. <img
  13. src="/vtorio.svg"
  14. alt="vtor.io"
  15. className="h-8 w-auto"
  16. />
  17. </Link>
  18. </div>
  19. <div className="flex items-center space-x-4">
  20. {!isLoggedIn &&
  21. <LoginLink
  22. className="rounded-full border border-solid border-transparent transition-colors flex items-center justify-center bg-foreground text-background gap-2 hover:bg-[#383838] dark:hover:bg-[#ccc] text-sm sm:text-base h-10 sm:h-12 px-4 sm:px-5">
  23. Login
  24. </LoginLink>
  25. }
  26. { isLoggedIn &&
  27. <LogoutLink
  28. className="rounded-full border border-solid border-black/[.08] dark:border-white/[.145] transition-colors flex items-center justify-center hover:bg-[#f2f2f2] dark:hover:bg-[#1a1a1a] hover:border-transparent text-sm sm:text-base h-10 sm:h-12 px-4 sm:px-5">
  29. Logout
  30. </LogoutLink>
  31. }
  32. </div>
  33. </div>
  34. </div>
  35. </header>
  36. );
  37. }