Fix: don't schedule a sync on db changed if not connected
This commit is contained in:
parent
cb8fc0e75b
commit
5a2cb918d7
|
@ -61,10 +61,12 @@ const sync = (() => {
|
||||||
start,
|
start,
|
||||||
stop,
|
stop,
|
||||||
put: (...args) => {
|
put: (...args) => {
|
||||||
|
if (!currentDrive) return;
|
||||||
schedule();
|
schedule();
|
||||||
return ctrl.put(...args);
|
return ctrl.put(...args);
|
||||||
},
|
},
|
||||||
delete: (...args) => {
|
delete: (...args) => {
|
||||||
|
if (!currentDrive) return;
|
||||||
schedule();
|
schedule();
|
||||||
return ctrl.delete(...args);
|
return ctrl.delete(...args);
|
||||||
},
|
},
|
||||||
|
@ -84,9 +86,9 @@ const sync = (() => {
|
||||||
emitStatusChange();
|
emitStatusChange();
|
||||||
}
|
}
|
||||||
|
|
||||||
function schedule() {
|
function schedule(delay = SYNC_DELAY) {
|
||||||
chrome.alarms.create('syncNow', {
|
chrome.alarms.create('syncNow', {
|
||||||
delayInMinutes: SYNC_DELAY,
|
delayInMinutes: delay,
|
||||||
periodInMinutes: SYNC_INTERVAL
|
periodInMinutes: SYNC_INTERVAL
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -113,6 +115,9 @@ const sync = (() => {
|
||||||
}
|
}
|
||||||
|
|
||||||
function syncNow() {
|
function syncNow() {
|
||||||
|
if (!currentDrive) {
|
||||||
|
return Promise.reject(new Error('cannot sync when disconnected'));
|
||||||
|
}
|
||||||
return withFinally(
|
return withFinally(
|
||||||
(ctrl.isInit() ? ctrl.syncNow() : ctrl.start())
|
(ctrl.isInit() ? ctrl.syncNow() : ctrl.start())
|
||||||
.catch(handle401Error),
|
.catch(handle401Error),
|
||||||
|
@ -164,7 +169,7 @@ const sync = (() => {
|
||||||
return stop();
|
return stop();
|
||||||
}
|
}
|
||||||
prefs.set('sync.enabled', name);
|
prefs.set('sync.enabled', name);
|
||||||
chrome.alarms.create('syncNow', {periodInMinutes: SYNC_INTERVAL});
|
schedule(SYNC_INTERVAL);
|
||||||
status.state = 'connected';
|
status.state = 'connected';
|
||||||
emitStatusChange();
|
emitStatusChange();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user