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