import send from '~/assets/icons/send.svg';
import receive from '~/assets/icons/receive.svg';
import { Card, LoadingSpinner, SmallAmount, SmallHeader, VStack } from './layout';
import { For, Match, ParentComponent, Suspense, Switch, createMemo, createResource, createSignal } from 'solid-js';
import { useMegaStore } from '~/state/megaStore';
import { MutinyInvoice } from '@mutinywallet/mutiny-wasm';
import { prettyPrintTime } from '~/utils/prettyPrintTime';
import { JsonModal } from '~/components/JsonModal';
import mempoolTxUrl from '~/utils/mempoolTxUrl';
const THREE_COLUMNS = 'grid grid-cols-[auto,1fr,auto] gap-4 py-2 px-2 border-b border-neutral-800 last:border-b-0'
const CENTER_COLUMN = 'min-w-0 overflow-hidden max-w-full'
const MISSING_LABEL = 'py-1 px-2 bg-m-red rounded inline-block text-sm'
const RIGHT_COLUMN = 'flex flex-col items-right text-right'
type OnChainTx = {
txid: string
received: number
sent: number
fee?: number
confirmation_time?: {
height: number
timestamp: number
}
}
type Utxo = {
outpoint: string
txout: {
value: number
script_pubkey: string
}
keychain: string
is_spent: boolean
}
const SubtleText: ParentComponent = (props) => {
return
{props.children}
}
function OnChainItem(props: { item: OnChainTx }) {
const isReceive = createMemo(() => props.item.received > 0);
const [open, setOpen] = createSignal(false)
return (
<>
Mempool Link
setOpen(!open())}>
{isReceive() ?

:

}
Label Missing
{isReceive() ? : }
{/* Txid: {props.item.txid}
*/}
{isReceive() ? "RECEIVE" : "SEND"}
{props.item.confirmation_time ? prettyPrintTime(props.item.confirmation_time.timestamp) : "Unconfirmed"}
>
)
}
function InvoiceItem(props: { item: MutinyInvoice }) {
const isSend = createMemo(() => props.item.is_send);
const [open, setOpen] = createSignal(false)
return (
<>
setOpen(!open())}>
{isSend() ?

:

}
Label Missing
{isSend() ? "SEND" : "RECEIVE"}
{prettyPrintTime(Number(props.item.expire))}
>
)
}
function Utxo(props: { item: Utxo }) {
const spent = createMemo(() => props.item.is_spent);
const [open, setOpen] = createSignal(false)
return (
<>
setOpen(!open())}>
Label Missing
{spent() ? "SPENT" : "UNSPENT"}
>
)
}
export function Activity() {
const [state, _] = useMegaStore();
const getTransactions = async () => {
console.log("Getting onchain txs");
const txs = await state.node_manager?.list_onchain() as OnChainTx[];
return txs.reverse();
}
const getInvoices = async () => {
console.log("Getting invoices");
const invoices = await state.node_manager?.list_invoices() as MutinyInvoice[];
return invoices.filter((inv) => inv.paid).reverse();
}
const getUtXos = async () => {
console.log("Getting utxos");
const utxos = await state.node_manager?.list_utxos() as Utxo[];
return utxos;
}
const [transactions, { refetch: _refetchTransactions }] = createResource(getTransactions);
const [invoices, { refetch: _refetchInvoices }] = createResource(getInvoices);
const [utxos, { refetch: _refetchUtxos }] = createResource(getUtXos);
return (
No transactions (empty state)
= 0}>
{(tx) =>
}
No invoices (empty state)
= 0}>
{(invoice) =>
}
No utxos (empty state)
= 0}>
{(utxo) =>
}
)
}