import { createMemo, createResource, createSignal, For, Show } from "solid-js" import { getTenant, listTenantInvoices, updateTenantBilling } from "../lib/api" import PageContainer from "../components/PageContainer" import ResourceState from "../components/ResourceState" export default function Account() { const [tenant, { refetch: refetchTenant }] = createResource(getTenant) const [invoices] = createResource(listTenantInvoices) const [nwcUrl, setNwcUrl] = createSignal("") const [saving, setSaving] = createSignal(false) const [error, setError] = createSignal("") const recurringEnabled = createMemo(() => !!tenant()?.tenant_nwc_url?.trim()) async function saveBilling() { setError("") setSaving(true) try { await updateTenantBilling(nwcUrl().trim()) setNwcUrl("") await refetchTenant() } catch (e) { setError(e instanceof Error ? e.message : "Failed to update billing") } finally { setSaving(false) } } return (

My Account

Account Status

{(t) => ( {t().status} )}

Recurring Billing

Enable automatic payments by providing your Nostr Wallet Connect URL.

setNwcUrl(e.currentTarget.value)} placeholder="nostr+walletconnect://..." class="flex-1 border border-gray-300 rounded-lg px-3 py-2" />

{error()}

Invoice History

Loading invoices...

0} fallback={

No invoices yet.

}>
    {(invoice) => (
  • {invoice.amount.toLocaleString()} sats {invoice.status}

    {new Date(invoice.created_at).toLocaleString()}

    {invoice.invoice}

  • )}
) }