Automation editor: fix focus handling (#26755)

This commit is contained in:
Wendelin
2025-08-29 08:39:06 +02:00
committed by GitHub
parent a376670478
commit b86c1db83d
9 changed files with 60 additions and 54 deletions

View File

@@ -38,6 +38,7 @@ import { showToast } from "../../../util/toast";
import "../automation/action/ha-automation-action";
import type HaAutomationAction from "../automation/action/ha-automation-action";
import "../automation/ha-automation-sidebar";
import type HaAutomationSidebar from "../automation/ha-automation-sidebar";
import { showPasteReplaceDialog } from "../automation/paste-replace-dialog/show-dialog-paste-replace";
import { manualEditorStyles, saveFabStyles } from "../automation/styles";
import "./ha-script-fields";
@@ -69,17 +70,19 @@ export class HaManualScriptEditor extends LitElement {
@property({ attribute: false }) public dirty = false;
@query("ha-script-fields")
private _scriptFields?: HaScriptFields;
private _openFields = false;
@state() private _pastedConfig?: ScriptConfig;
@state() private _sidebarConfig?: SidebarConfig;
@query("ha-script-fields")
private _scriptFields?: HaScriptFields;
@query("ha-automation-sidebar") private _sidebarElement?: HaAutomationSidebar;
private _previousConfig?: ScriptConfig;
private _openFields = false;
public addFields() {
this._openFields = true;
fireEvent(this, "value-changed", {
@@ -217,6 +220,7 @@ export class HaManualScriptEditor extends LitElement {
</ha-fab>
</div>
<ha-automation-sidebar
tabindex="-1"
class=${classMap({
sidebar: true,
overlay: !this.isWide,
@@ -455,10 +459,13 @@ export class HaManualScriptEditor extends LitElement {
});
}
private _openSidebar(ev: CustomEvent<SidebarConfig>) {
private async _openSidebar(ev: CustomEvent<SidebarConfig>) {
// deselect previous selected row
this._sidebarConfig?.close?.();
this._sidebarConfig = ev.detail;
await this._sidebarElement?.updateComplete;
this._sidebarElement?.focus();
}
private _sidebarConfigChanged(ev: CustomEvent<{ value: SidebarConfig }>) {