import dayjs from "dayjs"; import { ChevronRightIcon } from "lucide-react"; import { Link } from "react-router"; import AppAvatar from "src/components/AppAvatar"; import { FormattedBitcoinAmount } from "src/components/FormattedBitcoinAmount"; import { Card, CardContent, CardHeader, CardTitle, } from "src/components/ui/card"; import { LinkButton } from "src/components/ui/custom/link-button"; import { useApps } from "src/hooks/useApps"; import { useTransactions } from "src/hooks/useTransactions"; import { cn, getAppDisplayName } from "src/lib/utils"; import { App } from "src/types"; export function LatestUsedAppsWidget() { const { data: appsData } = useApps( 3, undefined, undefined, "last_settled_transaction" ); const apps = appsData?.apps; const usedApps = apps?.filter((x) => x.lastSettledTransactionAt); if (!usedApps?.length) { return null; } return (
Recently Used Apps
See All
{usedApps .sort( (a, b) => new Date(b.lastSettledTransactionAt ?? 0).getTime() - new Date(a.lastSettledTransactionAt ?? 0).getTime() ) .map((app) => ( ))}
); } function RecentlyUsedAppRow({ app }: { app: App }) { const { data: transactionsData } = useTransactions(app.id, false, 1, 1); const latestTransaction = transactionsData?.transactions[0]; return (

{getAppDisplayName(app.name)}

{latestTransaction && ( {latestTransaction.type === "outgoing" ? "-" : "+"} )} {app.lastSettledTransactionAt ? dayjs(app.lastSettledTransactionAt).fromNow() : "never"}
); }