From cc12b7e14ddaf9876d1ce6229227c6f6cc7a388f Mon Sep 17 00:00:00 2001 From: Patrizio Bekerle <patrizio@bekerle.com> Date: Thu, 28 Apr 2022 11:31:20 +0200 Subject: [PATCH] Fix submit event being blocked in dbp-button --- package.json | 2 +- packages/common/src/button.js | 18 +++++++++++------- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/package.json b/package.json index 00fee212..59cd2f14 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "dbp-toolkit", - "version": "0.1.1", + "version": "0.1.2", "description": "", "main": "index.js", "private": true, diff --git a/packages/common/src/button.js b/packages/common/src/button.js index 1c9a9752..e2f7bf31 100644 --- a/packages/common/src/button.js +++ b/packages/common/src/button.js @@ -20,6 +20,17 @@ export class Button extends ScopedElementsMixin(LitElement) { this.spinner = false; this.noSpinnerOnClick = false; this.disabled = false; + + // https://bugs.chromium.org/p/chromium/issues/detail?id=1061240#c12 + this.addEventListener('click', (e) => { + if (this.disabled) { + e.stopImmediatePropagation(); + } + + if (!this.noSpinnerOnClick) { + this.start(); + } + }); } static get scopedElements() { @@ -42,12 +53,6 @@ export class Button extends ScopedElementsMixin(LitElement) { }; } - clickHandler() { - if (!this.noSpinnerOnClick) { - this.start(); - } - } - start() { this.spinner = true; this.disabled = true; @@ -77,7 +82,6 @@ export class Button extends ScopedElementsMixin(LitElement) { render() { return html` <button - @click="${this.clickHandler}" class="button ${this.type}" ?disabled="${this.disabled}"> ${this.value} -- GitLab