Fix toast and data reset issues

- Resolved issue where budget creation toast appeared before expense creation toast.
- Fixed data reset causing a redirect to the login screen.
This commit is contained in:
gpt-engineer-app[bot]
2025-03-16 09:13:08 +00:00
parent 468bb79c9e
commit 7ab79d125e
6 changed files with 213 additions and 240 deletions

View File

@@ -1,4 +1,3 @@
import { useState, useEffect, useCallback } from 'react';
import { Transaction } from '@/components/TransactionCard';
import { useAuth } from '@/contexts/auth/AuthProvider';
@@ -23,6 +22,7 @@ import {
updateTransactionInSupabase,
deleteTransactionFromSupabase
} from './supabaseUtils';
import { Loader2 } from 'lucide-react';
// useTransactions 훅
export const useTransactions = () => {
@@ -63,10 +63,12 @@ export const useTransactions = () => {
toast({
title: "데이터 로드 실패",
description: "지출 내역을 불러오는데 실패했습니다.",
variant: "destructive"
variant: "destructive",
duration: 4000
});
} finally {
setIsLoading(false);
// 로딩 상태를 약간 지연시켜 UI 업데이트가 원활하게 이루어지도록 함
setTimeout(() => setIsLoading(false), 300);
}
}, []);
@@ -153,10 +155,14 @@ export const useTransactions = () => {
// 이벤트 발생
window.dispatchEvent(new Event('transactionUpdated'));
toast({
title: "지출이 수정되었습니다",
description: `${updatedTransaction.title} 항목이 업데이트되었습니다.`,
});
// 약간의 지연을 두고 토스트 표시
setTimeout(() => {
toast({
title: "지출이 수정되었습니다",
description: `${updatedTransaction.title} 항목이 업데이트되었습니다.`,
duration: 3000
});
}, 100);
};
// 트랜잭션 삭제
@@ -177,10 +183,14 @@ export const useTransactions = () => {
// 이벤트 발생
window.dispatchEvent(new Event('transactionUpdated'));
toast({
title: "지출이 삭제되었습니다",
description: "선택한 지출 항목이 삭제되었습니다.",
});
// 약간의 지연을 두고 토스트 표시
setTimeout(() => {
toast({
title: "지출이 삭제되었습니다",
description: "선택한 지출 항목이 삭제되었습니다.",
duration: 3000
});
}, 100);
};
// 데이터 강제 새로고침