Investigate data reset issue
Investigate why data is not fully reset when sync is enabled.
This commit is contained in:
@@ -27,18 +27,29 @@ export const useDataReset = () => {
|
||||
const syncWasEnabled = isSyncEnabled();
|
||||
console.log('데이터 초기화 전 동기화 상태:', syncWasEnabled ? '활성화' : '비활성화');
|
||||
|
||||
// 클라우드 데이터 초기화 먼저 시도 (로그인 상태인 경우)
|
||||
// 중요: 클라우드 데이터 초기화 먼저 시도 (로그인 상태인 경우)
|
||||
let cloudResetSuccess = false;
|
||||
if (user) {
|
||||
console.log('로그인 상태: 클라우드 데이터 초기화 시도');
|
||||
cloudResetSuccess = await clearCloudData(user.id);
|
||||
setIsCloudResetSuccess(cloudResetSuccess);
|
||||
|
||||
if (cloudResetSuccess) {
|
||||
console.log('클라우드 데이터 초기화 성공');
|
||||
} else {
|
||||
console.warn('클라우드 데이터 초기화 실패 또는 부분 성공');
|
||||
// 여러 번 시도하여 클라우드 데이터 초기화 확실히 하기
|
||||
for (let attempt = 1; attempt <= 3; attempt++) {
|
||||
console.log(`클라우드 데이터 초기화 시도 ${attempt}/3`);
|
||||
cloudResetSuccess = await clearCloudData(user.id);
|
||||
|
||||
if (cloudResetSuccess) {
|
||||
console.log('클라우드 데이터 초기화 성공');
|
||||
break;
|
||||
} else {
|
||||
console.warn(`클라우드 데이터 초기화 시도 ${attempt} 실패`);
|
||||
// 잠시 대기 후 재시도
|
||||
if (attempt < 3) {
|
||||
await new Promise(resolve => setTimeout(resolve, 500));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
setIsCloudResetSuccess(cloudResetSuccess);
|
||||
} else {
|
||||
console.log('로그인하지 않음: 클라우드 초기화 건너뜀');
|
||||
setIsCloudResetSuccess(null);
|
||||
@@ -87,13 +98,17 @@ export const useDataReset = () => {
|
||||
}
|
||||
});
|
||||
|
||||
// 중요: 동기화 설정은 초기화 후 항상 비활성화
|
||||
// 중요: 동기화 설정은 초기화 후 강제로 비활성화
|
||||
setSyncEnabled(false);
|
||||
console.log('동기화 설정이 비활성화되었습니다.');
|
||||
|
||||
// 마지막 동기화 시간은 초기화
|
||||
localStorage.removeItem('lastSync');
|
||||
|
||||
// 삭제 플래그 초기화 (강제로 삭제 목록 초기화)
|
||||
localStorage.removeItem('deletedTransactions');
|
||||
localStorage.removeItem('modifiedBudgets');
|
||||
|
||||
// 스토리지 이벤트 트리거하여 다른 컴포넌트에 변경 알림
|
||||
window.dispatchEvent(new Event('transactionUpdated'));
|
||||
window.dispatchEvent(new Event('budgetDataUpdated'));
|
||||
|
||||
Reference in New Issue
Block a user