import * as React from "react"; import { Box, Paper, Typography } from "@mui/material"; import { ComponentProps } from "../report.props"; import ProgressCard from "./ProgressCard"; import { extractTopPayees } from "./TopPayees.adapter"; interface Props extends ComponentProps { compact?: boolean; } export default function TopPayees({ reportData, state, stateSetters, header, compact = true, isFetching, }: Props) { const { flow, selectedPeriodId, selectedGroupKey } = state; const { setSelectedGroupKey } = stateSetters; const { items, total } = React.useMemo(() => { return extractTopPayees(reportData, flow, selectedPeriodId, selectedGroupKey); }, [reportData, flow, selectedPeriodId, selectedGroupKey]); return ( {header} {items.map((item) => { const isSelected = selectedGroupKey?.payee?.includes(item.name); return ( { if (setSelectedGroupKey) { let newKey = selectedGroupKey ? { ...selectedGroupKey } : {}; if (isSelected) { delete newKey.payee; } else { newKey.payee = [item.name]; } setSelectedGroupKey(Object.keys(newKey).length ? newKey : null); } }} /> ); })} ); }