From 0702145431332b357754607811480531ce2850ab Mon Sep 17 00:00:00 2001 From: "gpt-engineer-app[bot]" <159125892+gpt-engineer-app[bot]@users.noreply.github.com> Date: Sat, 22 Mar 2025 11:20:58 +0000 Subject: [PATCH] Fix budget update issue Addresses an issue where budget updates were not being applied correctly. --- src/components/BudgetProgressCard.tsx | 5 +++-- src/components/BudgetTabContent.tsx | 3 ++- src/contexts/budget/hooks/useExtendedBudgetUpdate.ts | 7 ++++--- src/hooks/budget/useBudgetTabContent.ts | 3 ++- 4 files changed, 11 insertions(+), 7 deletions(-) diff --git a/src/components/BudgetProgressCard.tsx b/src/components/BudgetProgressCard.tsx index c6745c1..969d768 100644 --- a/src/components/BudgetProgressCard.tsx +++ b/src/components/BudgetProgressCard.tsx @@ -50,6 +50,7 @@ const BudgetProgressCard: React.FC = ({ // 컴포넌트 마운트 시 월간 탭을 기본으로 설정 useEffect(() => { if (selectedTab !== 'monthly') { + console.log("탭을 monthly로 강제 설정"); setSelectedTab('monthly'); } }, []); @@ -112,7 +113,7 @@ const BudgetProgressCard: React.FC = ({ data={budgetData.daily} formatCurrency={formatCurrency} calculatePercentage={calculatePercentage} - onSaveBudget={(amount, categoryBudgets) => onSaveBudget('daily', amount, categoryBudgets)} + onSaveBudget={(amount, categoryBudgets) => onSaveBudget('monthly', amount, categoryBudgets)} /> @@ -121,7 +122,7 @@ const BudgetProgressCard: React.FC = ({ data={budgetData.weekly} formatCurrency={formatCurrency} calculatePercentage={calculatePercentage} - onSaveBudget={(amount, categoryBudgets) => onSaveBudget('weekly', amount, categoryBudgets)} + onSaveBudget={(amount, categoryBudgets) => onSaveBudget('monthly', amount, categoryBudgets)} /> diff --git a/src/components/BudgetTabContent.tsx b/src/components/BudgetTabContent.tsx index 3ea4a3a..c8007a1 100644 --- a/src/components/BudgetTabContent.tsx +++ b/src/components/BudgetTabContent.tsx @@ -51,7 +51,8 @@ const BudgetTabContent: React.FC = ({ // 월간 예산 모드를 명시적으로 로깅 React.useEffect(() => { console.log('BudgetTabContent 렌더링: 월간 예산 모드'); - }, []); + console.log('현재 예산 데이터:', data); + }, [data]); return (
diff --git a/src/contexts/budget/hooks/useExtendedBudgetUpdate.ts b/src/contexts/budget/hooks/useExtendedBudgetUpdate.ts index 86ed6bb..01f1fb8 100644 --- a/src/contexts/budget/hooks/useExtendedBudgetUpdate.ts +++ b/src/contexts/budget/hooks/useExtendedBudgetUpdate.ts @@ -17,10 +17,11 @@ export const useExtendedBudgetUpdate = ( ) => { console.log('확장 예산 업데이트 시작:', type, amount, newCategoryBudgets); - // 카테고리 예산 입력 폼에서 호출된 경우, type이 없으면 monthly로 설정 - const budgetType = type || 'monthly'; + // 무조건 monthly로 설정 - 이게 핵심 수정 부분 + const budgetType = 'monthly'; - // 기본 예산 목표 업데이트 - 항상 월간 예산 우선 + // 이제 항상 월간 예산으로 업데이트 + console.log(`예산 업데이트: 타입을 '${budgetType}'로 강제 변환, 금액=${amount}`); handleBudgetUpdate(budgetType, amount); // 카테고리 예산 업데이트 (제공된 경우) diff --git a/src/hooks/budget/useBudgetTabContent.ts b/src/hooks/budget/useBudgetTabContent.ts index 70f2d2f..04580cd 100644 --- a/src/hooks/budget/useBudgetTabContent.ts +++ b/src/hooks/budget/useBudgetTabContent.ts @@ -110,12 +110,13 @@ export const useBudgetTabContent = ({ // 총액이 0이 아닐 때만 저장 처리 if (totalBudget > 0) { - // 명시적으로 월간 예산으로 설정 - 'monthly' 타입으로 전달 + // 명시적으로 월간 예산으로 설정 - 항상 월간 예산만 저장 onSaveBudget(totalBudget, updatedCategoryBudgets); setShowBudgetInput(false); // 이벤트 발생 추가 (데이터 저장 후 즉시 UI 업데이트를 위해) setTimeout(() => { + console.log('예산 데이터 저장 후 이벤트 발생'); window.dispatchEvent(new Event('budgetDataUpdated')); }, 200); } else {