diff --git a/app/src/mobile/util/menu.ts b/app/src/mobile/util/menu.ts index d0d761600..1e8ddaaea 100644 --- a/app/src/mobile/util/menu.ts +++ b/app/src/mobile/util/menu.ts @@ -209,12 +209,16 @@ ${accountHTML} ${window.siyuan.languages.dataRepoKey}
+ +
-
@@ -323,6 +327,42 @@ ${accountHTML} }); }); }); + modelMainElement.querySelector("#initKeyByPW").addEventListener("click", () => { + const initDialog = new Dialog({ + title: "🔑 " + window.siyuan.languages.genKeyByPW, + content: `
+ +
+
+
+ +
`, + width: "520px", + }); + const inputElement = initDialog.element.querySelector(".b3-text-field") as HTMLInputElement; + inputElement.focus(); + const btnsElement = initDialog.element.querySelectorAll(".b3-button"); + initDialog.bindInput(inputElement, () => { + (btnsElement[1] as HTMLButtonElement).click(); + }); + btnsElement[0].addEventListener("click", () => { + initDialog.destroy(); + }); + btnsElement[1].addEventListener("click", () => { + if (!inputElement.value) { + showMessage(window.siyuan.languages._kernel[142]); + return; + } + confirmDialog("🔑 " + window.siyuan.languages.genKeyByPW, window.siyuan.languages.initRepoKeyTip, () => { + initDialog.destroy(); + fetchPost("/api/repo/InitRepoKeyFromPassphrase", {pass: inputElement.value}, (response) => { + window.siyuan.config.repo.key = response.data.key; + importKeyElement.parentElement.classList.add("fn__none"); + importKeyElement.parentElement.nextElementSibling.classList.remove("fn__none"); + }); + }); + }); + }); modelMainElement.querySelector("#copyKey").addEventListener("click", () => { showMessage(window.siyuan.languages.copied); writeText(window.siyuan.config.repo.key);