"use client"; import Link from "next/link"; import { useMemo } from "react"; import { useDerived, useSnap } from "@/lib/client"; import { Panel } from "@/components/portal"; import { money, orderTotal, staffName, statusTag } from "@/lib/compute"; import { shortDate } from "./bits"; /* An issuer's left column: raising orders from the list is an admin task, so they see the latest ten. */ export default function RecentOrders() { const { s } = useSnap(); const { byId, staffById } = useDerived(); const rows = useMemo(() => [...s.orders].sort((a, b) => b.date.localeCompare(a.date) || b.createdAt.localeCompare(a.createdAt)).slice(0, 10), [s.orders]); return ( Open the ledger}> {rows.length === 0 &&
No orders yet.
} {rows.map((o) => (
{o.code}
{o.staffId ? `For ${staffName(staffById[o.staffId], "staff member")}` : "For stock"} · {o.supplier} · {shortDate(o.date)}
{o.status} {money(orderTotal(o, byId))} ))}
); }