diff --git a/src/dialogs/config-flow/dialog-data-entry-flow.ts b/src/dialogs/config-flow/dialog-data-entry-flow.ts index 2b5660bf89..fc7102cc71 100644 --- a/src/dialogs/config-flow/dialog-data-entry-flow.ts +++ b/src/dialogs/config-flow/dialog-data-entry-flow.ts @@ -22,7 +22,10 @@ import { AreaRegistryEntry, subscribeAreaRegistry, } from "../../data/area_registry"; -import type { DataEntryFlowStep } from "../../data/data_entry_flow"; +import type { + DataEntryFlowProgressedEvent, + DataEntryFlowStep, +} from "../../data/data_entry_flow"; import { DeviceRegistryEntry, subscribeDeviceRegistry, @@ -224,6 +227,19 @@ class DataEntryFlowDialog extends LitElement { protected firstUpdated(changedProps: PropertyValues) { super.firstUpdated(changedProps); + this.hass.connection.subscribeEvents( + async (ev) => { + if (ev.data.flow_id !== this._step?.flow_id) { + return; + } + const step = await this._params!.flowConfig.fetchFlow( + this.hass, + this._step?.flow_id + ); + this._processStep(step); + }, + "data_entry_flow_progressed" + ); this.addEventListener("flow-update", (ev) => { const { step, stepPromise } = (ev as any).detail; this._processStep(step || stepPromise); diff --git a/src/dialogs/config-flow/step-flow-external.ts b/src/dialogs/config-flow/step-flow-external.ts index 757399763d..70ecda2f32 100644 --- a/src/dialogs/config-flow/step-flow-external.ts +++ b/src/dialogs/config-flow/step-flow-external.ts @@ -8,11 +8,7 @@ import { property, TemplateResult, } from "lit-element"; -import { fireEvent } from "../../common/dom/fire_event"; -import { - DataEntryFlowProgressedEvent, - DataEntryFlowStepExternal, -} from "../../data/data_entry_flow"; +import { DataEntryFlowStepExternal } from "../../data/data_entry_flow"; import { HomeAssistant } from "../../types"; import { FlowConfig } from "./show-dialog-data-entry-flow"; import { configFlowContentStyles } from "./styles"; @@ -51,18 +47,6 @@ class StepFlowExternal extends LitElement { protected firstUpdated(changedProps) { super.firstUpdated(changedProps); - this.hass.connection.subscribeEvents( - async (ev) => { - if (ev.data.flow_id !== this.step.flow_id) { - return; - } - - fireEvent(this, "flow-update", { - stepPromise: this.flowConfig.fetchFlow(this.hass, this.step.flow_id), - }); - }, - "data_entry_flow_progressed" - ); window.open(this.step.url); } diff --git a/src/dialogs/config-flow/step-flow-progress.ts b/src/dialogs/config-flow/step-flow-progress.ts index 57ba59560c..fc12f9b5c5 100644 --- a/src/dialogs/config-flow/step-flow-progress.ts +++ b/src/dialogs/config-flow/step-flow-progress.ts @@ -8,12 +8,8 @@ import { property, TemplateResult, } from "lit-element"; -import { fireEvent } from "../../common/dom/fire_event"; import "../../components/ha-circular-progress"; -import { - DataEntryFlowProgressedEvent, - DataEntryFlowStepProgress, -} from "../../data/data_entry_flow"; +import { DataEntryFlowStepProgress } from "../../data/data_entry_flow"; import { HomeAssistant } from "../../types"; import { FlowConfig } from "./show-dialog-data-entry-flow"; import { configFlowContentStyles } from "./styles"; @@ -43,22 +39,6 @@ class StepFlowProgress extends LitElement { `; } - protected firstUpdated(changedProps) { - super.firstUpdated(changedProps); - this.hass.connection.subscribeEvents( - async (ev) => { - if (ev.data.flow_id !== this.step.flow_id) { - return; - } - - fireEvent(this, "flow-update", { - stepPromise: this.flowConfig.fetchFlow(this.hass, this.step.flow_id), - }); - }, - "data_entry_flow_progressed" - ); - } - static get styles(): CSSResult[] { return [ configFlowContentStyles,