From 8c71107a93525183ae3d2417d7c056d997f5e204 Mon Sep 17 00:00:00 2001 From: Frank Date: Tue, 16 Sep 2025 17:49:37 -0400 Subject: wip: zen --- .../src/component/workspace/payment-section.tsx | 23 +++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) (limited to 'cloud/app/src/component/workspace') diff --git a/cloud/app/src/component/workspace/payment-section.tsx b/cloud/app/src/component/workspace/payment-section.tsx index a346cb55f..d45b01c08 100644 --- a/cloud/app/src/component/workspace/payment-section.tsx +++ b/cloud/app/src/component/workspace/payment-section.tsx @@ -1,5 +1,5 @@ import { Billing } from "@opencode/cloud-core/billing.js" -import { query, useParams, createAsync } from "@solidjs/router" +import { query, action, useParams, createAsync, useAction } from "@solidjs/router" import { For } from "solid-js" import { withActor } from "~/context/auth.withActor" import { formatDateUTC, formatDateForTable } from "./common" @@ -12,9 +12,15 @@ const getPaymentsInfo = query(async (workspaceID: string) => { }, workspaceID) }, "payment.list") +const downloadReceipt = action(async (workspaceID: string, paymentID: string) => { + "use server" + return withActor(() => Billing.generateReceiptUrl({ paymentID }), workspaceID) +}, "receipt.download") + export function PaymentSection() { const params = useParams() const payments = createAsync(() => getPaymentsInfo(params.id)) + const downloadReceiptAction = useAction(downloadReceipt) return ( payments() && @@ -31,6 +37,7 @@ export function PaymentSection() { Date Payment ID Amount + Receipt @@ -44,6 +51,20 @@ export function PaymentSection() { {payment.id} ${((payment.amount ?? 0) / 100000000).toFixed(2)} + + + ) }} -- cgit v1.2.3