mirror of
https://github.com/home-assistant/frontend.git
synced 2025-07-19 07:16:39 +00:00
show first visible view on default (#6567)
Co-authored-by: Bram Kragten <mail@bramkragten.nl>
This commit is contained in:
parent
f18913b5a0
commit
dd1bf7b49d
@ -1,12 +1,13 @@
|
||||
import "@material/mwc-button";
|
||||
import "@material/mwc-list/mwc-list-item";
|
||||
import type { RequestSelectedDetail } from "@material/mwc-list/mwc-list-item";
|
||||
import {
|
||||
mdiDotsVertical,
|
||||
mdiMicrophone,
|
||||
mdiPlus,
|
||||
mdiClose,
|
||||
mdiPencil,
|
||||
mdiDotsVertical,
|
||||
mdiHelpCircle,
|
||||
mdiMicrophone,
|
||||
mdiPencil,
|
||||
mdiPlus,
|
||||
} from "@mdi/js";
|
||||
import "@polymer/app-layout/app-header/app-header";
|
||||
import "@polymer/app-layout/app-scroll-effects/effects/waterfall";
|
||||
@ -17,9 +18,9 @@ import {
|
||||
css,
|
||||
CSSResult,
|
||||
html,
|
||||
internalProperty,
|
||||
LitElement,
|
||||
property,
|
||||
internalProperty,
|
||||
PropertyValues,
|
||||
TemplateResult,
|
||||
} from "lit-element";
|
||||
@ -28,16 +29,17 @@ import memoizeOne from "memoize-one";
|
||||
import { isComponentLoaded } from "../../common/config/is_component_loaded";
|
||||
import { fireEvent } from "../../common/dom/fire_event";
|
||||
import scrollToTarget from "../../common/dom/scroll-to-target";
|
||||
import { shouldHandleRequestSelectedEvent } from "../../common/mwc/handle-request-selected-event";
|
||||
import { navigate } from "../../common/navigate";
|
||||
import { computeRTLDirection } from "../../common/util/compute_rtl";
|
||||
import { debounce } from "../../common/util/debounce";
|
||||
import { afterNextRender } from "../../common/util/render-status";
|
||||
import "../../components/ha-button-menu";
|
||||
import "../../components/ha-icon";
|
||||
import "../../components/ha-svg-icon";
|
||||
import "../../components/ha-icon-button-arrow-next";
|
||||
import "../../components/ha-icon-button-arrow-prev";
|
||||
import "../../components/ha-menu-button";
|
||||
import "../../components/ha-svg-icon";
|
||||
import type {
|
||||
LovelaceConfig,
|
||||
LovelacePanelConfig,
|
||||
@ -58,8 +60,6 @@ import type { Lovelace } from "./types";
|
||||
import "./views/hui-panel-view";
|
||||
import type { HUIPanelView } from "./views/hui-panel-view";
|
||||
import { HUIView } from "./views/hui-view";
|
||||
import type { RequestSelectedDetail } from "@material/mwc-list/mwc-list-item";
|
||||
import { shouldHandleRequestSelectedEvent } from "../../common/mwc/handle-request-selected-event";
|
||||
|
||||
class HUIRoot extends LitElement {
|
||||
@property({ attribute: false }) public hass!: HomeAssistant;
|
||||
@ -382,6 +382,15 @@ class HUIRoot extends LitElement {
|
||||
`;
|
||||
}
|
||||
|
||||
private _isVisible = (view: LovelaceViewConfig) =>
|
||||
Boolean(
|
||||
this._editMode ||
|
||||
view.visible === undefined ||
|
||||
view.visible === true ||
|
||||
(Array.isArray(view.visible) &&
|
||||
view.visible.some((show) => show.user === this.hass!.user?.id))
|
||||
);
|
||||
|
||||
protected updated(changedProperties: PropertyValues): void {
|
||||
super.updated(changedProperties);
|
||||
|
||||
@ -407,9 +416,14 @@ class HUIRoot extends LitElement {
|
||||
|
||||
if (changedProperties.has("route")) {
|
||||
const views = this.config.views;
|
||||
|
||||
if (!viewPath && views.length) {
|
||||
navigate(this, `${this.route!.prefix}/${views[0].path || 0}`, true);
|
||||
newSelectView = 0;
|
||||
newSelectView = views.findIndex(this._isVisible);
|
||||
navigate(
|
||||
this,
|
||||
`${this.route!.prefix}/${views[newSelectView].path || newSelectView}`,
|
||||
true
|
||||
);
|
||||
} else if (viewPath === "hass-unused-entities") {
|
||||
newSelectView = "hass-unused-entities";
|
||||
} else if (viewPath) {
|
||||
@ -449,8 +463,14 @@ class HUIRoot extends LitElement {
|
||||
this.lovelace!.mode === "storage" &&
|
||||
viewPath === "hass-unused-entities"
|
||||
) {
|
||||
navigate(this, `${this.route?.prefix}/${views[0]?.path || 0}`);
|
||||
newSelectView = 0;
|
||||
newSelectView = views.findIndex(this._isVisible);
|
||||
navigate(
|
||||
this,
|
||||
`${this.route!.prefix}/${
|
||||
views[newSelectView].path || newSelectView
|
||||
}`,
|
||||
true
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user