
import { useCallback } from 'react';
import { toast } from '@/hooks/useToast.wrapper';
import { 
  loadTransactionsFromStorage, 
  loadBudgetFromStorage 
} from './storageUtils';

/**
 * 트랜잭션 로딩 관련 훅
 * 로컬 스토리지에서 트랜잭션 데이터를 로드합니다.
 */
export const useTransactionsLoader = (
  setTransactions: (transactions: any[]) => void,
  setTotalBudget: (budget: number) => void,
  setIsLoading: (isLoading: boolean) => void,
  setError: (error: string | null) => void
) => {
  // 트랜잭션 로드
  const loadTransactions = useCallback(() => {
    setIsLoading(true);
    setError(null);
    
    try {
      const localTransactions = loadTransactionsFromStorage();
      setTransactions(localTransactions);
      
      // 예산 가져오기 (월간 예산만 설정)
      const budgetAmount = loadBudgetFromStorage();
      setTotalBudget(budgetAmount);
      
      console.log('로드된 예산 금액:', budgetAmount);
    } catch (err) {
      console.error('트랜잭션 로드 중 오류:', err);
      setError('데이터를 불러오는 중 문제가 발생했습니다.');
      toast({
        title: "데이터 로드 실패",
        description: "지출 내역을 불러오는데 실패했습니다.",
        variant: "destructive",
        duration: 4000
      });
    } finally {
      // 로딩 상태를 약간 지연시켜 UI 업데이트가 원활하게 이루어지도록 함
      setTimeout(() => setIsLoading(false), 300);
    }
  }, [setTransactions, setTotalBudget, setIsLoading, setError]);

  return {
    loadTransactions
  };
};
