Fix suggest card dialog (#19735)

This commit is contained in:
Paul Bottein 2024-02-08 15:38:55 +01:00 committed by Bram Kragten
parent cc1658cbab
commit b0c8ae0c94
3 changed files with 19 additions and 4 deletions

View File

@ -21,6 +21,7 @@ import "./hui-entity-picker-table";
import { CreateCardDialogParams } from "./show-create-card-dialog"; import { CreateCardDialogParams } from "./show-create-card-dialog";
import { showEditCardDialog } from "./show-edit-card-dialog"; import { showEditCardDialog } from "./show-edit-card-dialog";
import { showSuggestCardDialog } from "./show-suggest-card-dialog"; import { showSuggestCardDialog } from "./show-suggest-card-dialog";
import { computeCards } from "../../common/generate-lovelace-config";
declare global { declare global {
interface HASSDomEvents { interface HASSDomEvents {
@ -242,11 +243,17 @@ export class HuiCreateDialogCard
} }
private _suggestCards(): void { private _suggestCards(): void {
const cardConfig = computeCards(
this.hass.states,
this._selectedEntities,
{}
);
showSuggestCardDialog(this, { showSuggestCardDialog(this, {
lovelaceConfig: this._params!.lovelaceConfig, lovelaceConfig: this._params!.lovelaceConfig,
saveConfig: this._params!.saveConfig, saveConfig: this._params!.saveConfig,
path: this._params!.path as [number], path: this._params!.path as [number],
entities: this._selectedEntities, entities: this._selectedEntities,
cardConfig,
}); });
this.closeDialog(); this.closeDialog();

View File

@ -7,11 +7,11 @@ export interface SuggestCardDialogParams {
yaml?: boolean; yaml?: boolean;
saveConfig?: (config: LovelaceConfig) => void; saveConfig?: (config: LovelaceConfig) => void;
path?: [number]; path?: [number];
entities?: string[]; // Entities used to generate the card config. We pass this to create dialog when user chooses "Pick own" entities?: string[]; // We pass this to create dialog when user chooses "Pick own"
cardConfig?: LovelaceCardConfig[]; // We can pass a suggested config cardConfig: LovelaceCardConfig[]; // We can pass a suggested config
} }
const importsuggestCardDialog = () => import("./hui-dialog-suggest-card"); const importSuggestCardDialog = () => import("./hui-dialog-suggest-card");
export const showSuggestCardDialog = ( export const showSuggestCardDialog = (
element: HTMLElement, element: HTMLElement,
@ -19,7 +19,7 @@ export const showSuggestCardDialog = (
): void => { ): void => {
fireEvent(element, "show-dialog", { fireEvent(element, "show-dialog", {
dialogTag: "hui-dialog-suggest-card", dialogTag: "hui-dialog-suggest-card",
dialogImport: importsuggestCardDialog, dialogImport: importSuggestCardDialog,
dialogParams: suggestCardDialogParams, dialogParams: suggestCardDialogParams,
}); });
}; };

View File

@ -21,6 +21,7 @@ import "../card-editor/hui-entity-picker-table";
import { showSuggestCardDialog } from "../card-editor/show-suggest-card-dialog"; import { showSuggestCardDialog } from "../card-editor/show-suggest-card-dialog";
import { showSelectViewDialog } from "../select-view/show-select-view-dialog"; import { showSelectViewDialog } from "../select-view/show-select-view-dialog";
import { LovelaceConfig } from "../../../../data/lovelace/config/types"; import { LovelaceConfig } from "../../../../data/lovelace/config/types";
import { computeCards } from "../../common/generate-lovelace-config";
@customElement("hui-unused-entities") @customElement("hui-unused-entities")
export class HuiUnusedEntities extends LitElement { export class HuiUnusedEntities extends LitElement {
@ -126,12 +127,18 @@ export class HuiUnusedEntities extends LitElement {
} }
private _addToLovelaceView(): void { private _addToLovelaceView(): void {
const cardConfig = computeCards(
this.hass.states,
this._selectedEntities,
{}
);
if (this.lovelace.config.views.length === 1) { if (this.lovelace.config.views.length === 1) {
showSuggestCardDialog(this, { showSuggestCardDialog(this, {
lovelaceConfig: this.lovelace.config!, lovelaceConfig: this.lovelace.config!,
saveConfig: this.lovelace.saveConfig, saveConfig: this.lovelace.saveConfig,
path: [0], path: [0],
entities: this._selectedEntities, entities: this._selectedEntities,
cardConfig,
}); });
return; return;
} }
@ -144,6 +151,7 @@ export class HuiUnusedEntities extends LitElement {
saveConfig: this.lovelace.saveConfig, saveConfig: this.lovelace.saveConfig,
path: [viewIndex], path: [viewIndex],
entities: this._selectedEntities, entities: this._selectedEntities,
cardConfig,
}); });
}, },
}); });