diff --git a/src/common/dom/is-navigation-click.ts b/src/common/dom/is-navigation-click.ts index 9cc92a5832..56bbe9d94b 100644 --- a/src/common/dom/is-navigation-click.ts +++ b/src/common/dom/is-navigation-click.ts @@ -1,4 +1,4 @@ -export const isNavigationClick = (e: MouseEvent) => { +export const isNavigationClick = (e: MouseEvent, preventDefault = true) => { // Taken from polymer/pwa-helpers. BSD-3 licensed if ( e.defaultPrevented || @@ -40,6 +40,8 @@ export const isNavigationClick = (e: MouseEvent) => { return undefined; } - e.preventDefault(); + if (preventDefault) { + e.preventDefault(); + } return href; }; diff --git a/src/dialogs/config-flow/step-flow-form.ts b/src/dialogs/config-flow/step-flow-form.ts index 8be65a68a9..f951dda0d2 100644 --- a/src/dialogs/config-flow/step-flow-form.ts +++ b/src/dialogs/config-flow/step-flow-form.ts @@ -21,6 +21,7 @@ import type { DataEntryFlowStepForm } from "../../data/data_entry_flow"; import type { HomeAssistant } from "../../types"; import type { FlowConfig } from "./show-dialog-data-entry-flow"; import { configFlowContentStyles } from "./styles"; +import { isNavigationClick } from "../../common/dom/is-navigation-click"; @customElement("step-flow-form") class StepFlowForm extends LitElement { @@ -47,7 +48,7 @@ class StepFlowForm extends LitElement { return html`

${this.flowConfig.renderShowFormStepHeader(this.hass, this.step)}

-
+
${this.flowConfig.renderShowFormStepDescription(this.hass, this.step)} ${this._errorMsg ? html`${this._errorMsg}` @@ -92,6 +93,14 @@ class StepFlowForm extends LitElement { this.addEventListener("keydown", this._handleKeyDown); } + private _clickHandler(ev: MouseEvent) { + if (isNavigationClick(ev, false)) { + fireEvent(this, "flow-update", { + step: undefined, + }); + } + } + private _handleKeyDown = (ev: KeyboardEvent) => { if (ev.key === "Enter") { this._submitStep(); diff --git a/src/panels/config/repairs/dialog-repairs-issue.ts b/src/panels/config/repairs/dialog-repairs-issue.ts index fe6bc4b4f5..3aae980d29 100644 --- a/src/panels/config/repairs/dialog-repairs-issue.ts +++ b/src/panels/config/repairs/dialog-repairs-issue.ts @@ -3,6 +3,7 @@ import { css, CSSResultGroup, html, LitElement, nothing } from "lit"; import { customElement, property, state } from "lit/decorators"; import { formatDateNumeric } from "../../../common/datetime/format_date"; import { fireEvent } from "../../../common/dom/fire_event"; +import { isNavigationClick } from "../../../common/dom/is-navigation-click"; import { createCloseHeading } from "../../../components/ha-dialog"; import "../../../components/ha-markdown"; import { ignoreRepairsIssue, RepairsIssue } from "../../../data/repairs"; @@ -71,6 +72,7 @@ class DialogRepairsIssue extends LitElement {