Enforce monthly budget updates
The budget update logic was modified to ensure that all budget updates are applied to the monthly budget, regardless of the selected tab. This resolves inconsistencies in budget calculations and data storage.
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
|
||||
import React, { useState, useEffect } from 'react';
|
||||
import { Tabs, TabsContent, TabsList, TabsTrigger } from '@/components/ui/tabs';
|
||||
import { Input } from '@/components/ui/input';
|
||||
@@ -21,7 +22,7 @@ const BudgetInputCard: React.FC<BudgetGoalProps> = ({
|
||||
onSave,
|
||||
highlight = false
|
||||
}) => {
|
||||
const [selectedTab, setSelectedTab] = useState<'daily' | 'weekly' | 'monthly'>('daily');
|
||||
const [selectedTab, setSelectedTab] = useState<'daily' | 'weekly' | 'monthly'>('monthly');
|
||||
const [budgetInputs, setBudgetInputs] = useState({
|
||||
daily: initialBudgets.daily > 0 ? initialBudgets.daily.toString() : '',
|
||||
weekly: initialBudgets.weekly > 0 ? initialBudgets.weekly.toString() : '',
|
||||
@@ -38,6 +39,7 @@ const BudgetInputCard: React.FC<BudgetGoalProps> = ({
|
||||
|
||||
// 초기값 변경시 입력 필드 값 업데이트
|
||||
useEffect(() => {
|
||||
console.log("BudgetInputCard - 초기 예산값 업데이트:", initialBudgets);
|
||||
setBudgetInputs({
|
||||
daily: initialBudgets.daily > 0 ? initialBudgets.daily.toString() : '',
|
||||
weekly: initialBudgets.weekly > 0 ? initialBudgets.weekly.toString() : '',
|
||||
@@ -69,16 +71,15 @@ const BudgetInputCard: React.FC<BudgetGoalProps> = ({
|
||||
// 즉시 콜랩시블을 닫아 사용자에게 완료 피드백 제공
|
||||
setIsOpen(false);
|
||||
|
||||
// 월간 예산 변경 시 수정 추적 시스템에 기록
|
||||
if (selectedTab === 'monthly') {
|
||||
try {
|
||||
markBudgetAsModified(amount);
|
||||
console.log(`[예산 추적] 월간 예산 변경 추적: ${amount}원`);
|
||||
} catch (error) {
|
||||
console.error('[예산 추적] 예산 변경 추적 실패:', error);
|
||||
}
|
||||
// 예산 변경 시 수정 추적 시스템에 기록
|
||||
try {
|
||||
markBudgetAsModified(amount);
|
||||
console.log(`[예산 추적] ${selectedTab} 예산 변경 추적: ${amount}원`);
|
||||
} catch (error) {
|
||||
console.error('[예산 추적] 예산 변경 추적 실패:', error);
|
||||
}
|
||||
|
||||
console.log(`BudgetInputCard - 저장 버튼 클릭: ${selectedTab} 예산 = ${amount}원`);
|
||||
// 예산 저장
|
||||
onSave(selectedTab, amount);
|
||||
};
|
||||
@@ -114,7 +115,7 @@ const BudgetInputCard: React.FC<BudgetGoalProps> = ({
|
||||
</CollapsibleTrigger>
|
||||
|
||||
<CollapsibleContent className="px-4 pb-4">
|
||||
<Tabs defaultValue="daily" value={selectedTab} onValueChange={value => setSelectedTab(value as 'daily' | 'weekly' | 'monthly')} className="w-full">
|
||||
<Tabs defaultValue="monthly" value={selectedTab} onValueChange={value => setSelectedTab(value as 'daily' | 'weekly' | 'monthly')} className="w-full">
|
||||
<TabsList className="grid grid-cols-3 mb-4 bg-transparent">
|
||||
<TabsTrigger value="daily" className="data-[state=active]:shadow-neuro-pressed data-[state=active]:bg-transparent">일일 예산</TabsTrigger>
|
||||
<TabsTrigger value="weekly" className="data-[state=active]:shadow-neuro-pressed data-[state=active]:bg-transparent">주간 예산</TabsTrigger>
|
||||
|
||||
@@ -37,6 +37,9 @@ const BudgetProgressCard: React.FC<BudgetProgressCardProps> = ({
|
||||
// 컴포넌트 마운트 및 budgetData 변경 시 업데이트
|
||||
useEffect(() => {
|
||||
console.log("BudgetProgressCard 데이터 업데이트 - 예산 데이터:", budgetData);
|
||||
console.log("월간 예산:", budgetData.monthly.targetAmount);
|
||||
console.log("주간 예산:", budgetData.weekly.targetAmount);
|
||||
console.log("일일 예산:", budgetData.daily.targetAmount);
|
||||
setLocalBudgetData(budgetData);
|
||||
|
||||
// 지연 작업으로 이벤트 발생 (컴포넌트 마운트 후 데이터 갱신)
|
||||
@@ -113,7 +116,7 @@ const BudgetProgressCard: React.FC<BudgetProgressCardProps> = ({
|
||||
data={budgetData.daily}
|
||||
formatCurrency={formatCurrency}
|
||||
calculatePercentage={calculatePercentage}
|
||||
onSaveBudget={(amount, categoryBudgets) => onSaveBudget('monthly', amount, categoryBudgets)}
|
||||
onSaveBudget={(amount, categoryBudgets) => onSaveBudget('daily', amount, categoryBudgets)}
|
||||
/>
|
||||
</TabsContent>
|
||||
|
||||
@@ -122,7 +125,7 @@ const BudgetProgressCard: React.FC<BudgetProgressCardProps> = ({
|
||||
data={budgetData.weekly}
|
||||
formatCurrency={formatCurrency}
|
||||
calculatePercentage={calculatePercentage}
|
||||
onSaveBudget={(amount, categoryBudgets) => onSaveBudget('monthly', amount, categoryBudgets)}
|
||||
onSaveBudget={(amount, categoryBudgets) => onSaveBudget('weekly', amount, categoryBudgets)}
|
||||
/>
|
||||
</TabsContent>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user