{data.data.map((item, index) => {
const category = item.category ?? fallbackCategory;
const Icon = (Icons[
category.icon as keyof typeof Icons
] || Icons.HelpCircle) as LucideIcon;
const percentageChange =
item.previous_amount > 0
? ((item.amount - item.previous_amount) /
item.previous_amount) *
100
: null;
const categoryColor = getCategoryColorClasses(
category.color,
);
const chartColor = categoryBarColor(
category.color,
index,
);
const categoryUrl = period
? transactionsIndex({
query: {
category_ids: item.category_id,
date_from: format(
period.from,
'yyyy-MM-dd',
),
date_to: format(period.to, 'yyyy-MM-dd'),
},
}).url
: null;
const rowContent = (
<>
{percentageChange !== null && (
)}
{item.percentage.toFixed(0)}%
>
);
return categoryUrl ? (
{rowContent}
) : (
{rowContent}
);
})}
{data.data.length === 0 && (
{emptyMessage}
)}