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:
@@ -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() ? '활성화' : '비활성화');
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user