"use client"; import { useEffect } from "react"; import Link from "next/link"; import { useRouter } from "next/navigation"; 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 StatusIndicator from "@/components/StatusIndicator"; import { type NDKUser } from "@nostr-dev-kit/ndk"; import { truncateText, getTwoLetters } from "@/lib/utils"; import { useNDK } from "@/app/_providers/ndk"; import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, } from "@/components/ui/tooltip"; import { useKeyboardShortcut } from "@/lib/hooks/useKeyboardShortcut"; const LoginModal = dynamic(() => import("@/components/Modals/Login"), { ssr: false, }); export default function AuthActions() { const router = useRouter(); const modal = useModal(); const { currentUser, logout, attemptLogin, initSubscriptions } = useCurrentUser(); const { ndk } = useNDK(); useKeyboardShortcut(["shift", "ctrl", "u"], () => { if (currentUser) { router.push(`/${currentUser?.npub}`); } else { modal?.show(); } }); useKeyboardShortcut(["shift", "ctrl", "q"], () => { if (currentUser) { logout(); } }); useEffect(() => { if (ndk && !currentUser) { void attemptLogin(); } }, [ndk]); if (currentUser) { return ( <> ); } return ( <> ); } export function Notifications({ user }: { user: NDKUser }) { return (

Coming Soon

); // 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 (
{user.profile?.displayName || user.profile?.name ? ( <>

{user.profile?.displayName ?? user.profile.name}

{user.profile?.nip05 ?? truncateText(user.npub)}

) : (

{truncateText(user.npub)}

)}
Profile ⇧⌘U {/* Billing ⌘B Settings ⌘S New Team */} Log out ⇧⌘Q
); }