mirror of
https://github.com/remotely-save/remotely-save.git
synced 2024-06-07 21:10:45 +00:00
Fix: Save on sync issue (#486)
* Fix: Save on sync issue * Fix: Add delay before run sync on save
This commit is contained in:
parent
a6002ba340
commit
d820285d1e
40
src/main.ts
40
src/main.ts
|
@ -1076,6 +1076,19 @@ export default class RemotelySavePlugin extends Plugin {
|
|||
this.settings.syncOnSaveAfterMilliseconds > 0
|
||||
) {
|
||||
let runScheduled = false;
|
||||
let needToRunAgain = false;
|
||||
|
||||
const SheduleSaveOnSync = (scheduleTimeFromNow: number) => {
|
||||
log.info(
|
||||
`schedule a run for ${scheduleTimeFromNow} milliseconds later`,
|
||||
);
|
||||
runScheduled = true;
|
||||
setTimeout(() => {
|
||||
this.syncRun("auto_sync_on_save");
|
||||
runScheduled = false;
|
||||
}, scheduleTimeFromNow);
|
||||
};
|
||||
|
||||
this.app.workspace.onLayoutReady(() => {
|
||||
const intervalID = window.setInterval(() => {
|
||||
const currentFile = this.app.workspace.getActiveFile();
|
||||
|
@ -1086,29 +1099,24 @@ export default class RemotelySavePlugin extends Plugin {
|
|||
// then schedule a run for syncOnSaveAfterMilliseconds after it was modified
|
||||
const lastModified = currentFile.stat.mtime;
|
||||
const currentTime = Date.now();
|
||||
// log.debug(
|
||||
// `Checking if file was modified within last ${
|
||||
// this.settings.syncOnSaveAfterMilliseconds / 1000
|
||||
// } seconds, last modified: ${
|
||||
// (currentTime - lastModified) / 1000
|
||||
// } seconds ago`
|
||||
// );
|
||||
if (
|
||||
currentTime - lastModified <
|
||||
this.settings!.syncOnSaveAfterMilliseconds!
|
||||
) {
|
||||
if (!runScheduled) {
|
||||
if (
|
||||
!needToRunAgain &&
|
||||
!runScheduled &&
|
||||
this.syncStatus === "idle"
|
||||
) {
|
||||
const scheduleTimeFromNow =
|
||||
this.settings!.syncOnSaveAfterMilliseconds! -
|
||||
(currentTime - lastModified);
|
||||
log.info(
|
||||
`schedule a run for ${scheduleTimeFromNow} milliseconds later`
|
||||
);
|
||||
runScheduled = true;
|
||||
setTimeout(() => {
|
||||
this.syncRun("auto_sync_on_save");
|
||||
runScheduled = false;
|
||||
}, scheduleTimeFromNow);
|
||||
SheduleSaveOnSync(scheduleTimeFromNow);
|
||||
} else if (needToRunAgain && !runScheduled && this.syncStatus === "idle") {
|
||||
SheduleSaveOnSync(this.settings!.syncOnSaveAfterMilliseconds!);
|
||||
needToRunAgain = false;
|
||||
} else {
|
||||
needToRunAgain = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user