diff --git a/src/contexts/budget/storageUtils.ts b/src/contexts/budget/storageUtils.ts index 4fea6aa..92f1f56 100644 --- a/src/contexts/budget/storageUtils.ts +++ b/src/contexts/budget/storageUtils.ts @@ -24,6 +24,8 @@ export const saveTransactionsToStorage = (transactions: Transaction[]): void => // 모든 트랜잭션 삭제 export const clearAllTransactions = (): void => { localStorage.removeItem('transactions'); + // 빈 배열을 저장하여 확실히 초기화 + localStorage.setItem('transactions', JSON.stringify([])); }; // 카테고리 예산 불러오기 @@ -90,8 +92,21 @@ export const clearAllBudgetData = (): void => { // 모든 데이터 초기화 (첫 로그인 상태) export const resetAllData = (): void => { + // 모든 관련 데이터 키 목록 + const dataKeys = [ + 'transactions', + 'categoryBudgets', + 'budgetData', + 'budget', + 'hasVisitedBefore' + ]; + + // 모든 관련 데이터 키 삭제 + dataKeys.forEach(key => localStorage.removeItem(key)); + + // 기본 데이터로 초기화 clearAllTransactions(); clearAllCategoryBudgets(); clearAllBudgetData(); - localStorage.removeItem('hasVisitedBefore'); }; + diff --git a/src/pages/Index.tsx b/src/pages/Index.tsx index 26decc9..776d8d5 100644 --- a/src/pages/Index.tsx +++ b/src/pages/Index.tsx @@ -27,21 +27,19 @@ const Index = () => { const { user } = useAuth(); const [showWelcome, setShowWelcome] = useState(false); - // 첫 방문 여부 확인 및 데이터 초기화 + // 화면이 처음 로드될 때 데이터 초기화 useEffect(() => { - const hasVisitedBefore = localStorage.getItem('hasVisitedBefore'); - const dontShowWelcome = localStorage.getItem('dontShowWelcome') === 'true'; + // 데이터를 완전히 초기화 + resetAllData(); - if (!hasVisitedBefore) { - // 첫 로그인으로 가정하고 모든 데이터 초기화 - resetAllData(); - setShowWelcome(true); - // 방문 기록 저장 - localStorage.setItem('hasVisitedBefore', 'true'); - } else if (!dontShowWelcome) { - // '더 이상 보지 않기'를 선택하지 않았다면 계속 환영 팝업 표시 + // 환영 다이얼로그 표시 여부 결정 + const dontShowWelcome = localStorage.getItem('dontShowWelcome') === 'true'; + if (!dontShowWelcome) { setShowWelcome(true); } + + // 방문 기록 저장 (초기화 후에 저장) + localStorage.setItem('hasVisitedBefore', 'true'); }, []); // 환영 팝업 닫기