import React, { useState } from 'react'; import { Transaction } from './TransactionCard'; import TransactionEditDialog from './TransactionEditDialog'; import { ChevronRight } from 'lucide-react'; import { useBudget } from '@/contexts/BudgetContext'; import { Link } from 'react-router-dom'; interface RecentTransactionsSectionProps { transactions: Transaction[]; onUpdateTransaction?: (transaction: Transaction) => void; } const RecentTransactionsSection: React.FC = ({ transactions, onUpdateTransaction }) => { const [selectedTransaction, setSelectedTransaction] = useState(null); const [isDialogOpen, setIsDialogOpen] = useState(false); const { updateTransaction, deleteTransaction } = useBudget(); const handleTransactionClick = (transaction: Transaction) => { setSelectedTransaction(transaction); setIsDialogOpen(true); }; const handleUpdateTransaction = (updatedTransaction: Transaction) => { if (onUpdateTransaction) { onUpdateTransaction(updatedTransaction); } // 직접 컨텍스트를 통해 업데이트 updateTransaction(updatedTransaction); }; const handleDeleteTransaction = (id: string) => { // 직접 컨텍스트를 통해 삭제 deleteTransaction(id); }; const formatCurrency = (amount: number) => { return amount.toLocaleString('ko-KR') + '원'; }; const getCategoryIcon = (category: string) => { switch (category) { case '식비': return '🍽️'; case '교통비': return '🚗'; case '생활비': return '🏠'; case '쇼핑': return '🛍️'; case '의료': return '💊'; case '여가': return '🎮'; case '교육': return '📚'; default: return '💰'; } }; return (

최근 지출

더보기
{transactions.length > 0 ? ( transactions.map((transaction) => (
handleTransactionClick(transaction)} >
{getCategoryIcon(transaction.category)}

{transaction.title}

{transaction.date}

-{formatCurrency(transaction.amount)}

{transaction.category}

)) ) : (
지출 내역이 없습니다
)}
{selectedTransaction && ( )}
); }; export default RecentTransactionsSection;