import { Button } from '@/components/ui/button'
import {
DropdownMenu,
DropdownMenuContent,
DropdownMenuItem,
DropdownMenuLabel,
DropdownMenuSeparator,
DropdownMenuTrigger
} from '@/components/ui/dropdown-menu'
import { toWallet } from '@/lib/link'
import { cn } from '@/lib/utils'
import { useSecondaryPage, useSidebarDrawer } from '@/PageManager'
import { useNostr } from '@/providers/NostrProvider'
import { useScreenSize } from '@/providers/ScreenSizeProvider'
import { LogIn, LogOut, Plus, RefreshCw, Wallet } from 'lucide-react'
import { useState } from 'react'
import { useTranslation } from 'react-i18next'
import LoginDialog from '../LoginDialog'
import LogoutDialog from '../LogoutDialog'
import SignerTypeBadge from '../SignerTypeBadge'
import { SimpleUserAvatar } from '../UserAvatar'
import { SimpleUsername } from '../Username'
import SidebarItem from './SidebarItem'
export default function AccountButton({ collapse }: { collapse: boolean }) {
const { pubkey } = useNostr()
if (pubkey) {
return
} else {
return
}
}
function ProfileButton({ collapse }: { collapse: boolean }) {
const { t } = useTranslation()
const { account, accounts, switchAccount } = useNostr()
const pubkey = account?.pubkey
const { push } = useSecondaryPage()
const { isSmallScreen } = useScreenSize()
const { close: closeSidebarDrawer } = useSidebarDrawer()
const [dropdownOpen, setDropdownOpen] = useState(false)
const [loginDialogOpen, setLoginDialogOpen] = useState(false)
const [logoutDialogOpen, setLogoutDialogOpen] = useState(false)
if (!pubkey) return null
const handleOpenLoginDialog = () => {
setDropdownOpen(false)
if (isSmallScreen) {
closeSidebarDrawer()
setTimeout(() => setLoginDialogOpen(true), 150)
} else {
setLoginDialogOpen(true)
}
}
const handleOpenLogoutDialog = () => {
setDropdownOpen(false)
if (isSmallScreen) {
closeSidebarDrawer()
setTimeout(() => setLogoutDialogOpen(true), 150)
} else {
setLogoutDialogOpen(true)
}
}
return (
<>
push(toWallet())}>
{t('Wallet')}
{t('Switch account')}
{accounts.map((act) => (
{
if (act.pubkey !== pubkey) {
switchAccount(act)
}
}}
>
))}
{t('Logout')}
window.location.reload()}
>
{t('Force Reload')}
>
)
}
function LoginButton({ collapse }: { collapse: boolean }) {
const { checkLogin } = useNostr()
return (
checkLogin()} title="Login" collapse={collapse}>
)
}