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
|
this.settings.syncOnSaveAfterMilliseconds > 0
|
||||||
) {
|
) {
|
||||||
let runScheduled = false;
|
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(() => {
|
this.app.workspace.onLayoutReady(() => {
|
||||||
const intervalID = window.setInterval(() => {
|
const intervalID = window.setInterval(() => {
|
||||||
const currentFile = this.app.workspace.getActiveFile();
|
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
|
// then schedule a run for syncOnSaveAfterMilliseconds after it was modified
|
||||||
const lastModified = currentFile.stat.mtime;
|
const lastModified = currentFile.stat.mtime;
|
||||||
const currentTime = Date.now();
|
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 (
|
if (
|
||||||
currentTime - lastModified <
|
currentTime - lastModified <
|
||||||
this.settings!.syncOnSaveAfterMilliseconds!
|
this.settings!.syncOnSaveAfterMilliseconds!
|
||||||
) {
|
) {
|
||||||
if (!runScheduled) {
|
if (
|
||||||
|
!needToRunAgain &&
|
||||||
|
!runScheduled &&
|
||||||
|
this.syncStatus === "idle"
|
||||||
|
) {
|
||||||
const scheduleTimeFromNow =
|
const scheduleTimeFromNow =
|
||||||
this.settings!.syncOnSaveAfterMilliseconds! -
|
this.settings!.syncOnSaveAfterMilliseconds! -
|
||||||
(currentTime - lastModified);
|
(currentTime - lastModified);
|
||||||
log.info(
|
SheduleSaveOnSync(scheduleTimeFromNow);
|
||||||
`schedule a run for ${scheduleTimeFromNow} milliseconds later`
|
} else if (needToRunAgain && !runScheduled && this.syncStatus === "idle") {
|
||||||
);
|
SheduleSaveOnSync(this.settings!.syncOnSaveAfterMilliseconds!);
|
||||||
runScheduled = true;
|
needToRunAgain = false;
|
||||||
setTimeout(() => {
|
} else {
|
||||||
this.syncRun("auto_sync_on_save");
|
needToRunAgain = true;
|
||||||
runScheduled = false;
|
|
||||||
}, scheduleTimeFromNow);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user