From 58b6b3ce840f3a9beacf456b005bd80daa3ca60e Mon Sep 17 00:00:00 2001
From: Christina Toegl <toegl@tugraz.at>
Date: Mon, 7 Dec 2020 12:23:25 +0100
Subject: [PATCH] Fix problem with slots and disabled buttons (#39)

---
 packages/common/src/button.js | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/packages/common/src/button.js b/packages/common/src/button.js
index 14814be0..acbbf483 100644
--- a/packages/common/src/button.js
+++ b/packages/common/src/button.js
@@ -88,6 +88,12 @@ export class LoadingButton extends ScopedElementsMixin(LitElement) {
         this.type = "";
         this.loading = false;
         this.disabled = false;
+        
+        this.addEventListener('click', (e) => {
+            if (this.disabled) {
+              e.stopImmediatePropagation();
+            }
+        });
     }
 
     static get scopedElements() {
@@ -155,8 +161,8 @@ export class LoadingButton extends ScopedElementsMixin(LitElement) {
 
     render() {
         return html`
-            <button class="button ${this.type} loading-container  ${!this.loading ? "is-not-loading" : ""}" ?disabled="${this.disabled}">
-               <div class="label">${this.value}</div> <dbp-mini-spinner class="spinner" style="display: ${this.loading ? "inline" : "none"}"></dbp-mini-spinner>
+            <button class="button ${this.type} loading-container ${!this.loading ? "is-not-loading" : ""}" ?disabled="${this.disabled}">
+               <div class="label"><slot>${this.value}</slot></div> <dbp-mini-spinner class="spinner" style="display: ${this.loading ? "inline" : "none"}"></dbp-mini-spinner>
             </button>
         `;
     }
-- 
GitLab