// 동기화 관련 설정 관리 /** * 동기화 활성화 여부 확인 */ export const isSyncEnabled = (): boolean => { 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() ? '활성화' : '비활성화'); }; /** * 마지막 동기화 시간 가져오기 */ export const getLastSyncTime = (): string | null => { return localStorage.getItem('lastSync'); }; /** * 마지막 동기화 시간 설정 */ export const setLastSyncTime = (timestamp: string): void => { console.log('마지막 동기화 시간 업데이트:', timestamp); localStorage.setItem('lastSync', timestamp); // 이벤트 발생 - 커스텀 이벤트로 변경하여 디버깅 용이하게 try { const event = new CustomEvent('syncTimeUpdated', { detail: { time: timestamp, source: 'setLastSyncTime' } }); window.dispatchEvent(event); console.log('syncTimeUpdated 이벤트 발생 완료 (setLastSyncTime에서 호출)'); // 스토리지 이벤트도 함께 발생시켜 다중 환경에서도 동작하도록 함 window.dispatchEvent(new StorageEvent('storage', { key: 'lastSync', newValue: timestamp })); } catch (error) { console.error('동기화 시간 이벤트 발생 오류:', error); } }; // syncUtils.ts에서 사용하던 함수들 // 수정: 하위 경로에서 가져오는 대신 직접 가져오기 import { trySyncAllData } from './sync/data'; export { trySyncAllData }; export type { SyncResult } from './sync/data';