
import { useEffect } from 'react';

/**
 * 앱 첫 실행 시 로컬스토리지 데이터를 로드하는 커스텀 훅
 */
export const useInitialDataLoading = () => {
  useEffect(() => {
    try {
      console.log('Index 페이지 마운트, 데이터 확인 중...');
      
      // 페이지 첫 마운트 시에만 실행되는 로직
      const isFirstMount = sessionStorage.getItem('initialDataLoaded') !== 'true';
      
      if (isFirstMount) {
        try {
          // 백업된 데이터 복구 확인 (메인 데이터가 없는 경우만)
          if (!localStorage.getItem('budgetData')) {
            const budgetBackup = localStorage.getItem('budgetData_backup');
            if (budgetBackup) {
              console.log('예산 데이터 백업에서 복구');
              localStorage.setItem('budgetData', budgetBackup);
            }
          }
          
          if (!localStorage.getItem('categoryBudgets')) {
            const categoryBackup = localStorage.getItem('categoryBudgets_backup');
            if (categoryBackup) {
              console.log('카테고리 예산 백업에서 복구');
              localStorage.setItem('categoryBudgets', categoryBackup);
            }
          }
          
          if (!localStorage.getItem('transactions')) {
            const transactionBackup = localStorage.getItem('transactions_backup');
            if (transactionBackup) {
              console.log('트랜잭션 백업에서 복구');
              localStorage.setItem('transactions', transactionBackup);
            }
          }
          
          // 한 번만 이벤트 발생
          window.dispatchEvent(new Event('transactionUpdated'));
          window.dispatchEvent(new Event('budgetDataUpdated'));
          window.dispatchEvent(new Event('categoryBudgetsUpdated'));
          
          // 초기 로드 완료 표시
          sessionStorage.setItem('initialDataLoaded', 'true');
        } catch (error) {
          console.error('백업 복구 시도 중 오류:', error);
        }
      }
    } catch (error) {
      console.error('Index 페이지 초기화 중 오류:', error);
    }
  }, []);  // 컴포넌트 마운트 시 한 번만 실행
};
