Compare commits

...

1 Commits

Author SHA1 Message Date
Aidan Timson
b869bdecd7 Focus scrollable content on load for integrations 2026-04-02 15:55:01 +01:00
2 changed files with 25 additions and 1 deletions

View File

@@ -1,6 +1,12 @@
import type { CSSResultGroup, PropertyValues, TemplateResult } from "lit";
import { css, html, LitElement, nothing } from "lit";
import { customElement, eventOptions, property, state } from "lit/decorators";
import {
customElement,
eventOptions,
property,
query,
state,
} from "lit/decorators";
import { classMap } from "lit/directives/class-map";
import memoizeOne from "memoize-one";
import { canShowPage } from "../common/config/can_show_page";
@@ -75,6 +81,8 @@ export class HassTabsSubpage extends LitElement {
@state() private _activeTab?: PageNavigation;
@query(".content") private _content?: HTMLDivElement;
// @ts-ignore
@restoreScroll(".content") private _savedScrollPos?: number;
@@ -211,6 +219,15 @@ export class HassTabsSubpage extends LitElement {
this._savedScrollPos = (e.target as HTMLDivElement).scrollTop;
}
public focusContentScroller() {
if (!this._content) {
return;
}
this._content.style.outline = "none";
this._content.focus({ preventScroll: true });
}
private _backTapped(): void {
if (this.backCallback) {
this.backCallback();

View File

@@ -55,6 +55,7 @@ import {
import type { ImprovDiscoveredDevice } from "../../../external_app/external_messaging";
import "../../../layouts/hass-loading-screen";
import "../../../layouts/hass-tabs-subpage";
import type { HassTabsSubpage } from "../../../layouts/hass-tabs-subpage";
import { KeyboardShortcutMixin } from "../../../mixins/keyboard-shortcut-mixin";
import { SubscribeMixin } from "../../../mixins/subscribe-mixin";
import { haStyle } from "../../../resources/styles";
@@ -170,6 +171,8 @@ class HaConfigIntegrationsDashboard extends KeyboardShortcutMixin(
@query("ha-input-search") private _searchInput!: HaInputSearch;
@query("hass-tabs-subpage") private _tabsSubpage?: HassTabsSubpage;
public disconnectedCallback(): void {
super.disconnectedCallback();
window.removeEventListener(
@@ -424,6 +427,10 @@ class HaConfigIntegrationsDashboard extends KeyboardShortcutMixin(
this.configEntries.map((entry) => entry.domain)
);
}
if (this.configEntries && this.configEntriesInProgress) {
this._tabsSubpage?.focusContentScroller();
}
}
protected render() {