Refactor BudgetContext file

Refactor BudgetContext.tsx into smaller components and hooks to improve code readability and maintainability.
This commit is contained in:
gpt-engineer-app[bot]
2025-03-15 11:08:35 +00:00
parent 6e02282383
commit 8c403f9761
7 changed files with 404 additions and 323 deletions

View File

@@ -0,0 +1,45 @@
import { BudgetData, Transaction } from './types';
import { DEFAULT_CATEGORY_BUDGETS, getInitialBudgetData } from './budgetUtils';
// 로컬 스토리지에서 트랜잭션 불러오기
export const loadTransactionsFromStorage = (): Transaction[] => {
const storedTransactions = localStorage.getItem('transactions');
if (storedTransactions) {
return JSON.parse(storedTransactions);
}
return [];
};
// 트랜잭션 저장
export const saveTransactionsToStorage = (transactions: Transaction[]): void => {
localStorage.setItem('transactions', JSON.stringify(transactions));
};
// 카테고리 예산 불러오기
export const loadCategoryBudgetsFromStorage = (): Record<string, number> => {
const storedCategoryBudgets = localStorage.getItem('categoryBudgets');
if (storedCategoryBudgets) {
return JSON.parse(storedCategoryBudgets);
}
return DEFAULT_CATEGORY_BUDGETS;
};
// 카테고리 예산 저장
export const saveCategoryBudgetsToStorage = (categoryBudgets: Record<string, number>): void => {
localStorage.setItem('categoryBudgets', JSON.stringify(categoryBudgets));
};
// 예산 데이터 불러오기
export const loadBudgetDataFromStorage = (): BudgetData => {
const storedBudgetData = localStorage.getItem('budgetData');
if (storedBudgetData) {
return JSON.parse(storedBudgetData);
}
return getInitialBudgetData();
};
// 예산 데이터 저장
export const saveBudgetDataToStorage = (budgetData: BudgetData): void => {
localStorage.setItem('budgetData', JSON.stringify(budgetData));
};