Review and refine sync logic

This commit reviews and refines the synchronization logic to ensure proper functionality and data integrity.
This commit is contained in:
gpt-engineer-app[bot]
2025-03-21 11:24:40 +00:00
parent e55dfac3a9
commit 8e6eb9d8aa
15 changed files with 567 additions and 357 deletions

View File

@@ -1,28 +1,43 @@
/**
* 동기화 기능 활성화 여부를 localStorage에 저장
* @param enabled 활성화 여부
* 동기화 설정 관리
*/
export const setSyncEnabled = (enabled: boolean): void => {
localStorage.setItem('syncEnabled', enabled ? 'true' : 'false');
// 이벤트 발생하여 다른 컴포넌트에 변경 알림
window.dispatchEvent(new Event('syncEnabledChanged'));
};
/**
* 동기화 기능이 현재 활성화되어 있는지 확인
* @returns 활성화 여부
*/
// 동기화 활성화 여부 확인
export const isSyncEnabled = (): boolean => {
return localStorage.getItem('syncEnabled') === 'true';
};
/**
* 동기화 설정 초기화
*/
export const initSyncSettings = (): void => {
// 동기화 기능이 설정되지 않은 경우 기본값으로 설정
if (localStorage.getItem('syncEnabled') === null) {
localStorage.setItem('syncEnabled', 'false');
try {
const value = localStorage.getItem('syncEnabled');
return value === 'true';
} catch (error) {
console.error('동기화 설정 조회 오류:', error);
return false;
}
};
// 동기화 설정 변경
export const setSyncEnabled = (enabled: boolean): void => {
try {
localStorage.setItem('syncEnabled', enabled ? 'true' : 'false');
// 상태 변경 이벤트 발생
window.dispatchEvent(new Event('syncSettingChanged'));
window.dispatchEvent(new StorageEvent('storage', {
key: 'syncEnabled',
newValue: enabled ? 'true' : 'false'
}));
console.log('동기화 설정이 변경되었습니다:', enabled ? '활성화' : '비활성화');
} catch (error) {
console.error('동기화 설정 변경 오류:', error);
}
};
// 동기화 설정 초기화
export const initSyncSettings = (): void => {
// 이미 설정이 있으면 초기화하지 않음
if (localStorage.getItem('syncEnabled') === null) {
setSyncEnabled(false); // 기본값: 비활성화
}
console.log('동기화 설정 초기화 완료, 현재 상태:', isSyncEnabled() ? '활성화' : '비활성화');
};