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);