Browse Source

:bug: my plugin

Vanessa 2 years ago
parent
commit
b2ac7b54ea
1 changed files with 11 additions and 2 deletions
  1. 11 2
      app/src/config/bazaar.ts

+ 11 - 2
app/src/config/bazaar.ts

@@ -215,6 +215,12 @@ export const bazaar = {
 </div>`;
     },
     _genMyHTML(bazaarType: TBazaarType, app: App) {
+        const contentElement = bazaar.element.querySelector("#configBazaarDownloaded");
+        if (contentElement.getAttribute("data-loading") === "true" ||
+            contentElement.previousElementSibling.querySelector(`[data-type="my${bazaarType.replace(bazaarType[0], bazaarType[0].toUpperCase()).substring(0, bazaarType.length - 1)}"]`).classList.contains("b3-button--outline")) {
+            return;
+        }
+        contentElement.setAttribute("data-loading", "true");
         let url = "/api/bazaar/getInstalledTheme";
         if (bazaarType === "icons") {
             url = "/api/bazaar/getInstalledIcon";
@@ -226,6 +232,7 @@ export const bazaar = {
             url = "/api/bazaar/getInstalledPlugin";
         }
         fetchPost(url, {}, response => {
+            contentElement.removeAttribute("data-loading");
             let html = "";
             let showSwitch = false;
             if (["icons", "themes"].includes(bazaarType)) {
@@ -288,7 +295,7 @@ export const bazaar = {
 </div>`;
             });
             bazaar._data.downloaded = response.data.packages;
-            bazaar.element.querySelector("#configBazaarDownloaded").innerHTML = html ? html : `<div class="fn__hr"></div><ul class="b3-list b3-list--background"><li class="b3-list--empty">${window.siyuan.languages.emptyContent}</li></ul>`;
+            contentElement.innerHTML = html ? html : `<div class="fn__hr"></div><ul class="b3-list b3-list--background"><li class="b3-list--empty">${window.siyuan.languages.emptyContent}</li></ul>`;
         });
     },
     _data: {
@@ -447,7 +454,9 @@ export const bazaar = {
                     event.stopPropagation();
                     break;
                 } else if (["myTheme", "myTemplate", "myIcon", "myWidget", "myPlugin"].includes(type)) {
-                    if (target.classList.contains("b3-button--outline")) {
+                    const contentElement = bazaar.element.querySelector("#configBazaarDownloaded");
+                    if (target.classList.contains("b3-button--outline") &&
+                        !contentElement.getAttribute("data-loading")) {
                         target.parentElement.childNodes.forEach((item: HTMLElement) => {
                             if (item.nodeType !== 3 && item.classList.contains("b3-button")) {
                                 item.classList.add("b3-button--outline");