Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 | 1x 23x 23x 23x 138x 92x 23x 23x 23x | import { parseAmount } from "@utils/index";
import { useGetTransferStats } from "./useGetTransfers";
import { Stat } from "@features/Products/data.types";
export const useTransfersStats = () => {
// Sent -> settled
// requested -> enqueued
// ready to process -> approved
// prcessing -> sending
// failed -> failed
// declined -> declined
const { data } = useGetTransferStats();
const stats = [
{
title: "Canceled",
value: data?.canceledCount,
order: 0,
},
{
title: "Sending",
value: data?.processingCount,
order: 2,
},
{
title: "Requested",
value: data?.enqueuedCount,
order: 1,
},
{
title: "Sent",
value: data?.settledCount,
order: 3,
},
] satisfies (Stat & { order: number })[];
const sortedStats: Stat[] = stats
.toSorted((a, b) => a.order - b.order)
.map(({ title, value }) => ({
title,
value: (value ?? 0).toLocaleString("en-US", {
maximumFractionDigits: 2,
}),
}));
const totalAmount = (data?.totalAmount || 0) / 100;
const mainStats = [
{ title: "Total", value: totalAmount, isAmount: true },
] as Stat[];
return {
data: {
totalTransfersAmount: parseAmount(totalAmount),
stats,
mainStats,
sortedStats,
},
};
};
|