mirror of
https://github.com/home-assistant/frontend.git
synced 2025-07-15 13:26:34 +00:00
Use-consume-scene-editor (#23754)
* Add fullDevicesContext provider * Use consume in ha-scene-editor * Remove not needed device context and generate category
This commit is contained in:
parent
d112872eb2
commit
c17c1e4217
@ -1,5 +1,6 @@
|
|||||||
import type { ActionDetail } from "@material/mwc-list/mwc-list-foundation";
|
import type { ActionDetail } from "@material/mwc-list/mwc-list-foundation";
|
||||||
import "@material/mwc-list/mwc-list";
|
import "@material/mwc-list/mwc-list";
|
||||||
|
import { consume } from "@lit-labs/context";
|
||||||
import {
|
import {
|
||||||
mdiCog,
|
mdiCog,
|
||||||
mdiContentDuplicate,
|
mdiContentDuplicate,
|
||||||
@ -41,15 +42,9 @@ import "../../../components/ha-list-item";
|
|||||||
import "../../../components/ha-svg-icon";
|
import "../../../components/ha-svg-icon";
|
||||||
import "../../../components/ha-textfield";
|
import "../../../components/ha-textfield";
|
||||||
import type { DeviceRegistryEntry } from "../../../data/device_registry";
|
import type { DeviceRegistryEntry } from "../../../data/device_registry";
|
||||||
import {
|
import { computeDeviceName } from "../../../data/device_registry";
|
||||||
computeDeviceName,
|
|
||||||
subscribeDeviceRegistry,
|
|
||||||
} from "../../../data/device_registry";
|
|
||||||
import type { EntityRegistryEntry } from "../../../data/entity_registry";
|
import type { EntityRegistryEntry } from "../../../data/entity_registry";
|
||||||
import {
|
import { updateEntityRegistryEntry } from "../../../data/entity_registry";
|
||||||
subscribeEntityRegistry,
|
|
||||||
updateEntityRegistryEntry,
|
|
||||||
} from "../../../data/entity_registry";
|
|
||||||
import type {
|
import type {
|
||||||
SceneConfig,
|
SceneConfig,
|
||||||
SceneEntities,
|
SceneEntities,
|
||||||
@ -72,12 +67,12 @@ import {
|
|||||||
} from "../../../dialogs/generic/show-dialog-box";
|
} from "../../../dialogs/generic/show-dialog-box";
|
||||||
import "../../../layouts/hass-subpage";
|
import "../../../layouts/hass-subpage";
|
||||||
import { KeyboardShortcutMixin } from "../../../mixins/keyboard-shortcut-mixin";
|
import { KeyboardShortcutMixin } from "../../../mixins/keyboard-shortcut-mixin";
|
||||||
import { SubscribeMixin } from "../../../mixins/subscribe-mixin";
|
|
||||||
import { haStyle } from "../../../resources/styles";
|
import { haStyle } from "../../../resources/styles";
|
||||||
import type { HomeAssistant, Route } from "../../../types";
|
import type { HomeAssistant, Route } from "../../../types";
|
||||||
import { showToast } from "../../../util/toast";
|
import { showToast } from "../../../util/toast";
|
||||||
import "../ha-config-section";
|
import "../ha-config-section";
|
||||||
import { PreventUnsavedMixin } from "../../../mixins/prevent-unsaved-mixin";
|
import { PreventUnsavedMixin } from "../../../mixins/prevent-unsaved-mixin";
|
||||||
|
import { fullEntitiesContext } from "../../../data/context";
|
||||||
|
|
||||||
interface DeviceEntities {
|
interface DeviceEntities {
|
||||||
id: string;
|
id: string;
|
||||||
@ -89,7 +84,7 @@ type DeviceEntitiesLookup = Record<string, string[]>;
|
|||||||
|
|
||||||
@customElement("ha-scene-editor")
|
@customElement("ha-scene-editor")
|
||||||
export class HaSceneEditor extends PreventUnsavedMixin(
|
export class HaSceneEditor extends PreventUnsavedMixin(
|
||||||
SubscribeMixin(KeyboardShortcutMixin(LitElement))
|
KeyboardShortcutMixin(LitElement)
|
||||||
) {
|
) {
|
||||||
@property({ attribute: false }) public hass!: HomeAssistant;
|
@property({ attribute: false }) public hass!: HomeAssistant;
|
||||||
|
|
||||||
@ -120,9 +115,7 @@ export class HaSceneEditor extends PreventUnsavedMixin(
|
|||||||
@state() private _devices: string[] = [];
|
@state() private _devices: string[] = [];
|
||||||
|
|
||||||
@state()
|
@state()
|
||||||
private _deviceRegistryEntries: DeviceRegistryEntry[] = [];
|
@consume({ context: fullEntitiesContext, subscribe: true })
|
||||||
|
|
||||||
@state()
|
|
||||||
private _entityRegistryEntries: EntityRegistryEntry[] = [];
|
private _entityRegistryEntries: EntityRegistryEntry[] = [];
|
||||||
|
|
||||||
@state() private _scene?: SceneEntity;
|
@state() private _scene?: SceneEntity;
|
||||||
@ -221,17 +214,6 @@ export class HaSceneEditor extends PreventUnsavedMixin(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public hassSubscribe() {
|
|
||||||
return [
|
|
||||||
subscribeEntityRegistry(this.hass.connection, (entries) => {
|
|
||||||
this._entityRegistryEntries = entries;
|
|
||||||
}),
|
|
||||||
subscribeDeviceRegistry(this.hass.connection, (entries) => {
|
|
||||||
this._deviceRegistryEntries = entries;
|
|
||||||
}),
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
||||||
protected render() {
|
protected render() {
|
||||||
if (!this.hass) {
|
if (!this.hass) {
|
||||||
return nothing;
|
return nothing;
|
||||||
@ -347,7 +329,7 @@ export class HaSceneEditor extends PreventUnsavedMixin(
|
|||||||
this._entities,
|
this._entities,
|
||||||
this._devices,
|
this._devices,
|
||||||
this._deviceEntityLookup,
|
this._deviceEntityLookup,
|
||||||
this._deviceRegistryEntries
|
Object.values(this.hass.devices)
|
||||||
);
|
);
|
||||||
return html` <div
|
return html` <div
|
||||||
id="root"
|
id="root"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user