From 2f42144b33a10b02c830d6267b0217beaff8053c Mon Sep 17 00:00:00 2001 From: "gcp-cherry-pick-bot[bot]" <98988430+gcp-cherry-pick-bot[bot]@users.noreply.github.com> Date: Tue, 18 Jun 2024 17:39:13 +0900 Subject: [PATCH] web: fix needed because recent upgrade to task breaks spinner button (cherry-pick #10142) (#10150) web: fix needed because recent upgrade to task breaks spinner button (#10142) web: fix broken Task plug-in rebase and fix package json Signed-off-by: Jens Langhammer Co-authored-by: Ken Sternberg <133134217+kensternberg-authentik@users.noreply.github.com> Co-authored-by: Jens Langhammer --- web/package-lock.json | 18 ++++-------------- web/package.json | 2 +- .../buttons/SpinnerButton/BaseTaskButton.ts | 12 +++++++++--- 3 files changed, 14 insertions(+), 18 deletions(-) diff --git a/web/package-lock.json b/web/package-lock.json index 3405e24f5a..a43adfea50 100644 --- a/web/package-lock.json +++ b/web/package-lock.json @@ -18,10 +18,10 @@ "@formatjs/intl-listformat": "^7.5.7", "@fortawesome/fontawesome-free": "^6.5.2", "@goauthentik/api": "^2024.4.2-1718378698", - "@lit-labs/task": "^3.1.0", "@lit/context": "^1.1.2", "@lit/localize": "^0.12.1", "@lit/reactive-element": "^2.0.4", + "@lit/task": "^1.0.1", "@open-wc/lit-helpers": "^0.7.0", "@patternfly/elements": "^3.0.1", "@patternfly/patternfly": "^4.224.2", @@ -3333,15 +3333,6 @@ "integrity": "sha512-yWJKmpGE6lUURKAaIltoPIE/wrbY3TEkqQt+X0m+7fQNnAv0keydnYvbiJFP1PnMhizmIWRWOG5KLhYyc/xl+g==", "license": "BSD-3-Clause" }, - "node_modules/@lit-labs/task": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@lit-labs/task/-/task-3.1.0.tgz", - "integrity": "sha512-zMlcUtZeHDT83IiT2+CJBSoFvWDLnPEezhOCgqjxW4DmRHlbgd7jdft97T6dw4S4RvIETfI7OOyvubCV/EzTlg==", - "license": "BSD-3-Clause", - "dependencies": { - "@lit/task": "^1.0.0" - } - }, "node_modules/@lit/context": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@lit/context/-/context-1.1.2.tgz", @@ -3403,10 +3394,9 @@ } }, "node_modules/@lit/task": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@lit/task/-/task-1.0.0.tgz", - "integrity": "sha512-7jocGBh3yGlo3kKxQggZph2txK4X5GYNWp2FAsmV9u2spzUypwrzRzXe8I72icAb02B00+k2nlvxVcrQB6vyrw==", - "license": "BSD-3-Clause", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@lit/task/-/task-1.0.1.tgz", + "integrity": "sha512-fVLDtmwCau8NywnFIXaJxsCZjzaIxnVq+cFRKYC1Y4tA4/0rMTvF6DLZZ2JE51BwzOluaKtgJX8x1QDsQtAaIw==", "dependencies": { "@lit/reactive-element": "^1.0.0 || ^2.0.0" } diff --git a/web/package.json b/web/package.json index b529286e7e..dafc0fd8fd 100644 --- a/web/package.json +++ b/web/package.json @@ -39,10 +39,10 @@ "@formatjs/intl-listformat": "^7.5.7", "@fortawesome/fontawesome-free": "^6.5.2", "@goauthentik/api": "^2024.4.2-1718378698", - "@lit-labs/task": "^3.1.0", "@lit/context": "^1.1.2", "@lit/localize": "^0.12.1", "@lit/reactive-element": "^2.0.4", + "@lit/task": "^1.0.1", "@open-wc/lit-helpers": "^0.7.0", "@patternfly/elements": "^3.0.1", "@patternfly/patternfly": "^4.224.2", diff --git a/web/src/elements/buttons/SpinnerButton/BaseTaskButton.ts b/web/src/elements/buttons/SpinnerButton/BaseTaskButton.ts index 7e07dc3a4b..591c822f04 100644 --- a/web/src/elements/buttons/SpinnerButton/BaseTaskButton.ts +++ b/web/src/elements/buttons/SpinnerButton/BaseTaskButton.ts @@ -66,7 +66,11 @@ export abstract class BaseTaskButton extends CustomEmitterElement(AKElement) { this.onSuccess = this.onSuccess.bind(this); this.onError = this.onError.bind(this); this.onClick = this.onClick.bind(this); - this.actionTask = new Task(this, { + this.actionTask = this.buildTask(); + } + + buildTask() { + return new Task(this, { task: () => this.callAction(), args: () => [], autoRun: false, @@ -77,8 +81,9 @@ export abstract class BaseTaskButton extends CustomEmitterElement(AKElement) { onComplete() { setTimeout(() => { - this.actionTask.status = TaskStatus.INITIAL; this.dispatchCustomEvent(`${this.eventPrefix}-reset`); + // set-up for the next task... + this.actionTask = this.buildTask(); this.requestUpdate(); }, SPINNER_TIMEOUT); } @@ -98,7 +103,8 @@ export abstract class BaseTaskButton extends CustomEmitterElement(AKElement) { } onClick() { - if (this.actionTask.status !== TaskStatus.INITIAL) { + // Don't accept clicks when a task is in progress.. + if (this.actionTask.status === TaskStatus.PENDING) { return; } this.dispatchCustomEvent(`${this.eventPrefix}-click`);