All files / src/features/Settlements/ReconciliationHub/components HubKpiCards.tsx

100% Statements 2/2
100% Branches 0/0
100% Functions 1/1
100% Lines 2/2

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;