diff --git a/src/panels/lovelace/views/grid/hui-grid-card-options.ts b/src/panels/lovelace/views/grid/hui-grid-card-options.ts
index 31fb8198cc..3d76fe7516 100644
--- a/src/panels/lovelace/views/grid/hui-grid-card-options.ts
+++ b/src/panels/lovelace/views/grid/hui-grid-card-options.ts
@@ -38,7 +38,6 @@ export class HuiGridCardOptions extends LitElement {
protected render(): TemplateResult {
return html`
-
@@ -73,18 +72,17 @@ export class HuiGridCardOptions extends LitElement {
aria-label=${this.hass!.localize(
"ui.panel.lovelace.editor.edit_card.options"
)}
- title=${this.hass!.localize(
+ .title=${this.hass!.localize(
"ui.panel.lovelace.editor.edit_card.options"
)}
>
-
+
-
${this.hass!.localize(
"ui.panel.lovelace.editor.edit_card.move"
- )}
+ )}
+
diff --git a/src/panels/lovelace/views/hui-grid-view.ts b/src/panels/lovelace/views/hui-grid-view.ts
index 25796fba59..9a14627382 100644
--- a/src/panels/lovelace/views/hui-grid-view.ts
+++ b/src/panels/lovelace/views/hui-grid-view.ts
@@ -26,6 +26,7 @@ import type { HomeAssistant } from "../../../types";
import { computeCardSize } from "../common/compute-card-size";
import { HuiCardOptions } from "../components/hui-card-options";
import { showCreateCardDialog } from "../editor/card-editor/show-create-card-dialog";
+import { replaceView } from "../editor/config-util";
import type { Lovelace, LovelaceBadge, LovelaceCard } from "../types";
import { HuiGridCardOptions } from "./grid/hui-grid-card-options";
@@ -113,7 +114,7 @@ export class GridView extends LitElement implements LovelaceViewElement {
.columns=${this._columns}
.dragDisabled=${!this.lovelace?.editMode}
.resizeDisabled=${!this.lovelace?.editMode}
- @layout-changed=${(ev) => console.log(ev.detail)}
+ @item-changed=${this._saveLayout}
>
${this.lovelace?.editMode
? html`
@@ -183,6 +184,18 @@ export class GridView extends LitElement implements LovelaceViewElement {
}
}
+ private async _saveLayout(ev: CustomEvent): Promise {
+ console.log("save");
+
+ const viewConf: LovelaceViewConfig = {
+ ...this._config,
+ layout: ev.detail.layout,
+ };
+ await this.lovelace?.saveConfig(
+ replaceView(this.lovelace!.config, this.index, viewConf)
+ );
+ }
+
private _itemRenderer = (key: string): TemplateResult => {
if (!this._cards) {
return html``;