chatbot-template/components/sidebar.tsx

53 lines
1.3 KiB
TypeScript
Raw Normal View History

'use client'
import * as React from 'react'
import { Button } from '@/components/ui/button'
import {
Sheet,
SheetContent,
SheetHeader,
SheetTitle,
SheetTrigger
} from '@/components/ui/sheet'
import { ThemeToggle } from '@/components/theme-toggle'
2023-06-13 16:02:07 +04:00
import { IconSidebar } from '@/components/ui/icons'
2023-06-13 17:31:15 -04:00
import { useClerk } from '@clerk/nextjs'
export interface SidebarProps {
2023-06-13 17:31:15 -04:00
userId?: string
2023-06-11 11:14:39 -04:00
children?: React.ReactNode
}
2023-06-13 17:31:15 -04:00
export function Sidebar({ userId, children }: SidebarProps) {
const { signOut } = useClerk()
return (
<Sheet>
<SheetTrigger asChild>
2023-06-13 17:31:15 -04:00
<Button variant="ghost" className="p-0 -ml-2 h-9 w-9">
<IconSidebar className="w-6 h-6" />
<span className="sr-only">Toggle Sidebar</span>
</Button>
</SheetTrigger>
<SheetContent className="inset-y-0 flex h-auto w-[300px] flex-col p-0">
<SheetHeader className="p-4">
<SheetTitle className="text-sm">Chat History</SheetTitle>
</SheetHeader>
2023-06-11 11:14:39 -04:00
{children}
<div className="flex items-center p-4">
<ThemeToggle />
2023-06-13 17:31:15 -04:00
{userId && (
<Button
variant="ghost"
onClick={() => signOut()}
className="ml-auto"
>
Logout
</Button>
)}
</div>
</SheetContent>
</Sheet>
)
}