This commit is contained in:
Vanessa 2023-10-25 22:27:07 +08:00
parent e32c8f8c1c
commit 2a3b72bb8a
2 changed files with 26 additions and 16 deletions

View file

@ -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 = `<svg class="b3-menu__icon"><use xlink:href="#iconPlugin"></use></svg><span class="b3-menu__label">${window.siyuan.languages.plugin}</span>`;
pluginElement.addEventListener("click", () => {
const menu = new Menu();
unPinsMenu.forEach(item => {
menu.addItem(item);
});
menu.fullscreen();
});
document.querySelector("#menuAbout").after(pluginElement);
}
});
});
});

View file

@ -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 = `<svg class="b3-menu__icon"><use xlink:href="#iconPlugin"></use></svg><span class="b3-menu__label">${window.siyuan.languages.plugin}</span>`;
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