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 | 2x 8x | import { Stack } from "@mui/material";
import { ReconciliationHubView } from "../types";
import { formatHubAmount, formatHubPercent } from "../format";
import HubStatCard from "./HubStatCard";
interface Props {
data?: ReconciliationHubView;
}
/**
* Top KPI row: Our Revenue, Our Revenue % (Net Margin), Volume, FBO Available.
* Our Revenue % is derived client-side (ourRevenue รท volume).
*/
const HubKpiCards = ({ data }: Props) => {
return (
<Stack direction="row" flexWrap="wrap" gap="20px" data-testid="hub-kpi-cards">
<HubStatCard
label="Our Revenue (USD)"
value={formatHubAmount(data?.ourRevenue)}
/>
<HubStatCard
label="Net Margin"
value={formatHubPercent(data?.ourRevenue, data?.volume)}
/>
<HubStatCard label="Volume (USD)" value={formatHubAmount(data?.volume)} />
<HubStatCard
label="FBO Available (USD)"
value={formatHubAmount(data?.fboAvailable)}
/>
</Stack>
);
};
export default HubKpiCards;
|