Investigate data initialization issue
Investigates and addresses a potential data loss issue where budget data is unexpectedly reset when navigating between pages.
This commit is contained in:
@@ -29,7 +29,7 @@ const Index = () => {
|
||||
const { isInitialized } = useDataInitialization(resetBudgetData);
|
||||
const isMobile = useIsMobile();
|
||||
|
||||
// 초기화 후 0.5초 후에 환영 메시지 표시 상태 확인
|
||||
// 초기화 후 환영 메시지 표시 상태 확인
|
||||
useEffect(() => {
|
||||
if (isInitialized) {
|
||||
const timeoutId = setTimeout(checkWelcomeDialogState, 500);
|
||||
@@ -39,12 +39,11 @@ const Index = () => {
|
||||
|
||||
// 페이지가 처음 로드될 때 데이터 로딩 확인
|
||||
useEffect(() => {
|
||||
// 데이터 로드 상태 확인
|
||||
console.log('Index 페이지 마운트, 현재 데이터 상태:');
|
||||
console.log('트랜잭션:', transactions.length);
|
||||
console.log('예산 데이터:', budgetData);
|
||||
|
||||
// 수동으로 이벤트 발생시켜 데이터 갱신
|
||||
// 페이지 마운트 시 데이터 동기화 이벤트 수동 발생
|
||||
try {
|
||||
window.dispatchEvent(new Event('transactionUpdated'));
|
||||
window.dispatchEvent(new Event('budgetDataUpdated'));
|
||||
@@ -53,34 +52,38 @@ const Index = () => {
|
||||
console.error('이벤트 발생 오류:', e);
|
||||
}
|
||||
|
||||
// 백업된 데이터 복구 확인
|
||||
// 백업된 데이터 복구 확인 (메인 데이터가 없는 경우만)
|
||||
try {
|
||||
const budgetBackup = localStorage.getItem('budgetData_backup');
|
||||
const categoryBackup = localStorage.getItem('categoryBudgets_backup');
|
||||
const transactionBackup = localStorage.getItem('transactions_backup');
|
||||
|
||||
// 메인 데이터가 없지만 백업은 있는 경우 복구
|
||||
if (!localStorage.getItem('budgetData') && budgetBackup) {
|
||||
console.log('예산 데이터 백업에서 복구');
|
||||
localStorage.setItem('budgetData', budgetBackup);
|
||||
window.dispatchEvent(new Event('budgetDataUpdated'));
|
||||
if (!localStorage.getItem('budgetData')) {
|
||||
const budgetBackup = localStorage.getItem('budgetData_backup');
|
||||
if (budgetBackup) {
|
||||
console.log('예산 데이터 백업에서 복구');
|
||||
localStorage.setItem('budgetData', budgetBackup);
|
||||
window.dispatchEvent(new Event('budgetDataUpdated'));
|
||||
}
|
||||
}
|
||||
|
||||
if (!localStorage.getItem('categoryBudgets') && categoryBackup) {
|
||||
console.log('카테고리 예산 백업에서 복구');
|
||||
localStorage.setItem('categoryBudgets', categoryBackup);
|
||||
window.dispatchEvent(new Event('categoryBudgetsUpdated'));
|
||||
if (!localStorage.getItem('categoryBudgets')) {
|
||||
const categoryBackup = localStorage.getItem('categoryBudgets_backup');
|
||||
if (categoryBackup) {
|
||||
console.log('카테고리 예산 백업에서 복구');
|
||||
localStorage.setItem('categoryBudgets', categoryBackup);
|
||||
window.dispatchEvent(new Event('categoryBudgetsUpdated'));
|
||||
}
|
||||
}
|
||||
|
||||
if (!localStorage.getItem('transactions') && transactionBackup) {
|
||||
console.log('트랜잭션 백업에서 복구');
|
||||
localStorage.setItem('transactions', transactionBackup);
|
||||
window.dispatchEvent(new Event('transactionUpdated'));
|
||||
if (!localStorage.getItem('transactions')) {
|
||||
const transactionBackup = localStorage.getItem('transactions_backup');
|
||||
if (transactionBackup) {
|
||||
console.log('트랜잭션 백업에서 복구');
|
||||
localStorage.setItem('transactions', transactionBackup);
|
||||
window.dispatchEvent(new Event('transactionUpdated'));
|
||||
}
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('백업 복구 시도 중 오류:', error);
|
||||
}
|
||||
}, []);
|
||||
}, [transactions.length, budgetData]);
|
||||
|
||||
// 앱이 포커스를 얻었을 때 데이터를 새로고침
|
||||
useEffect(() => {
|
||||
|
||||
Reference in New Issue
Block a user