diff --git a/app/src/mobile/index.ts b/app/src/mobile/index.ts index 3aff5636a..74eec8995 100644 --- a/app/src/mobile/index.ts +++ b/app/src/mobile/index.ts @@ -25,6 +25,7 @@ import {afterLoadPlugin, loadPlugins} from "../plugin/loader"; import {saveScroll} from "../protyle/scroll/saveScroll"; import {removeBlock} from "../protyle/wysiwyg/remove"; import {isNotEditBlock} from "../protyle/wysiwyg/getBlock"; +import {Menu} from "../plugin/Menu"; class App { public plugins: import("../plugin").Plugin[] = []; @@ -98,9 +99,29 @@ class App { initFramework(this); initRightMenu(this); openChangelog(); + const unPinsMenu: IMenu[] = []; this.plugins.forEach(item => { - afterLoadPlugin(item); + const unPinMenu = afterLoadPlugin(item); + if (unPinMenu) { + unPinMenu.forEach(unpinItem => { + unPinsMenu.push(unpinItem); + }) + } }); + if (unPinsMenu.length > 0) { + const pluginElement = document.createElement("div"); + pluginElement.classList.add("b3-menu__item"); + pluginElement.setAttribute("data-menu", "true"); + pluginElement.innerHTML = `${window.siyuan.languages.plugin}`; + pluginElement.addEventListener("click", () => { + const menu = new Menu(); + unPinsMenu.forEach(item => { + menu.addItem(item); + }); + menu.fullscreen(); + }); + document.querySelector("#menuAbout").after(pluginElement); + } }); }); }); diff --git a/app/src/plugin/loader.ts b/app/src/plugin/loader.ts index 769090c63..ca500ac49 100644 --- a/app/src/plugin/loader.ts +++ b/app/src/plugin/loader.ts @@ -150,11 +150,11 @@ export const afterLoadPlugin = (plugin: Plugin) => { } if (!isWindow() || isMobile()) { - const pluginMenu: IMenu[] = []; + const unPinMenu: IMenu[] = []; plugin.topBarIcons.forEach(element => { if (isMobile()) { if (window.siyuan.storage[Constants.LOCAL_PLUGINTOPUNPIN].includes(element.id)) { - pluginMenu.push({ + unPinMenu.push({ iconHTML: element.firstElementChild.outerHTML, label: element.textContent.trim(), click() { @@ -171,19 +171,8 @@ export const afterLoadPlugin = (plugin: Plugin) => { document.querySelector("#" + (element.getAttribute("data-position") === "right" ? "barPlugins" : "drag")).before(element); } }); - if (isMobile() && pluginMenu.length > 0) { - const pluginElement = document.createElement("div"); - pluginElement.classList.add("b3-menu__item"); - pluginElement.setAttribute("data-menu", "true"); - pluginElement.innerHTML = `${window.siyuan.languages.plugin}`; - pluginElement.addEventListener("click", () => { - const menu = new Menu(); - pluginMenu.forEach(item => { - menu.addItem(item); - }); - menu.fullscreen(); - }); - document.querySelector("#menuAbout").after(pluginElement); + if (isMobile() && unPinMenu.length > 0) { + return unPinMenu; } } /// #if !MOBILE