feat: add transaction deduplication feature and enhance filtering options in settings and transactions pages

This commit is contained in:
Julien Froidefond
2025-11-30 13:02:03 +01:00
parent e087143675
commit d5aa00a885
9 changed files with 616 additions and 26 deletions

View File

@@ -18,6 +18,7 @@ import {
MoreVertical,
ArrowUpDown,
Wand2,
Trash2,
} from "lucide-react";
import { DropdownMenuSeparator } from "@/components/ui/dropdown-menu";
import { cn } from "@/lib/utils";
@@ -40,6 +41,7 @@ interface TransactionTableProps {
onMarkReconciled: (id: string) => void;
onSetCategory: (transactionId: string, categoryId: string | null) => void;
onCreateRule: (transaction: Transaction) => void;
onDelete: (id: string) => void;
formatCurrency: (amount: number) => string;
formatDate: (dateStr: string) => string;
}
@@ -60,6 +62,7 @@ export function TransactionTable({
onMarkReconciled,
onSetCategory,
onCreateRule,
onDelete,
formatCurrency,
formatDate,
}: TransactionTableProps) {
@@ -319,6 +322,23 @@ export function TransactionTable({
<Wand2 className="w-4 h-4 mr-2" />
Créer une règle
</DropdownMenuItem>
<DropdownMenuSeparator />
<DropdownMenuItem
onClick={(e) => {
e.stopPropagation();
if (
confirm(
`Êtes-vous sûr de vouloir supprimer cette transaction ?\n\n${transaction.description}\n${formatCurrency(transaction.amount)}`
)
) {
onDelete(transaction.id);
}
}}
className="text-red-600 focus:text-red-600"
>
<Trash2 className="w-4 h-4 mr-2" />
Supprimer
</DropdownMenuItem>
</DropdownMenuContent>
</DropdownMenu>
</div>