Refactor RecentTransactionsSection
Further refactors RecentTransactionsSection to separate remaining logic. Creates additional hooks and utility files as needed.
This commit is contained in:
@@ -1,11 +1,12 @@
|
||||
|
||||
import React, { useState } from 'react';
|
||||
import React from 'react';
|
||||
import { Transaction } from '@/contexts/budget/types';
|
||||
import TransactionEditDialog from './TransactionEditDialog';
|
||||
import { ChevronRight } from 'lucide-react';
|
||||
import { useBudget } from '@/contexts/budget/BudgetContext';
|
||||
import { Link } from 'react-router-dom';
|
||||
import { useRecentTransactions } from '@/hooks/transactions/useRecentTransactions';
|
||||
import { useRecentTransactionsDialog } from '@/hooks/transactions/useRecentTransactionsDialog';
|
||||
import RecentTransactionItem from './recent-transactions/RecentTransactionItem';
|
||||
|
||||
interface RecentTransactionsSectionProps {
|
||||
@@ -17,17 +18,18 @@ const RecentTransactionsSection: React.FC<RecentTransactionsSectionProps> = ({
|
||||
transactions,
|
||||
onUpdateTransaction
|
||||
}) => {
|
||||
const [selectedTransaction, setSelectedTransaction] = useState<Transaction | null>(null);
|
||||
const [isDialogOpen, setIsDialogOpen] = useState(false);
|
||||
const { updateTransaction, deleteTransaction } = useBudget();
|
||||
|
||||
// 트랜잭션 삭제 관련 로직은 커스텀 훅으로 분리
|
||||
const { handleDeleteTransaction, isDeleting } = useRecentTransactions(deleteTransaction);
|
||||
|
||||
const handleTransactionClick = (transaction: Transaction) => {
|
||||
setSelectedTransaction(transaction);
|
||||
setIsDialogOpen(true);
|
||||
};
|
||||
|
||||
// 다이얼로그 관련 로직 분리
|
||||
const {
|
||||
selectedTransaction,
|
||||
isDialogOpen,
|
||||
handleTransactionClick,
|
||||
setIsDialogOpen
|
||||
} = useRecentTransactionsDialog();
|
||||
|
||||
const handleUpdateTransaction = (updatedTransaction: Transaction) => {
|
||||
if (onUpdateTransaction) {
|
||||
|
||||
Reference in New Issue
Block a user