"use client"; import { RiLineChartLine } from "@remixicon/react"; import type { DashboardCategoryBreakdownItem } from "@/features/dashboard/categories/category-breakdown-helpers"; import { PercentageChangeIndicator } from "@/features/dashboard/components/percentage-change-indicator"; import { CategoryIconBadge } from "@/shared/components/entity-avatar"; import MoneyValues from "@/shared/components/money-values"; import { WidgetEmptyState } from "@/shared/components/widgets/widget-empty-state"; import { formatPercentage } from "@/shared/utils/percentage"; type CategoryTrendsWidgetProps = { categories: DashboardCategoryBreakdownItem[]; }; export function CategoryTrendsWidget({ categories, }: CategoryTrendsWidgetProps) { const trending = categories .filter((c) => c.percentageChange !== null && c.previousAmount > 0) .sort( (a, b) => Math.abs(b.percentageChange ?? 0) - Math.abs(a.percentageChange ?? 0), ) .slice(0, 10); if (trending.length === 0) { return ( } title="Dados insuficientes" description="As variações aparecem após lançamentos em dois meses consecutivos." /> ); } return ( ); }