zkt25/z2/Frontend/src/Components/Income/Income.tsx
Andrii Pervashov aa03f35ae0 z2 upload
2025-04-10 08:22:24 +02:00

37 lines
1.4 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import React from "react";
import { useSelector } from "react-redux";
import { RootState } from "../../redux/store"; // Импортируем RootState
const Income: React.FC = () => {
const transactions = useSelector((state: RootState) => state.balance.transactions);
// Фильтруем доходы
const incomeTransactions = transactions.filter(transaction => transaction.amount > 0);
// Считаем общую сумму доходов
const totalIncome = incomeTransactions.reduce((acc, transaction) => acc + transaction.amount, 0);
return (
<div className="p-4 max-w-md mx-auto bg-white rounded-lg shadow-md">
<h2 className="text-xl font-bold mb-4">Income</h2>
<ul>
{incomeTransactions.map(transaction => (
<li
key={transaction.id}
className="flex justify-between items-center p-2 rounded-md mb-2 bg-green-100 border-l-4 border-green-500"
>
<div>
<span className="font-medium">{transaction.description}</span>
<span className="block text-sm text-gray-600">{new Date(transaction.date).toLocaleDateString()}</span>
</div>
<span className="font-bold text-green-700">+{transaction.amount}</span>
</li>
))}
</ul>
<div className="mt-4 font-bold">Общая сумма: +{totalIncome}</div>
</div>
);
};
export default Income;