import {popSearch} from "./search"; import {initAppearance} from "../settings/appearance"; import {closePanel} from "../util/closePanel"; import {mountHelp, newDailyNote, newNotebook} from "../../util/mount"; import {repos} from "../../config/repos"; import {exitSiYuan, lockScreen, processSync} from "../../dialog/processSystem"; import {openHistory} from "../../history/history"; import {syncGuide} from "../../sync/syncGuide"; import {openCard} from "../../card/openCard"; import {activeBlur, hideKeyboardToolbar} from "../util/keyboardToolbar"; import {initAI} from "../settings/ai"; import {initRiffCard} from "../settings/riffCard"; import {login, showAccountInfo} from "../settings/account"; import {openModel} from "./model"; import {initAbout} from "../settings/about"; import {getRecentDocs} from "./getRecentDocs"; export const popMenu = () => { activeBlur(); hideKeyboardToolbar(); const menuElement = document.getElementById("menu"); if (menuElement.innerHTML !== "") { menuElement.style.right = "0"; return; } let accountHTML = ""; if (window.siyuan.user && !window.siyuan.config.readonly) { accountHTML = `
`; } else if (!window.siyuan.config.readonly) { accountHTML = ``; } menuElement.innerHTML = ` ${accountHTML} `; processSync(); // 只能用 click,否则无法上下滚动 https://github.com/siyuan-note/siyuan/issues/6628 menuElement.addEventListener("click", (event) => { let target = event.target as HTMLElement; while (target && !target.isEqualNode(menuElement)) { if (target.classList.contains("b3-menu__title")) { closePanel(); event.preventDefault(); event.stopPropagation(); break; } else if (target.id === "menuSearch") { popSearch(); event.preventDefault(); event.stopPropagation(); break; } else if (target.id === "menuRecent") { getRecentDocs(); event.preventDefault(); event.stopPropagation(); break; } else if (target.id === "menuAppearance") { initAppearance(); event.preventDefault(); event.stopPropagation(); break; } else if (target.id === "menuAI") { initAI(); event.preventDefault(); event.stopPropagation(); break; } else if (target.id === "menuRiffCard") { initRiffCard(); event.preventDefault(); event.stopPropagation(); break; } else if (target.id === "menuSafeQuit") { exitSiYuan(); event.preventDefault(); event.stopPropagation(); break; } else if (target.id === "menuAbout") { initAbout(); event.preventDefault(); event.stopPropagation(); break; } else if (target.id === "menuNewDaily") { newDailyNote(); closePanel(); event.preventDefault(); event.stopPropagation(); break; } else if (target.id === "menuCard") { openCard(); closePanel(); event.preventDefault(); event.stopPropagation(); break; } else if (target.id === "menuNewNotebook") { newNotebook(); closePanel(); event.preventDefault(); event.stopPropagation(); break; } else if (target.id === "menuHelp") { mountHelp(); event.preventDefault(); event.stopPropagation(); break; } else if (target.id === "menuLock") { lockScreen(); event.preventDefault(); event.stopPropagation(); break; } else if (target.id === "menuSync") { openModel({ title: window.siyuan.languages.cloud, icon: "iconCloud", html: repos.genHTML(), bindEvent(modelMainElement: HTMLElement) { repos.element = modelMainElement; repos.bindEvent(); } }); event.preventDefault(); event.stopPropagation(); break; } else if (target.id === "menuSyncNow") { syncGuide(); event.preventDefault(); event.stopPropagation(); break; } else if (target.id === "menuHistory" && !window.siyuan.config.readonly) { openHistory(); closePanel(); event.preventDefault(); event.stopPropagation(); break; } else if (target.id === "menuAccount") { event.preventDefault(); event.stopPropagation(); if (document.querySelector("#menuAccount img")) { showAccountInfo(); return; } login(); break; } target = target.parentElement; } }); menuElement.style.right = "0"; };