feat: show per-group report stats in collapsed accordion header

Move the Sum/Count/Avg/Min/Max/First/Last metric row from inside the
expanded accordion details into the accordion summary as a second row,
so group stats are visible while the group is collapsed. Second row
renders compact label-value pairs instead of pills; summary content is
now a two-row column.
This commit is contained in:
2026-08-20 16:37:05 +05:30
parent fc3a48a367
commit f865f7dec2

View File

@@ -165,12 +165,14 @@ export function TransactionList({ items, fields, granularity = "monthly", showMe
px: 2, px: 2,
py: 1, py: 1,
"& .MuiAccordionSummary-content": { "& .MuiAccordionSummary-content": {
alignItems: "center", flexDirection: "column",
gap: 1.5, alignItems: "stretch",
gap: 0.75,
minWidth: 0, minWidth: 0,
}, },
}} }}
> >
<Box sx={{ display: "flex", alignItems: "center", gap: 1.5, minWidth: 0 }}>
<Typography variant="h6" fontWeight={700} sx={{ letterSpacing: "-0.01em" }}> <Typography variant="h6" fontWeight={700} sx={{ letterSpacing: "-0.01em" }}>
{group.label} {group.label}
</Typography> </Typography>
@@ -187,9 +189,12 @@ export function TransactionList({ items, fields, granularity = "monthly", showMe
<Typography variant="body2" fontWeight={700} color="success.main"> <Typography variant="body2" fontWeight={700} color="success.main">
{formatCurrency(group.income, group.currency)} {formatCurrency(group.income, group.currency)}
</Typography> </Typography>
</Box>
<Box sx={{ display: "flex", alignItems: "stretch", gap: 1.5, minWidth: 0 }}>
{showMetrics && <GroupMetrics items={group.items} currency={group.currency} />}
</Box>
</AccordionSummary> </AccordionSummary>
<AccordionDetails sx={{ p: 1.5, pt: 1 }}> <AccordionDetails sx={{ p: 1.5, pt: 1 }}>
{showMetrics && <GroupMetrics items={group.items} currency={group.currency} />}
<Box sx={{ display: "flex", flexDirection: "column", gap: 1 }}> <Box sx={{ display: "flex", flexDirection: "column", gap: 1 }}>
{groupByDate(group.items).map((dateGroup) => ( {groupByDate(group.items).map((dateGroup) => (
<Box <Box