basyura's blog

あしたになったらほんきだす。

Inkdrop - フォーカスを戻した時に sync する

日々使っている端末はいいのだけど、たまに使う端末で同期がされてなくてコンフリクトすることがある。フォーカスが当たった時に、フォーカスが外れてから五分立ってたら強制的に同期する init.js。

let lastBlurTime_ = new Date();
inkdrop.window.on("blur", () => (lastBlurTime_ = new Date()));
inkdrop.window.on("focus", () => {
  const diff = new Date() - lastBlurTime_;
  if (diff > 1000 * 60 * 5) {
    const { cm } = inkdrop.getActiveEditor();
    showConfirm(cm, "sync ...");
    const { ipcRenderer } = require("electron");
    ipcRenderer.send("command", "application:sync-db", {});
  }
});

// メッセージ表示 (Vim Plugin から拝借)
function showConfirm(cm, text) {
  if (cm.openNotification) {
    cm.openNotification('<span style="color: red">' + text + "</span>", {
      bottom: true,
      duration: 5000,
    });
  } else {
    alert(text);
  }
}

また一つ便利になった。