From a54107aeb522aba24ab75bfac32596f0dcb82962 Mon Sep 17 00:00:00 2001 From: Zack Arnett Date: Tue, 29 Sep 2020 22:37:15 -0500 Subject: [PATCH 1/3] Update events on config change --- .../lovelace/cards/hui-calendar-card.ts | 23 +++++++++++++++---- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/src/panels/lovelace/cards/hui-calendar-card.ts b/src/panels/lovelace/cards/hui-calendar-card.ts index eb55d3d43504..330dcc2ca092 100644 --- a/src/panels/lovelace/cards/hui-calendar-card.ts +++ b/src/panels/lovelace/cards/hui-calendar-card.ts @@ -71,6 +71,10 @@ export class HuiCalendarCard extends LitElement implements LovelaceCard { @internalProperty() private _veryNarrow = false; + private _startDate?: Date; + + private _endDate?: Date; + private _resizeObserver?: ResizeObserver; public setConfig(config: CalendarCardConfig): void { @@ -90,6 +94,7 @@ export class HuiCalendarCard extends LitElement implements LovelaceCard { }); this._config = { initial_view: "dayGridMonth", ...config }; + this._fetchCalendarEvents(); } public getCardSize(): number { @@ -152,13 +157,21 @@ export class HuiCalendarCard extends LitElement implements LovelaceCard { } } - private async _handleViewChanged( - ev: HASSDomEvent - ): Promise { + private _handleViewChanged(ev: HASSDomEvent): void { + this._startDate = ev.detail.start; + this._endDate = ev.detail.end; + this._fetchCalendarEvents(); + } + + private async _fetchCalendarEvents(): Promise { + if (!this._startDate || !this._endDate) { + return; + } + this._events = await fetchCalendarEvents( this.hass!, - ev.detail.start, - ev.detail.end, + this._startDate, + this._endDate, this._calendars ); } From eb1b2b33d32da11f557bd415a95f9a92b0c4c43a Mon Sep 17 00:00:00 2001 From: Zack Arnett Date: Tue, 29 Sep 2020 22:38:28 -0500 Subject: [PATCH 2/3] only fetch if entities changed --- src/panels/lovelace/cards/hui-calendar-card.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/panels/lovelace/cards/hui-calendar-card.ts b/src/panels/lovelace/cards/hui-calendar-card.ts index 330dcc2ca092..3d23c09cb5ef 100644 --- a/src/panels/lovelace/cards/hui-calendar-card.ts +++ b/src/panels/lovelace/cards/hui-calendar-card.ts @@ -93,8 +93,11 @@ export class HuiCalendarCard extends LitElement implements LovelaceCard { }; }); + if (this._config.entities !== config.entities) { + this._fetchCalendarEvents(); + } + this._config = { initial_view: "dayGridMonth", ...config }; - this._fetchCalendarEvents(); } public getCardSize(): number { From 7f61443b3c7ff02473e2d826f06e6386b2d1bff7 Mon Sep 17 00:00:00 2001 From: Zack Arnett Date: Tue, 29 Sep 2020 22:38:46 -0500 Subject: [PATCH 3/3] undefined check --- src/panels/lovelace/cards/hui-calendar-card.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/panels/lovelace/cards/hui-calendar-card.ts b/src/panels/lovelace/cards/hui-calendar-card.ts index 3d23c09cb5ef..625e915fac98 100644 --- a/src/panels/lovelace/cards/hui-calendar-card.ts +++ b/src/panels/lovelace/cards/hui-calendar-card.ts @@ -93,7 +93,7 @@ export class HuiCalendarCard extends LitElement implements LovelaceCard { }; }); - if (this._config.entities !== config.entities) { + if (this._config?.entities !== config.entities) { this._fetchCalendarEvents(); }