From 85d3153bec495e6f6d1a166519d06eef7fec6b68 Mon Sep 17 00:00:00 2001 From: Christina Toegl <toegl@tugraz.at> Date: Fri, 16 Dec 2022 11:47:05 +0100 Subject: [PATCH] Add start and stop functionality for icon button loading spinners --- packages/common/src/button.js | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/packages/common/src/button.js b/packages/common/src/button.js index d921b94a..00012652 100644 --- a/packages/common/src/button.js +++ b/packages/common/src/button.js @@ -184,6 +184,7 @@ export class IconButton extends ScopedElementsMixin(LitElement) { super(); this.iconName = ''; this.disabled = false; + this.loading = false; } static get properties() { @@ -191,9 +192,20 @@ export class IconButton extends ScopedElementsMixin(LitElement) { ...super.properties, iconName: {type: String, attribute: 'icon-name'}, disabled: {type: Boolean, reflect: true}, + loading: {type: Boolean}, }; } + start() { + this.loading = true; + this.disabled = true; + } + + stop() { + this.loading = false; + this.disabled = false; + } + static get styles() { // language=css return css` @@ -248,7 +260,10 @@ export class IconButton extends ScopedElementsMixin(LitElement) { ? 'is-not-loading' : ''}" ?disabled="${this.disabled}"> - <slot><dbp-icon class="dbp-button-icon" name="${this.iconName}"></dbp-icon></slot> + <slot><dbp-icon + class="dbp-button-icon" + name="${this.iconName}" + style="display: ${this.loading ? 'none' : 'inline'}"></dbp-icon></slot> <dbp-mini-spinner class="spinner" style="display: ${this.loading ? 'inline' : 'none'}"></dbp-mini-spinner> -- GitLab