Fix transaction deletion issue
Addresses the issue where the transaction history page becomes unresponsive after deleting a transaction.
This commit is contained in:
@@ -19,6 +19,7 @@ const Transactions = () => {
|
||||
handleNextMonth,
|
||||
refreshTransactions,
|
||||
totalExpenses,
|
||||
deleteTransaction
|
||||
} = useTransactions();
|
||||
|
||||
const { budgetData } = useBudget();
|
||||
@@ -32,25 +33,36 @@ const Transactions = () => {
|
||||
}
|
||||
}, [budgetData, isLoading]);
|
||||
|
||||
// 트랜잭션 삭제 핸들러 (예외 처리 개선)
|
||||
const handleTransactionDelete = (id: string) => {
|
||||
// 트랜잭션 삭제 핸들러 (오류 수정)
|
||||
const handleTransactionDelete = async (id: string) => {
|
||||
try {
|
||||
console.log('Transactions 페이지에서 트랜잭션 삭제:', id);
|
||||
|
||||
// 삭제 중임을 표시
|
||||
setIsProcessing(true);
|
||||
|
||||
// 1초 후 처리 완료 상태로 변경 (비동기 작업 완료 보장)
|
||||
// 트랜잭션 삭제 수행 (개선된 함수 사용)
|
||||
const success = await deleteTransaction(id);
|
||||
|
||||
// 일정 시간 후 처리 상태 해제 (UI 응답성 향상)
|
||||
setTimeout(() => {
|
||||
setIsProcessing(false);
|
||||
}, 1000);
|
||||
|
||||
// 트랜잭션 목록 새로고침 (지연시켜 처리)
|
||||
setTimeout(() => {
|
||||
refreshTransactions();
|
||||
}, 300);
|
||||
|
||||
// 삭제 성공 시 데이터 새로고침
|
||||
if (success) {
|
||||
setTimeout(() => {
|
||||
refreshTransactions();
|
||||
}, 300);
|
||||
}
|
||||
}, 800);
|
||||
} catch (error) {
|
||||
console.error('트랜잭션 삭제 처리 중 오류:', error);
|
||||
setIsProcessing(false);
|
||||
|
||||
// 삭제 실패 시에도 데이터 새로고침 (안정성 향상)
|
||||
setTimeout(() => {
|
||||
refreshTransactions();
|
||||
}, 500);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -82,6 +94,8 @@ const Transactions = () => {
|
||||
const grouped: Record<string, Transaction[]> = {};
|
||||
|
||||
transactions.forEach(transaction => {
|
||||
if (!transaction.date) return;
|
||||
|
||||
const datePart = transaction.date.split(',')[0];
|
||||
if (!grouped[datePart]) {
|
||||
grouped[datePart] = [];
|
||||
|
||||
Reference in New Issue
Block a user