"use client"; import Link from "next/link"; import dynamic from "next/dynamic"; import useCurrentUser from "@/lib/hooks/useCurrentUser"; import { useModal } from "@/app/_providers/modal/provider"; import { Avatar, AvatarFallback, AvatarImage } from "@/components/ui/avatar"; import { Button } from "@/components/ui/button"; import { DropdownMenu, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuTrigger, } from "@/components/ui/dropdown-menu"; import { RiNotification4Line } from "react-icons/ri"; import { SiRelay } from "react-icons/si"; import { RELAYS } from "@/constants"; import StatusIndicator from "@/components/StatusIndicator"; import { type NDKUser } from "@nostr-dev-kit/ndk"; import { truncateText, getTwoLetters } from "@/lib/utils"; import { useNDK } from "@/app/_providers/ndk"; const LoginModal = dynamic(() => import("@/components/Modals/Login"), { ssr: false, }); export default function AuthActions() { const modal = useModal(); const { currentUser, logout } = useCurrentUser(); if (currentUser) { return ( <> > ); } return ( <> modal?.show()} size={"sm"} className="rounded-sm px-5" > Login > ); } export function Notifications({ user }: { user: NDKUser }) { return ( {user.profile?.displayName || user.profile?.name ? ( <> {user.profile?.displayName ?? user.profile.name} m@example.com > ) : ( {truncateText(user.npub)} )} Profile ⇧⌘P Billing ⌘B Settings ⌘S New Team Log out ⇧⌘Q ); } export function Relays() { const { ndk } = useNDK(); return ( {ndk?.explicitRelayUrls?.map((r) => ( {r} ))} Manage Relays ⇧⌘M ); } export function UserMenu({ user, logout, }: { user: NDKUser; logout: () => void; }) { return ( {getTwoLetters(user)} {user.profile?.displayName || user.profile?.name ? ( <> {user.profile?.displayName ?? user.profile.name} {user.profile?.nip05 ?? truncateText(user.npub)} > ) : ( {truncateText(user.npub)} )} Profile ⇧⌘P {/* Billing ⌘B Settings ⌘S New Team */} Log out ⇧⌘Q ); }
{user.profile?.displayName ?? user.profile.name}
m@example.com
{truncateText(user.npub)}
{user.profile?.nip05 ?? truncateText(user.npub)}