diff --git a/dashboard/src/pages/cloud/tenants/ledgers/documents.tsx b/dashboard/src/pages/cloud/tenants/ledgers/documents.tsx index acfb1a0c3..beb39c710 100644 --- a/dashboard/src/pages/cloud/tenants/ledgers/documents.tsx +++ b/dashboard/src/pages/cloud/tenants/ledgers/documents.tsx @@ -1,7 +1,9 @@ -import React from "react"; +import React, { useContext } from "react"; // import { rawConnect } from "@fireproof/cloud"; import { Link, useNavigate, useParams } from "react-router-dom"; -import { useFireproof } from "use-fireproof"; +import { toCloud, useFireproof } from "use-fireproof"; +import { SimpleTokenStrategy } from "../../../../../../core/gateways/cloud/to-cloud.js"; +import { AppContext } from "../../../../app-context.jsx"; import { Button } from "../../../../components/Button.jsx"; import { DynamicTable } from "../../../../components/DynamicTable.jsx"; import { headersForDocs } from "../../../../components/dynamicTableHelpers.js"; @@ -14,14 +16,30 @@ interface Document { export function LedgerDocuments() { const { tenantId, ledgerId } = useParams(); - // const { cloud } = useContext(AppContext); + const { cloud } = useContext(AppContext); + const cloudToken = cloud.getCloudToken(); + + // Wait for token before rendering the main component + if (cloudToken.isPending) { + return
Loading...
; + } + if (!cloudToken.data) { + return
Not found
; + } + + return ; +} + +function LedgerDocumentsContent({ tenantId, ledgerId, token }: { tenantId?: string; ledgerId?: string; token: string }) { const navigate = useNavigate(); - const { useLiveQuery, database } = useFireproof(ledgerId || ""); - // Connect to Fireproof Cloud - // if (database && ledgerId && tenantId) { - // rawConnect(database as any, `${tenantId}-${ledgerId}`, DEFAULT_ENDPOINT); - // } + const { useLiveQuery, database } = useFireproof(ledgerId || "", { + attach: toCloud({ + tenant: tenantId, + ledger: ledgerId, + strategy: new SimpleTokenStrategy(token), + }), + }); const allDocs = useLiveQuery("_id"); const docs = allDocs.docs.filter((doc) => !!doc);