diff --git a/src/components/avatar-button.tsx b/src/components/avatar-button.tsx new file mode 100644 index 0000000..4213907 --- /dev/null +++ b/src/components/avatar-button.tsx @@ -0,0 +1,102 @@ +import { + BadgeCheck, + Bell, + LogIn, + LogOut, +} from "lucide-react"; +import { + Avatar, + AvatarImage, +} from "@/components/ui/avatar"; +import { + DropdownMenu, + DropdownMenuContent, + DropdownMenuGroup, + DropdownMenuItem, + DropdownMenuLabel, + DropdownMenuSeparator, + DropdownMenuTrigger, +} from "@/components/ui/dropdown-menu"; +import { auth, signIn, signOut } from "@/auth"; +import { Skeleton } from "@/components/ui/skeleton"; +import { SettingsButton } from "@/components/settings-button"; + +const UserAvatar = ({ image, name }: { image: string; name: string }) => ( + + + + +); + +async function handleSignIn() { + "use server"; + await signIn("github"); +} + +async function handleSignOut() { + "use server"; + await signOut(); +} + +export async function AvatarButton() { + const session = await auth(); + const isLoggedIn = !!session?.user; + const image = session?.user?.image ?? "https://github.com/shadcn.png"; + const name = session?.user?.name ?? "unknown"; + const email = session?.user?.email ?? "unknwon@example.com"; + + return ( + + + + + + {!isLoggedIn ? ( + + + + + Log In + + + ) : ( + <> + +
+ +
+ {name} + {email} +
+
+
+ + + + + Account + + + + Notifications + + + + + + + + + + Log out + + + )} +
+
+ ); +}