import { useEffect, useState } from "react"; import { pb } from "../lib/pocketbase"; function memberLabel(record, id) { const m = record?.expand?.[id]; return m ? m.RSI_Handle || m.name || m.id : (record?.[id] ?? "—"); } export default function Ledger() { const [records, setRecords] = useState(null); const [error, setError] = useState(null); useEffect(() => { let cancelled = false; pb .collection("ledger") .getFullList({ expand: "sender,recipient", sort: "-created", requestKey: null }) .then((recs) => { if (!cancelled) setRecords(recs); }) .catch((err) => { console.error("Failed to load ledger:", err); if (!cancelled) setError(err); }); return () => { cancelled = true; }; }, []); return (
Failed to load ledger: {error?.message ?? String(error)}
)} {!error && records && records.length === 0 && (No ledger entries.
)} {!error && records && records.length > 0 && (| Date | Sender | Recipient | UEC | Note |
|---|---|---|---|---|
| {rec.created ? new Date(rec.created).toLocaleString() : "—"} | {memberLabel(rec, "sender")} | {memberLabel(rec, "recipient")} | {Number(rec.uec ?? 0).toLocaleString()} | {rec.note ?? ""} |