import { Button } from '@/components/ui/button' import { Separator } from '@/components/ui/separator' import { isDevEnv } from '@/lib/utils' import { useNostr } from '@/providers/NostrProvider' import { useState } from 'react' import { useTranslation } from 'react-i18next' import AccountList from '../AccountList' import NostrConnectLogin from './NostrConnectionLogin' import NpubLogin from './NpubLogin' import PrivateKeyLogin from './PrivateKeyLogin' import Signup from './Signup' type TAccountManagerPage = 'nsec' | 'bunker' | 'npub' | 'signup' | null export default function AccountManager({ close }: { close?: () => void }) { const [page, setPage] = useState(null) return ( <> {page === 'nsec' ? ( setPage(null)} onLoginSuccess={() => close?.()} /> ) : page === 'bunker' ? ( setPage(null)} onLoginSuccess={() => close?.()} /> ) : page === 'npub' ? ( setPage(null)} onLoginSuccess={() => close?.()} /> ) : page === 'signup' ? ( setPage(null)} onSignupSuccess={() => close?.()} /> ) : ( )} ) } function AccountManagerNav({ setPage, close }: { setPage: (page: TAccountManagerPage) => void close?: () => void }) { const { t } = useTranslation() const { nip07Login, accounts } = useNostr() return (
e.stopPropagation()} className="flex flex-col gap-8">
{t('Add an Account')}
{!!window.nostr && ( )} {isDevEnv() && ( )}
{t("Don't have an account yet?")}
{accounts.length > 0 && ( <>
{t('Logged in Accounts')}
close?.()} />
)}
) }