File size: 2,705 Bytes
009c95b
052672d
3ba9c0c
5ec491a
c69ef3e
052672d
bfbf1a7
38448fc
bfbf1a7
1b0e328
 
009c95b
 
 
3ba9c0c
60612a5
f80b091
009c95b
39c238d
 
 
 
 
009c95b
39c238d
 
 
 
009c95b
f80b091
1b0e328
009c95b
 
 
 
1b0e328
009c95b
 
 
 
 
 
1b0e328
96ac62a
bfbf1a7
 
 
 
 
 
 
 
96ac62a
5ec491a
5411802
 
 
 
96ac62a
 
 
 
5ec491a
96ac62a
009c95b
96ac62a
f80b091
1b0e328
38448fc
f80b091
 
 
3ba9c0c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
import { Suspense } from 'react';
import Link from 'next/link';

import { auth, sessionUser } from '@/auth';
import { Button } from '@/components/ui/Button';
import { UserMenu } from '@/components/UserMenu';
import { IconPlus, IconSeparator } from '@/components/ui/Icons';
import { LoginMenu } from './LoginMenu';
import { redirect } from 'next/navigation';
import Image from 'next/image';
import LandingLogo from '@/assets/svg/LandingAI_white.svg';
import ChatSelectServer from './ChatSelectServer';
import Loading from './ui/Loading';
import { Skeleton } from './ui/Skeleton';

export async function Header() {
  const session = await auth();
  // const { isAdmin } = await sessionUser();

  if (process.env.NEXT_PUBLIC_IS_HUGGING_FACE) {
    return (
      <header className="sticky top-0 z-50 flex items-center justify-end w-full h-16 px-8 border-b shrink-0 bg-gradient-to-b from-background/10 via-background/50 to-background/80 backdrop-blur-xl">
        <Button variant="link" asChild className="mr-2">
          <Link href="/chat">New conversation</Link>
        </Button>
      </header>
    );
  }

  return (
    <header className="sticky top-0 z-50 flex items-center justify-start w-full h-16 px-4 border-b shrink-0 bg-gradient-to-b from-background/10 via-background/50 to-background/80 backdrop-blur-xl">
      <Link
        className="overflow-hidden w-[150px] h-[45px] shrink-0 grow-0 relative mr-4 cursor-pointer"
        href="/"
      >
        <Image src={LandingLogo} alt="Landing AI" fill />
      </Link>
      {session?.user && (
        <Suspense fallback={<Skeleton className="w-[240px] h-[24px]" />}>
          <ChatSelectServer />
        </Suspense>
      )}
      <div className="grow" />
      {/* <Tooltip>
        <TooltipTrigger asChild>
          <Button variant="link" asChild className="mr-2">
            <Link href="/chat">
              <IconPlus />
            </Link>
          </Button>
        </TooltipTrigger>
        <TooltipContent>New chat</TooltipContent>
      </Tooltip> */}
      {/* {isAdmin && (
        <Button variant="link" asChild className="mr-2">
          <Link href="/all">All Chats (Internal)</Link>
        </Button>
      )}
      {isAdmin && (
        <Button variant="link" asChild className="mr-2">
          <Link href="/project">Projects (Internal)</Link>
        </Button>
      )} */}
      <Button variant="link" asChild className="mr-2">
        <Link href="/chat">New conversation</Link>
      </Button>
      <IconSeparator className="size-6 text-muted-foreground/50" />
      <div className="flex items-center grow-0">
        {session?.user ? <UserMenu user={session!.user} /> : <LoginMenu />}
      </div>
    </header>
  );
}