wuyiqunLu
feat: support internal access to all chat (#45)
5411802 unverified
raw history blame
No virus
2.13 kB
import * as React from 'react';
import Link from 'next/link';
import { auth, authEmail } from '@/auth';
import { Button } from '@/components/ui/Button';
import { UserMenu } from '@/components/UserMenu';
import {
Tooltip,
TooltipContent,
TooltipTrigger,
} from '@/components/ui/Tooltip';
import { IconPlus, IconSeparator } from '@/components/ui/Icons';
import { LoginMenu } from './LoginMenu';
import { redirect } from 'next/navigation';
export async function Header() {
const session = await auth();
const { isAdmin } = await authEmail();
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 Chat</Link>
</Button>
</header>
);
}
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">
{/* <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">Chat</Link>
</Button>
<IconSeparator className="size-6 text-muted-foreground/50" />
<div className="flex items-center">
{session?.user ? <UserMenu user={session!.user} /> : <LoginMenu />}
</div>
</header>
);
}