import {needSubscribe} from "../util/needSubscribe";
import {showMessage} from "../dialog/message";
import {fetchPost} from "../util/fetch";
import {Dialog} from "../dialog";
import {confirmDialog} from "../dialog/confirmDialog";
import {isMobile} from "../util/functions";
import {account} from "../config/account";
import {processSync} from "../dialog/processSystem";
export const addCloudName = (cloudPanelElement: Element) => {
const dialog = new Dialog({
title: window.siyuan.languages.cloudSyncDir,
content: `
`,
width: isMobile() ? "80vw" : "520px",
});
const btnsElement = manualDialog.element.querySelectorAll(".b3-button");
btnsElement[0].addEventListener("click", () => {
manualDialog.destroy();
});
btnsElement[1].addEventListener("click", () => {
const uploadElement = manualDialog.element.querySelector("input[name=upload]:checked") as HTMLInputElement
if (!uploadElement) {
showMessage(window.siyuan.languages.plsChoose)
return
}
fetchPost("/api/sync/performSync", {upload: uploadElement.value === "true"});
manualDialog.destroy();
});
};
const setSync = (key?: string, dialog?: Dialog) => {
if (key) {
window.siyuan.config.repo.key = key;
}
if (!window.siyuan.config.sync.enabled) {
const listHTML = `
${window.siyuan.languages.syncConfGuide3}
`;
if (dialog) {
dialog.element.querySelector(".b3-dialog__header").innerHTML = window.siyuan.languages.cloudSyncDir;
dialog.element.querySelector(".b3-dialog__container").lastElementChild.innerHTML = listHTML;
} else {
dialog = new Dialog({
title: window.siyuan.languages.cloudSyncDir,
content: listHTML,
width: isMobile() ? "80vw" : "520px",
});
}
const contentElement = dialog.element.querySelector(".b3-dialog__content").lastElementChild;
bindSyncCloudListEvent(contentElement);
const btnElement = dialog.element.querySelector(".b3-button");
getSyncCloudList(contentElement, false, () => {
if (contentElement.querySelector("input[checked]")) {
btnElement.removeAttribute("disabled");
} else {
btnElement.setAttribute("disabled", "disabled");
}
});
btnElement.addEventListener("click", () => {
dialog.destroy();
fetchPost("/api/sync/setSyncEnable", {enabled: true}, () => {
window.siyuan.config.sync.enabled = true;
processSync();
confirmDialog(window.siyuan.languages.syncConfGuide4, window.siyuan.languages.syncConfGuide5, () => {
fetchPost("/api/sync/performSync", {});
});
});
});
} else {
if (dialog) {
dialog.destroy();
}
confirmDialog(window.siyuan.languages.syncConfGuide4, window.siyuan.languages.syncConfGuide5, () => {
fetchPost("/api/sync/performSync", {});
});
}
};
const setKey = () => {
const dialog = new Dialog({
title: window.siyuan.languages.syncConfGuide1,
content: `
${window.siyuan.languages.syncConfGuide2}
`,
width: isMobile() ? "80vw" : "520px",
});
dialog.element.querySelector(".b3-button--cancel").addEventListener("click", () => {
dialog.destroy();
});
const inputElement = dialog.element.querySelector(".b3-text-field") as HTMLInputElement;
dialog.element.querySelector("#initKeyByPW").addEventListener("click", () => {
if (!inputElement.value) {
showMessage(window.siyuan.languages._kernel[142]);
return;
}
confirmDialog("🔑 " + window.siyuan.languages.genKeyByPW, window.siyuan.languages.initRepoKeyTip, () => {
fetchPost("/api/repo/initRepoKeyFromPassphrase", {pass: inputElement.value}, (response) => {
setSync(response.data.key, dialog);
});
});
});
inputElement.focus();
};