Implement first-time user experience

- Implement default state for new users.
- Add a simple tutorial popup for first-time users.
This commit is contained in:
gpt-engineer-app[bot]
2025-03-15 22:47:32 +00:00
parent db6c8431ec
commit 44789fa388
3 changed files with 141 additions and 5 deletions

View File

@@ -6,7 +6,12 @@ import { DEFAULT_CATEGORY_BUDGETS, getInitialBudgetData } from './budgetUtils';
export const loadTransactionsFromStorage = (): Transaction[] => {
const storedTransactions = localStorage.getItem('transactions');
if (storedTransactions) {
return JSON.parse(storedTransactions);
try {
return JSON.parse(storedTransactions);
} catch (error) {
console.error('트랜잭션 데이터 파싱 오류:', error);
return [];
}
}
return [];
};
@@ -20,8 +25,16 @@ export const saveTransactionsToStorage = (transactions: Transaction[]): void =>
export const loadCategoryBudgetsFromStorage = (): Record<string, number> => {
const storedCategoryBudgets = localStorage.getItem('categoryBudgets');
if (storedCategoryBudgets) {
return JSON.parse(storedCategoryBudgets);
try {
return JSON.parse(storedCategoryBudgets);
} catch (error) {
console.error('카테고리 예산 데이터 파싱 오류:', error);
return DEFAULT_CATEGORY_BUDGETS;
}
}
// 새 사용자를 위한 기본 카테고리 예산 저장
saveCategoryBudgetsToStorage(DEFAULT_CATEGORY_BUDGETS);
return DEFAULT_CATEGORY_BUDGETS;
};
@@ -34,9 +47,20 @@ export const saveCategoryBudgetsToStorage = (categoryBudgets: Record<string, num
export const loadBudgetDataFromStorage = (): BudgetData => {
const storedBudgetData = localStorage.getItem('budgetData');
if (storedBudgetData) {
return JSON.parse(storedBudgetData);
try {
return JSON.parse(storedBudgetData);
} catch (error) {
console.error('예산 데이터 파싱 오류:', error);
const initialData = getInitialBudgetData();
saveBudgetDataToStorage(initialData);
return initialData;
}
}
return getInitialBudgetData();
// 새 사용자를 위한 기본 예산 데이터 저장
const initialData = getInitialBudgetData();
saveBudgetDataToStorage(initialData);
return initialData;
};
// 예산 데이터 저장