{chats?.length ? (
diff --git a/components/ui/dropdown-menu.tsx b/components/ui/dropdown-menu.tsx
new file mode 100644
index 0000000..184d4e6
--- /dev/null
+++ b/components/ui/dropdown-menu.tsx
@@ -0,0 +1,128 @@
+'use client'
+
+import * as React from 'react'
+import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu'
+
+import { cn } from '@/lib/utils'
+
+const DropdownMenu = DropdownMenuPrimitive.Root
+
+const DropdownMenuTrigger = DropdownMenuPrimitive.Trigger
+
+const DropdownMenuGroup = DropdownMenuPrimitive.Group
+
+const DropdownMenuPortal = DropdownMenuPrimitive.Portal
+
+const DropdownMenuSub = DropdownMenuPrimitive.Sub
+
+const DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup
+
+const DropdownMenuSubContent = React.forwardRef<
+ React.ElementRef
,
+ React.ComponentPropsWithoutRef
+>(({ className, ...props }, ref) => (
+
+))
+DropdownMenuSubContent.displayName =
+ DropdownMenuPrimitive.SubContent.displayName
+
+const DropdownMenuContent = React.forwardRef<
+ React.ElementRef,
+ React.ComponentPropsWithoutRef
+>(({ className, sideOffset = 4, ...props }, ref) => (
+
+
+
+))
+DropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName
+
+const DropdownMenuItem = React.forwardRef<
+ React.ElementRef,
+ React.ComponentPropsWithoutRef & {
+ inset?: boolean
+ }
+>(({ className, inset, ...props }, ref) => (
+
+))
+DropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName
+
+const DropdownMenuLabel = React.forwardRef<
+ React.ElementRef,
+ React.ComponentPropsWithoutRef & {
+ inset?: boolean
+ }
+>(({ className, inset, ...props }, ref) => (
+
+))
+DropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName
+
+const DropdownMenuSeparator = React.forwardRef<
+ React.ElementRef,
+ React.ComponentPropsWithoutRef
+>(({ className, ...props }, ref) => (
+
+))
+DropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName
+
+const DropdownMenuShortcut = ({
+ className,
+ ...props
+}: React.HTMLAttributes) => {
+ return (
+
+ )
+}
+DropdownMenuShortcut.displayName = 'DropdownMenuShortcut'
+
+export {
+ DropdownMenu,
+ DropdownMenuTrigger,
+ DropdownMenuContent,
+ DropdownMenuItem,
+ DropdownMenuLabel,
+ DropdownMenuSeparator,
+ DropdownMenuShortcut,
+ DropdownMenuGroup,
+ DropdownMenuPortal,
+ DropdownMenuSub,
+ DropdownMenuSubContent,
+ DropdownMenuRadioGroup
+}
diff --git a/components/ui/icons.tsx b/components/ui/icons.tsx
index ce59585..52b941a 100644
--- a/components/ui/icons.tsx
+++ b/components/ui/icons.tsx
@@ -442,6 +442,23 @@ function IconUsers({ className, ...props }: React.ComponentProps<'svg'>) {
)
}
+function IconExternalLink({
+ className,
+ ...props
+}: React.ComponentProps<'svg'>) {
+ return (
+
+ )
+}
+
export {
IconEdit,
IconNextChat,
@@ -467,5 +484,6 @@ export {
IconDownload,
IconClose,
IconShare,
- IconUsers
+ IconUsers,
+ IconExternalLink
}
diff --git a/components/ui/user-menu.tsx b/components/ui/user-menu.tsx
deleted file mode 100644
index a556b2c..0000000
--- a/components/ui/user-menu.tsx
+++ /dev/null
@@ -1,94 +0,0 @@
-'use client'
-
-// import { type Session } from 'next-auth'
-import * as DropdownMenu from '@radix-ui/react-dropdown-menu'
-import { signOut } from 'next-auth/react'
-
-import Image from 'next/image'
-
-export interface UserMenuProps {
- session: any // Session
-}
-
-export function UserMenu({ session }: UserMenuProps) {
- return (
-
-
-
-
-
-
-
-
-
- {session.user?.name}
- {session.user?.email}
-
-
-
-
-
- Vercel Homepage
-
-
-
-
-
- signOut()}
- >
- Log Out
-
-
-
-
-
- )
-}
-
-UserMenu.displayName = 'UserMenu'
diff --git a/components/user-menu.tsx b/components/user-menu.tsx
new file mode 100644
index 0000000..c74378e
--- /dev/null
+++ b/components/user-menu.tsx
@@ -0,0 +1,65 @@
+'use client'
+
+import Image from 'next/image'
+import { type Session } from 'next-auth'
+import { signOut } from 'next-auth/react'
+
+import { Button } from '@/components/ui/button'
+import {
+ DropdownMenu,
+ DropdownMenuContent,
+ DropdownMenuItem,
+ DropdownMenuSeparator,
+ DropdownMenuTrigger
+} from '@/components/ui/dropdown-menu'
+import { IconExternalLink } from '@/components/ui/icons'
+
+export interface UserMenuProps {
+ user: Session['user']
+}
+
+export function UserMenu({ user }: UserMenuProps) {
+ return (
+
+
+
+
+
+
+
+ {user?.name}
+ {user?.email}
+
+
+
+
+ Vercel Homepage
+
+
+
+ signOut()} className="text-xs">
+ Log Out
+
+
+
+
+ )
+}