Fix budget display and button

- Fix the budget display issue where monthly budgets were showing four amounts instead of one.
- Resolve the functionality of the "Edit Budget" button.
This commit is contained in:
gpt-engineer-app[bot]
2025-03-22 11:08:04 +00:00
parent e900fa77a1
commit ef239e6126
5 changed files with 64 additions and 39 deletions

View File

@@ -15,6 +15,8 @@ export const useExtendedBudgetUpdate = (
amount: number,
newCategoryBudgets?: Record<string, number>
) => {
console.log('확장 예산 업데이트 시작:', type, amount, newCategoryBudgets);
// 기본 예산 목표 업데이트
handleBudgetUpdate(type, amount);
@@ -22,7 +24,17 @@ export const useExtendedBudgetUpdate = (
if (newCategoryBudgets) {
console.log('카테고리 예산 업데이트:', newCategoryBudgets);
setCategoryBudgets(newCategoryBudgets);
// 카테고리 예산 업데이트 이벤트 발생
setTimeout(() => {
window.dispatchEvent(new Event('categoryBudgetsUpdated'));
}, 100);
}
// 모든 업데이트가 완료된 후 전역 예산 데이터 업데이트 이벤트 발생
setTimeout(() => {
window.dispatchEvent(new Event('budgetDataUpdated'));
}, 200);
};
return extendedBudgetUpdate;

View File

@@ -22,19 +22,23 @@ export const calculateUpdatedBudgetData = (
if (type === 'monthly') {
// 월간 예산이 직접 입력된 경우
monthlyAmount = amount;
// 월 30일 기준 (실제 사용 시 값 확인)
// 월 30일 기준
dailyAmount = Math.round(monthlyAmount / 30);
// 월 4.3주 기준 (실제 사용 시 값 확인)
// 월 4.3주 기준 (30일 / 7일)
weeklyAmount = Math.round(monthlyAmount / 4.3);
} else if (type === 'weekly') {
// 주간 예산이 직접 입력된 경우
weeklyAmount = amount;
monthlyAmount = Math.round(weeklyAmount * 4.3);
// 월 4.3주 기준 (30일 / 7일)
monthlyAmount = Math.round(weeklyAmount * 4.3);
// 주 7일 기준
dailyAmount = Math.round(weeklyAmount / 7);
} else { // 'daily'
// 일일 예산이 직접 입력된 경우
dailyAmount = amount;
// 주 7일 기준
weeklyAmount = Math.round(dailyAmount * 7);
// 월 30일 기준
monthlyAmount = Math.round(dailyAmount * 30);
}