import { useArk } from "@lume/ark"; import { Account } from "@lume/types"; import { User } from "@lume/ui"; import { useNavigate, useParams, useSearch } from "@tanstack/react-router"; import { useEffect, useState } from "react"; import * as Popover from "@radix-ui/react-popover"; import * as DropdownMenu from "@radix-ui/react-dropdown-menu"; import { BackupDialog } from "./backup"; import { LoginDialog } from "./login"; export function Accounts() { const ark = useArk(); const params = useParams({ strict: false }); const [accounts, setAccounts] = useState(null); useEffect(() => { async function getAllAccounts() { const data = await ark.get_all_accounts(); if (data) setAccounts(data); } getAllAccounts(); }, []); return (
{accounts ? accounts.map((account) => // @ts-ignore, useless account.npub === params.account ? ( ) : ( ), ) : null}
); } function Inactive({ pubkey }: { pubkey: string }) { const ark = useArk(); const navigate = useNavigate(); const changeAccount = async (npub: string) => { const select = await ark.load_selected_account(npub); if (select) navigate({ to: "/$account/home/local", params: { account: npub } }); }; return ( ); } function Active({ pubkey }: { pubkey: string }) { const ark = useArk(); const navigate = useNavigate(); // @ts-ignore, magic !!! const { guest } = useSearch({ strict: false }); // @ts-ignore, magic !!! const { account } = useParams({ strict: false }); if (guest) { return (

You're using random account

You can continue by claim and backup this account, or you can import your own account.

); } return ( Add account ark.open_profile(account)} className="group relative flex h-9 select-none items-center rounded-md px-3 text-sm font-medium leading-none outline-none hover:bg-neutral-900 dark:hover:bg-neutral-100" > Profile
⌘+Shift+P
navigate({ to: "/", search: { manually: true } })} className="group relative flex h-9 select-none items-center rounded-md px-3 text-sm font-medium leading-none outline-none hover:bg-neutral-900 dark:hover:bg-neutral-100" > Logout
⌘+Shift+L
); }