From 7adb49c77268c65dde644c26588ce201ff4e87ba Mon Sep 17 00:00:00 2001 From: Steve Repsher Date: Mon, 20 Feb 2023 12:14:54 -0500 Subject: [PATCH] Fix promise constructors with returns (#15486) --- .eslintrc.json | 1 - src/components/data-table/ha-data-table.ts | 10 ++++++---- src/components/ha-related-items.ts | 4 +++- src/data/update.ts | 4 +++- src/dialogs/more-info/controls/more-info-climate.ts | 4 +++- src/dialogs/more-info/controls/more-info-humidifier.ts | 4 +++- src/onboarding/ha-onboarding.ts | 4 +++- .../editor/card-editor/hui-dialog-edit-card.ts | 4 +++- src/panels/media-browser/ha-bar-media-player.ts | 4 +++- src/state/translations-mixin.ts | 8 +++++--- 10 files changed, 32 insertions(+), 15 deletions(-) diff --git a/.eslintrc.json b/.eslintrc.json index 549844fe62..985f1da4fd 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -59,7 +59,6 @@ "prefer-destructuring": "off", "no-restricted-globals": [2, "event"], "prefer-promise-reject-errors": "off", - "no-promise-executor-return": "warn", "no-unsafe-optional-chaining": "warn", "prefer-regex-literals": ["warn"], "import/prefer-default-export": "off", diff --git a/src/components/data-table/ha-data-table.ts b/src/components/data-table/ha-data-table.ts index dad2d26efb..34a0bc29d3 100644 --- a/src/components/data-table/ha-data-table.ts +++ b/src/components/data-table/ha-data-table.ts @@ -1,3 +1,4 @@ +import "@lit-labs/virtualizer"; import { mdiArrowDown, mdiArrowUp } from "@mdi/js"; import deepClone from "deep-clone-simple"; import { @@ -21,16 +22,15 @@ import { styleMap } from "lit/directives/style-map"; import memoizeOne from "memoize-one"; import { restoreScroll } from "../../common/decorators/restore-scroll"; import { fireEvent } from "../../common/dom/fire_event"; -import "../search-input"; import { debounce } from "../../common/util/debounce"; import { nextRender } from "../../common/util/render-status"; import { haStyleScrollbar } from "../../resources/styles"; +import { HomeAssistant } from "../../types"; import "../ha-checkbox"; import type { HaCheckbox } from "../ha-checkbox"; import "../ha-svg-icon"; +import "../search-input"; import { filterData, sortData } from "./sort-filter"; -import { HomeAssistant } from "../../types"; -import "@lit-labs/virtualizer"; declare global { // for fire event @@ -461,7 +461,9 @@ export class HaDataTable extends LitElement { const elapsed = curTime - startTime; if (elapsed < 100) { - await new Promise((resolve) => setTimeout(resolve, 100 - elapsed)); + await new Promise((resolve) => { + setTimeout(resolve, 100 - elapsed); + }); } if (this.curRequest !== curRequest) { return; diff --git a/src/components/ha-related-items.ts b/src/components/ha-related-items.ts index 89974e6be8..d13b4db4c7 100644 --- a/src/components/ha-related-items.ts +++ b/src/components/ha-related-items.ts @@ -282,7 +282,9 @@ export class HaRelatedItems extends SubscribeMixin(LitElement) { private async _navigateAwayClose() { // allow new page to open before closing dialog - await new Promise((resolve) => setTimeout(resolve, 0)); + await new Promise((resolve) => { + setTimeout(resolve, 0); + }); fireEvent(this, "close-dialog"); } diff --git a/src/data/update.ts b/src/data/update.ts index cc352c5116..9392ad0162 100644 --- a/src/data/update.ts +++ b/src/data/update.ts @@ -150,7 +150,9 @@ export const checkForEntityUpdates = async ( }); // there is no reliable way to know if all the updates are done updating, so we just wait a bit for now... - await new Promise((r) => setTimeout(r, 10000)); + await new Promise((r) => { + setTimeout(r, 10000); + }); unsubscribeEvents(); diff --git a/src/dialogs/more-info/controls/more-info-climate.ts b/src/dialogs/more-info/controls/more-info-climate.ts index 559b9bfbef..f2a8f8d92a 100644 --- a/src/dialogs/more-info/controls/more-info-climate.ts +++ b/src/dialogs/more-info/controls/more-info-climate.ts @@ -467,7 +467,9 @@ class MoreInfoClimate extends LitElement { // We reset stateObj to re-sync the inputs with the state. It will be out // of sync if our service call did not result in the entity to be turned // on. Since the state is not changing, the resync is not called automatic. - await new Promise((resolve) => setTimeout(resolve, 2000)); + await new Promise((resolve) => { + setTimeout(resolve, 2000); + }); // No need to resync if we received a new state. if (this.stateObj !== curState) { diff --git a/src/dialogs/more-info/controls/more-info-humidifier.ts b/src/dialogs/more-info/controls/more-info-humidifier.ts index b5618e8619..9701fcc079 100644 --- a/src/dialogs/more-info/controls/more-info-humidifier.ts +++ b/src/dialogs/more-info/controls/more-info-humidifier.ts @@ -147,7 +147,9 @@ class MoreInfoHumidifier extends LitElement { // We reset stateObj to re-sync the inputs with the state. It will be out // of sync if our service call did not result in the entity to be turned // on. Since the state is not changing, the resync is not called automatic. - await new Promise((resolve) => setTimeout(resolve, 2000)); + await new Promise((resolve) => { + setTimeout(resolve, 2000); + }); // No need to resync if we received a new state. if (this.stateObj !== curState) { diff --git a/src/onboarding/ha-onboarding.ts b/src/onboarding/ha-onboarding.ts index 72dabb9d9a..59ecb89fe1 100644 --- a/src/onboarding/ha-onboarding.ts +++ b/src/onboarding/ha-onboarding.ts @@ -323,7 +323,9 @@ class HaOnboarding extends litLocalizeLiteMixin(HassElement) { // Load config strings for integrations (this as any)._loadFragmentTranslations(this.hass!.language, "config"); // Make sure hass is initialized + the config/user callbacks have called. - await new Promise((resolve) => setTimeout(resolve, 0)); + await new Promise((resolve) => { + setTimeout(resolve, 0); + }); } } diff --git a/src/panels/lovelace/editor/card-editor/hui-dialog-edit-card.ts b/src/panels/lovelace/editor/card-editor/hui-dialog-edit-card.ts index f11310b93b..2532023a01 100755 --- a/src/panels/lovelace/editor/card-editor/hui-dialog-edit-card.ts +++ b/src/panels/lovelace/editor/card-editor/hui-dialog-edit-card.ts @@ -315,7 +315,9 @@ export class HuiDialogEditCard private async _confirmCancel() { // Make sure the open state of this dialog is handled before the open state of confirm dialog - await new Promise((resolve) => setTimeout(resolve, 0)); + await new Promise((resolve) => { + setTimeout(resolve, 0); + }); const confirm = await showConfirmationDialog(this, { title: this.hass!.localize( "ui.panel.lovelace.editor.edit_card.unsaved_changes" diff --git a/src/panels/media-browser/ha-bar-media-player.ts b/src/panels/media-browser/ha-bar-media-player.ts index c41d57c9a8..ba7f1b5820 100644 --- a/src/panels/media-browser/ha-bar-media-player.ts +++ b/src/panels/media-browser/ha-bar-media-player.ts @@ -162,7 +162,9 @@ export class BarMediaPlayer extends SubscribeMixin(LitElement) {
${until( // Only show spinner after 500ms - new Promise((resolve) => setTimeout(resolve, 500)).then( + new Promise((resolve) => { + setTimeout(resolve, 500); + }).then( () => html`` ) )} diff --git a/src/state/translations-mixin.ts b/src/state/translations-mixin.ts index b0848fcb4e..9e697425b6 100644 --- a/src/state/translations-mixin.ts +++ b/src/state/translations-mixin.ts @@ -1,4 +1,5 @@ import { atLeastVersion } from "../common/config/version"; +import { fireEvent } from "../common/dom/fire_event"; import { computeLocalize, LocalizeFunc } from "../common/translations/localize"; import { computeRTLDirection, @@ -16,14 +17,13 @@ import { } from "../data/translation"; import { translationMetadata } from "../resources/translations-metadata"; import { Constructor, HomeAssistant } from "../types"; -import { storeState } from "../util/ha-pref-storage"; import { getLocalLanguage, getTranslation, getUserLocale, } from "../util/common-translation"; +import { storeState } from "../util/ha-pref-storage"; import { HassBaseEl } from "./hass-base-mixin"; -import { fireEvent } from "../common/dom/fire_event"; declare global { // for fire event @@ -373,7 +373,9 @@ export default >(superClass: T) => // overwritten when we call _updateHass the second time! // Allow hass to be updated - await new Promise((resolve) => setTimeout(resolve, 0)); + await new Promise((resolve) => { + setTimeout(resolve, 0); + }); if (language !== (this.hass ?? this._pendingHass).language) { // the language was changed, abort