import { createResource, Show, Suspense } from "solid-js"; import { ButtonLink, FancyCard } from "~/components/layout"; import { useMegaStore } from "~/state/megaStore"; import { Amount } from "./Amount"; function prettyPrintAmount(n?: number | bigint): string { if (!n || n.valueOf() === 0) { return "0" } return n.toLocaleString() } function SyncingIndicator() { return (
Syncing
) } export default function BalanceBox() { const [state, _] = useMegaStore(); const fetchOnchainBalance = async () => { console.log("Refetching onchain balance"); await state.node_manager?.sync(); const balance = await state.node_manager?.get_balance(); return balance }; // TODO: it's hacky to do these separately, but ln doesn't need the sync so I don't want to wait const fetchLnBalance = async () => { console.log("Refetching ln balance"); const balance = await state.node_manager?.get_balance(); return balance }; const [onChainBalance, { refetch: refetchOnChainBalance }] = createResource(fetchOnchainBalance); const [lnBalance, { refetch: refetchLnBalance }] = createResource(fetchLnBalance); function refetchBalance() { refetchLnBalance(); refetchOnChainBalance(); } return ( <> }> }> }>
Unconfirmed Balance
{prettyPrintAmount(onChainBalance()?.unconfirmed)} SATS
Send Receive
) }