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
+
+ >
+ )}
+
+
+ );
+}