From e7354ed5a254be32674832efd5ec7680cb4a334a Mon Sep 17 00:00:00 2001 From: Paul Bottein Date: Mon, 2 Jan 2023 21:27:30 +0100 Subject: [PATCH] Do not close aliases dialog on enter (#14952) Co-authored-by: Bram Kragten --- src/components/ha-dialog.ts | 12 +++++++++++- .../entity-aliases/dialog-entity-aliases.ts | 18 +++++++++++++++--- .../entities/entity-registry-basic-editor.ts | 11 ++++------- .../entities/entity-registry-settings.ts | 11 ++++------- src/translations/en.json | 3 ++- 5 files changed, 36 insertions(+), 19 deletions(-) diff --git a/src/components/ha-dialog.ts b/src/components/ha-dialog.ts index f3995a7737..1e69ad2ac4 100644 --- a/src/components/ha-dialog.ts +++ b/src/components/ha-dialog.ts @@ -3,10 +3,12 @@ import { styles } from "@material/mwc-dialog/mwc-dialog.css"; import { mdiClose } from "@mdi/js"; import { css, html, TemplateResult } from "lit"; import { customElement } from "lit/decorators"; -import type { HomeAssistant } from "../types"; import { FOCUS_TARGET } from "../dialogs/make-dialog-manager"; +import type { HomeAssistant } from "../types"; import "./ha-icon-button"; +const SUPPRESS_DEFAULT_PRESS_SELECTOR = ["button"]; + export const createCloseHeading = ( hass: HomeAssistant, title: string | TemplateResult @@ -32,6 +34,14 @@ export class HaDialog extends DialogBase { return html` ${super.renderHeading()} `; } + protected firstUpdated(): void { + super.firstUpdated(); + this.suppressDefaultPressSelector = [ + this.suppressDefaultPressSelector, + SUPPRESS_DEFAULT_PRESS_SELECTOR, + ].join(", "); + } + static override styles = [ styles, css` diff --git a/src/panels/config/entities/entity-aliases/dialog-entity-aliases.ts b/src/panels/config/entities/entity-aliases/dialog-entity-aliases.ts index 29e3e012cc..9859bcf602 100644 --- a/src/panels/config/entities/entity-aliases/dialog-entity-aliases.ts +++ b/src/panels/config/entities/entity-aliases/dialog-entity-aliases.ts @@ -72,16 +72,21 @@ class DialogEntityAliases extends LitElement { dialogInitialFocus=${index} .index=${index} class="flex-auto" - label="Alias" + .label=${this.hass!.localize( + "ui.dialogs.entity_registry.editor.aliases.input_label", + { number: index + 1 } + )} .value=${alias} ?data-last=${index === this._aliases.length - 1} - @change=${this._editAlias} + @input=${this._editAlias} + @keydown=${this._keyDownAlias} > { @@ -272,12 +273,8 @@ export class HaEntityRegistryBasicEditor extends SubscribeMixin(LitElement) { "ui.dialogs.entity_registry.editor.aliases_section" )} - - 0} - hasMeta - @click=${this._openAliasesSettings} - > + + 0} hasMeta> ${this.entry.aliases.length > 0 ? this.hass.localize( diff --git a/src/panels/config/entities/entity-registry-settings.ts b/src/panels/config/entities/entity-registry-settings.ts index 9fc640993f..5a318ff9ed 100644 --- a/src/panels/config/entities/entity-registry-settings.ts +++ b/src/panels/config/entities/entity-registry-settings.ts @@ -807,12 +807,8 @@ export class EntityRegistrySettings extends SubscribeMixin(LitElement) { "ui.dialogs.entity_registry.editor.aliases_section" )} - - 0} - hasMeta - @click=${this._openAliasesSettings} - > + + 0} hasMeta> ${this.entry.aliases.length > 0 ? this.hass.localize( @@ -1015,7 +1011,8 @@ export class EntityRegistrySettings extends SubscribeMixin(LitElement) { }); } - private _openAliasesSettings() { + private _handleAliasesClicked(ev: CustomEvent) { + if (ev.detail.index !== 0) return; showEntityAliasesDialog(this, { entity: this.entry!, updateEntry: async (updates) => { diff --git a/src/translations/en.json b/src/translations/en.json index ff490edd2c..df3e8b1c90 100755 --- a/src/translations/en.json +++ b/src/translations/en.json @@ -1003,7 +1003,8 @@ "aliases": { "heading": "{name} aliases", "description": "Aliases are alternative names used in voice assistants to refer to this entity.", - "remove_alias": "Remove alias", + "remove_alias": "Remove alias {number}", + "input_label": "Alias {number}", "save": "Save", "add_alias": "Add alias", "no_aliases": "No aliases have been added yet",