Fix budget display issue
The budget display in the budget card was not showing correctly when the budget was not set. This commit fixes the issue.
This commit is contained in:
@@ -2,6 +2,7 @@
|
||||
import { useCallback } from 'react';
|
||||
import { BudgetData, BudgetPeriod } from '../types';
|
||||
import { calculateUpdatedBudgetData } from '../budgetUtils';
|
||||
import { toast } from '@/components/ui/use-toast';
|
||||
|
||||
// 확장된 예산 업데이트 로직을 제공하는 훅
|
||||
export const useExtendedBudgetUpdate = (
|
||||
@@ -20,19 +21,52 @@ export const useExtendedBudgetUpdate = (
|
||||
|
||||
// 카테고리 예산이 제공된 경우 업데이트
|
||||
if (newCategoryBudgets) {
|
||||
// 카테고리 예산 저장
|
||||
updateCategoryBudgets(newCategoryBudgets);
|
||||
|
||||
// 총액 계산
|
||||
const totalAmount = Object.values(newCategoryBudgets).reduce((sum, val) => sum + val, 0);
|
||||
console.log('카테고리 총액:', totalAmount);
|
||||
try {
|
||||
// 카테고리 예산 저장
|
||||
updateCategoryBudgets(newCategoryBudgets);
|
||||
|
||||
// 총액 계산 (0 확인)
|
||||
const totalAmount = Object.values(newCategoryBudgets).reduce((sum, val) => sum + val, 0);
|
||||
console.log('카테고리 총액:', totalAmount);
|
||||
|
||||
// 월간 예산 금액으로 예산 데이터 업데이트
|
||||
// 월간 예산을 설정하면 자동으로 일간/주간 예산도 계산되도록 수정
|
||||
handleBudgetGoalUpdate('monthly', totalAmount);
|
||||
if (totalAmount <= 0) {
|
||||
toast({
|
||||
title: "예산 설정 오류",
|
||||
description: "유효한 예산 금액을 입력해주세요.",
|
||||
variant: "destructive"
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
// 월간 예산 금액으로 예산 데이터 업데이트
|
||||
// 월간 예산을 설정하면 자동으로 일간/주간 예산도 계산됨
|
||||
handleBudgetGoalUpdate('monthly', totalAmount);
|
||||
|
||||
// 성공 토스트 표시
|
||||
toast({
|
||||
title: "카테고리 예산 설정 완료",
|
||||
description: `월간 총 예산이 ${totalAmount.toLocaleString()}원으로 설정되었습니다.`
|
||||
});
|
||||
} catch (error) {
|
||||
console.error('카테고리 예산 업데이트 오류:', error);
|
||||
toast({
|
||||
title: "예산 설정 오류",
|
||||
description: "카테고리 예산을 업데이트하는 중 오류가 발생했습니다.",
|
||||
variant: "destructive"
|
||||
});
|
||||
}
|
||||
} else {
|
||||
// 카테고리 예산이 없는 경우, 선택된 기간 유형에 맞게 예산 설정
|
||||
// 이 경우에도 다른 기간의 예산이 자동으로 계산됨
|
||||
if (amount <= 0) {
|
||||
toast({
|
||||
title: "예산 설정 오류",
|
||||
description: "유효한 예산 금액을 입력해주세요.",
|
||||
variant: "destructive"
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
handleBudgetGoalUpdate(type, amount);
|
||||
}
|
||||
}, [categoryBudgets, handleBudgetGoalUpdate, updateCategoryBudgets]);
|
||||
|
||||
Reference in New Issue
Block a user