Refactor: Split useTransactions hook

Splits the `useTransactions` hook into smaller, more manageable files for improved code organization and maintainability. No functional changes are included.
This commit is contained in:
gpt-engineer-app[bot]
2025-03-15 10:22:51 +00:00
parent 8e1f2de87e
commit 477e1ccbc0
5 changed files with 264 additions and 151 deletions

66
src/utils/storageUtils.ts Normal file
View File

@@ -0,0 +1,66 @@
import { Transaction } from '@/components/TransactionCard';
// 트랜잭션 데이터 불러오기
export const loadTransactionsFromStorage = (): Transaction[] => {
const localData = localStorage.getItem('transactions');
if (localData) {
return JSON.parse(localData) as Transaction[];
}
return [];
};
// 기본 샘플 데이터 생성
export const createSampleTransactions = (selectedMonth: string): Transaction[] => {
return [{
id: '1',
title: '식료품 구매',
amount: 25000,
date: `${selectedMonth} 25일, 12:30 PM`,
category: '식비',
type: 'expense'
}, {
id: '2',
title: '주유소',
amount: 50000,
date: `${selectedMonth} 24일, 3:45 PM`,
category: '교통비',
type: 'expense'
}, {
id: '4',
title: '생필품 구매',
amount: 35000,
date: `${selectedMonth} 18일, 6:00 AM`,
category: '생활비',
type: 'expense'
}, {
id: '5',
title: '월세',
amount: 650000,
date: `${selectedMonth} 15일, 10:00 AM`,
category: '생활비',
type: 'expense'
}, {
id: '6',
title: '식당',
amount: 15500,
date: `${selectedMonth} 12일, 2:15 PM`,
category: '식비',
type: 'expense'
}];
};
// 트랜잭션 데이터 저장하기
export const saveTransactionsToStorage = (transactions: Transaction[]): void => {
localStorage.setItem('transactions', JSON.stringify(transactions));
};
// 예산 불러오기
export const loadBudgetFromStorage = (): number => {
const budgetData = localStorage.getItem('budget');
if (budgetData) {
const parsedBudget = JSON.parse(budgetData);
return parsedBudget.total || 1000000;
}
return 1000000; // 기본 예산
};